こんにちは。てくさぽBLOGメンバーの高村です。
前回の記事「【てくさぽBLOG】IBM watsonx OrchestrateでAIエージェント開発してみた(Part1)」では、昨年6月のアップデート後のwatsonx OrchestrateのUIを用いてサンプルエージェントを開発し、Salesforceから顧客情報および在庫情報を取得するところまでをご紹介しました。
Part2(本記事)では、生成AIツールとメールツールを使ったメールの作成・送信を実装し、AIエージェントの動作確認をデモ動画でご紹介いたします。
サンプルエージェントのシナリオ
Part2の内容に入る前に、サンプルエージェントのシナリオをあらためてご紹介します。
サンプルエージェントのシナリオは、企画担当者が在庫商品を参照し、在庫情報に基づいて顧客へキャンペーンメールを送信する作業を想定しています。通常は担当者がデータベースで在庫を目視確認して対象商品を選定し、SFAで送信対象者を抽出、メール文面を作成してメールツールで送信するなど、複数システムをまたいで人手で作業するため、煩雑で時間と労力を要します。
watsonx Orchestrateを導入すれば、AIエージェントが在庫・顧客情報を取得し、在庫の多い商品のキャンペーン文面を生成、メールの作成・送信までを一気通貫で実行します。これにより、担当者の作業負荷軽減とリードタイム短縮、ミスの削減が期待できます。
Part1では、AIエージェントが「Salesforceからの顧客情報取得」と「在庫情報の取得」を実行するところまでをご紹介しました。Part2では、図のピンクで囲った部分である「生成AIによるキャンペーンメールのドラフト作成」と「メールツールによる送信」を開発します。最後に、Part1で作成した機能を含め、全体を通したAIエージェントのデモ動画をご紹介します。
サンプルエージェントの開発
生成AIプロンプトとメール作成・送信をAgentic workflowで実装する
それでは、Part1の続きとしてエージェント開発を進めます。ここでは、Agentic workflow機能を使用します。
Agentic workflowとは複数ツールの組み合わせや生成AIプロンプト処理、ユーザからの入出力フォームなどフロー形式でカスタムツールとして作成することができます。今回は生成AIプロンプトを使用して商品のキャンペンーンメールを作成し、メールツールからメール作成・送信を行うフローを作成します。
watsonx Orchestrateにログインして、メニューバーのBuildからPart1で作成したSales agentをクリックして開きます。
エージェント開発画面が開きます。2026年1月のアップデートによりエージェントが使用するモデルのデフォルトがGPT-OSS 120B-OpenAI(via Groq)になりました。llama-3-2-90b-vision-instruct、llama-3-405b-instructは2026年3月末に withdrawalとなります。
Toolsetまでスクロールし、Add tool +をクリックします。
以下画面が表示されるのでAgentic workflowをクリックします。
任意のworkflow名を入力してStart buildingをクリックします。
下記の画面が表示されます。左のボックスには追加可能なアクティビティとツールの一覧が表示されます。画面中央のフロー図にツール、アクティビティを構成します。
左上にあるEdit detailsをクリックします。
Parametersタブをクリックし、フローのインプットとアウトプットの型を定義します。今回はstringでName,Descriptionは画面の様に設定しました。設定したらDoneをクリックします。
下記画面に戻るので、左のボックスにあるGenerative promptをクリックしてフロー図の中央に追加します。
プロプト設定画面が表示されます。左のプロンプトへのインプットではユーザが指定する商品名(テキスト)を変数として設定します。右のシステムプロンプトでは全体の会話の方針やトーンを入力し、ユーザプロンプトでは具体的な指示を指定します。また、プロンプトで使用するLLMはリストから選択でき、ここでは「llama-3-3-70b-instruct」を指定しています。
Add exampleタブでは例を追加することができます。以下の通り二つ例を追加しました。
Adjust LLM settingsタブでは最大/最小トークン数などを設定することができます。
Generate Previewをクリックすると、生成結果を確認できます。確認後は右上の×を押して保存します。これで、ユーザー指定のテキストからキャンペーンメールを生成するプロンプトが完成しました。
次に、ユーザーにキャンペーンメールの内容を確認してもらえるよう表示を構成します。左のボックスからUser activityを選び、Generative promptの下に挿入します。
Add +をクリックし、Collect from userからFormをクリックします。今回はFormを利用しますが、このほかにも日付やファイルアップロードなどのアクティビティを構成することができます。
左上の鉛筆マークをクリックして任意のアクティビティ名に変更します。次にAdd field + からCollect from userを選択し、Textをクリックします。
Requiredをオンにし、Input typeはMulti lineを選択します。さらに、BehaviorのInitial valueを有効化し、値にGenerative promptの出力変数を指定します。
左の「mail body」ボックスを選択し、ユーザー向けのインストラクションを設定します。Instructionsをオンにして、下記のガイドを入力し、Cancel buttonもオンにします。設定後は右上の×をクリックして保存します。
フロー図が下記画面の様に表示されます。
次に、件名をユーザーに入力してもらうフォームを作成します。下記の画面のように、User activity1の下にもう一つUser activityを挿入します。
Add +をクリックし、Collect from userからFormをクリックします。下記画面が表示されるので任意のフォーム名を入力し、Add field + からCollect from userを選択し、Textをクリックします。
任意のLabel名を入力し、Requiredをオン、Input typeはSingle lineを選択します。
左の「mail subject」ボックスを選択し、ユーザー向けインストラクションを設定します。Instructionsをオンにして下記のガイドを入力し、Cancel buttonもオンにします。設定後は右上の×をクリックして保存します。
フロー図は下記の画面のとおりです。
最後にメールを送信するためのツールを追加します。今回は、カスタム作成した Brevoを用いたメール送信ツールを使用します。User activity2の下に左ボックスのToolタブからsend_mail_brevoのツール挿入します。
追加したsend_mail_brevoノードをクリックしてInputsを設定します。contentはUser activity1の出力変数、subjectはUser activity2の出力変数を指定します。to_addressはAuto-map設定にして右上の✖をクリックして保存します。
下記の画面の様にフローが作成できました!Doneをクリックしてワークフローを保存します。
Agent builder画面に戻り、Toolsetまでスクロールすると作成したAgentic workflowが追加されています。以上でAgentic workflowの作成は完了です。
Behaviorを設定する
Behaviorまでスクロールします。InstructionsにPart1作成したSalesforceのツール、Knowledge、本記事で作成したAgentic workflowをエージェントがどのように利用するか定義します。エージェントの役割と動作の流れを定義し、プレビューで挙動を確認しながら内容を繰り返し修正しました。
サンプルエージェントを使ってみる
それでは、作成したエージェントを使ってみます!エージェントの動きは下記動画をご覧ください。 動画では、キャンペーンメールを送付する対象顧客情報をSalesforceから取得し、コンタクトリストを確認。その後、商品の在庫状況を参照して在庫の多い商品に合わせたキャンペーンメールを作成し、送信します。 動画の長さの関係上、二本に分けて紹介します。
1本目:Salesforceから顧客情報を取得し、コンタクトリストを確認
2本目:在庫情報を確認のうえ、在庫の多い商品のキャンペーンメールを作成・送信
2本目の動画がPart2で開発した内容になります。商品と顧客名を指定すると、AIが商品情報をもとにキャンペーンメールを生成し、顧客名に紐づくメールアドレスを自動入力して送信できます。Agentic Workflowで追加したUser Activityを使うことで、生成したメール本文の確認・修正・追記が可能です。このように、定型の流れや承認プロセスが必要な場合は、フロー化することでより確実に処理を実行できます。
さいごに
Part1・Part2の2回にわたってサンプルエージェントの開発をご紹介しました。2025年6月のアップデートでUIや機能が刷新され、当初は戸惑いもありましたが、ご覧のとおりAIが自動で入力や抽出を行うため、よりエージェンティックに動作するエージェントを開発できます。
今回最も苦労したのは、Behaviorの調整です。わずかな文言の違いで動作が変わるため、確認と修正を繰り返してチューニングしました。今回のように1つのエージェントに複数ツールを組み込む場合は、Behavior設定が複雑化します。回避策として、機能ごとにエージェントを分割し、親エージェントから呼び出す構成も可能ですのでご検討ください。
事前定義ツールとしてはSalesforceのツールを2つ利用しました。要件に合うツールがあれば、認証情報を設定するだけですぐに利用できます。ただし多くのツールは基本機能が中心となるため、より細かな動作が必要であればカスタムツールを開発してご利用いただく必要があります。カスタムツール開発にはこちらの「【てくさぽBLOG】IBM watsonx OrchestrateのADKを使ってみた」でご紹介したADKという開発ツールキットが提供されていますので、是非ご活用ください。
また、コード開発に心強い味方がございます。「【てくさぽBLOG】IBM Bobで市民開発に挑戦」でご紹介したIBM Bobはwatsonx Orchestrateのツール、エージェントのコード作成やSaaS環境へのインポートなどを支援してくれます。注目度も高いと思いますので、こちらは改めて別の機会にご紹介できればと思います。
お問い合わせ
この記事に関するご質問は以下の宛先までご連絡ください。
エヌアイシー・パートナーズ株式会社
技術企画本部
E-mail:nicp_support@NIandC.co.jp






























