Salesforce
デベロッパー
ブログ

エージェントから呼び出すカスタムアクションの作り方(フロー編)

Avatar for Hiroyuki InabaHiroyuki Inaba
新しい Developer Edition を使って、エージェントから呼び出すカスタムアクションの実装例を紹介します。
エージェントから呼び出すカスタムアクションの作り方(フロー編)
March 30, 2025

はじめに

みなさん、こんにちは。株式会社セールスフォース・ジャパンの製品統括本部で Platform と Trusted Services のプロダクトマネージャーを担当してます Hiro です。

無料で取得してさまざまな機能のお試しができる Developer Edition が 2025年3月に新しくなり、Agentforce および Data Cloud も試せるようになりました。
https://www.salesforce.com/form/developer-signup/?d=pb

Trailhead にも、エージェントを試すいくつものモジュールが公開されていますが、この記事ではエージェントのカスタマイズ・開発を行う方向けに、作成したフローをエージェントから呼び出せるようにする手順を解説してみます。

なお、この記事の想定読者は、Salesforce の設定の基本的な操作や、フロービルダーへのたどり着き方・基本的な操作はご存じであることを前提としています。もしまだフロービルダーを触った事がない場合は、関連する Trailhead モジュールも参考にしてみてください。

エージェント向けに標準アクションも数多く提供されてますが、実際の現場での利用に当たっては独自に定義したカスタムの処理実装(フロー/Apex など)をカスタムアクションとしてエージェントから呼び出せるようにする事で、しっかりと現場で役にたつエージェントに仕立て上げる事ができます。

免責のお伝えです。本記事は 2025/3/31 時点の画面・提供機能でもって作成しています。その後の更新等で画面が変わっていたり機能が追加されている場合もあります。あらかじめご了承ください。最新情報については Help ページを参照いただきますよう、よろしくお願いいたします。
当サイトでは、最新かつ正確な情報の掲載を努めておりますが、正確性や��全性、効果等を保証するものではありません。本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。また、当サイトの掲載内容によって損害等が生じた場合は、一切の責任を負いかねますので、ご利用の際はヘルプやリファレンスをご参照の上、お手元で十分検証をいただいたのち導入についてご判断くださいますようお願いいたします。

注意事項) 2025/3/31 時点では、エージェントのトピックの分類の説明・範囲・指示の説明、アクションの各種説明などの日本語による記述は正式サポート対象になっていません。この記事ではわかりやすさを優先し日本語で記述していますが、実運用の環境でサポートを受けるには英語での記述にしていただけますようよろしくお願いいたします。

アクションの位置付け

まずエージェントとアクションの関係性を説明します。

エージェントの動きは次のようになります。

  1. ユーザー入力の内容からどのトピックを選べば良いか判断
  2. トピックの中のどのアクションをどのように呼び出せば良いかを判断
  3. 必要なアクションを順次呼び出して結果を受け取り
  4. 最終的にユーザー入力に対する回答を生成して返却

今回は、処理実装をフローで作成し、トピックとカスタムアクションを定義して、実際にエージェントから呼び出すまでの手順を解説します。

事前準備

まずはエージェントが動作することを確認します。新しい Developer Edition では、次の設定が完了済みの状態で使い始められるようになっています。

  1. 生成 AI 機能の有効化(Einstein を有効化)
  2. Agentforce の有効化
  3. 管理者ユーザーへの必要な権限セット割り当て

あらかじめ Agentforce (Default) が用意されているはずですが、もし見つからない場合は上記設定を確認して、足りていない設定があ���ば有効化や割り当て操作を行ってください。

手順1: フローの作成

今回は次のようなフローを作成します。

  • 入力
    • 商品の型番 (例: ABC-1234 など)
  • 処理
    • 商品型番の在庫数を返す
    • 注意) 今回は実際に検索をするわけではなく、特定の数字を返します
  • 出力
    • 在庫の数 (例: 7、25 など)

実際に現場で利用する場合は、処理の部分を在庫数が格納されているオブジェクトを検索するなどに置き換えてください。
設定メニュー、あるいは自動化アプリケーションから新規にフローを作成を始めてください。エージェントのカスタムアクションとして呼び出せるようにするには「自動起動フロー(トリガーなし)」で作成します。

まず初めに入力用のリソースを定義します。

  • リソース種別
    • 変数
  • API 参照名
    • Input
  • 説明
    • 在庫を確認する製品・商品の型番を入力として受け取ります。例: ABC-1234
  • データ型
    • テキスト
  • フロー外部での可用性
    • 入力で使用可能にチェックを入れる

同様に出力用のリソースも定義します。

  • リソース種別
    • 変数
  • API 参照名
    • Output
  • 説明
    • 入力された型番の在庫数を返します。例: 0, 25, 52
  • データ型
    • 数値
  • 小数点の位置
    • 0
  • フロー外部での可用性
    • 出力で使用可能にチェックを入れる

今回、返却する在庫数は、実際にオブジェクトの検索などは行わず、数式で一定の規則に従った数値を返すようにします。

  • リソース種別
    • 数式
  • API 参照名
    • formulaGetNumber
  • 説明
    • 0から99までの数値を返します。
  • データ型
    • 数値
  • 小数点の位置
    • 0
  • 数式
    • VALUE(RIGHT(TEXT(UNIXTIMESTAMP(NOW())),2))

出力用の Output に formulaGetNumber の値を入れる処理をフローに追加します。

  • 表示ラベル
    • 出力に値を設定
  • API 参照名
    • assignOutputValue
  • 説明
    • 数式で値を取得し出力 Output に値を代入します。
  • 変数
    • Output
    • formulaGetNumber

以上で設定は完了です。フローを保存します。

  • フローの表示ラベル
    • 在庫数量確認フロー
  • フローの API 参照名
    • flowStockChecker
  • 説明
    • 製品の在庫の数量を確認するフローです。引数 Input に型番(例: ABC-1234)を受け取り、在庫の数量を返します。

画面右上「デバッグ」ボタンを押して、Input に何か適当な文字列を入力し実行してみます。フローの実行でエラーが出ず、デバッグの詳細→割り当て: 出力に値を設定で、結果に何らかの数値が表示されていれば成功です。

フローを有効化して、フロービルダーを閉じてください。

手順2: カスタムアクションの定義

続いて、作成したフローをカスタムアクションとしてエージェントから呼び出せるようにする設定です。

設定メニューのエージェントアクションから「新規エージェントアクション」ボタンを押して作成を始めます。

  • 参照アクション種別
    • Flow
  • 参照アクション
    • 在庫数量確認フロー
  • エージェントアクション表示ラベル
    • 在庫数量確認
  • エージェントアクション API 参照名
    • agentActionStockChecker

次の画面ではいくつか設定を加えます。

  • 読み込み中テキスト
    • 検索中です
  • 入力
    • Input
      • 「入力が必要」と「ユーザーからデータを収集」にチェックを入れる
  • 出力
    • output
      • 「会話に表示」にチェックを入れる

なお、出力で設定した「会話に表示」のチェックが入ったままだと不自然に会話に表示されてしまうこともあり、アクションの一覧から作成した「在庫数量確認」を見つけ、編集で出力の「会話に表示」のチェックをはずします。

手順3: トピックの定義・カスタムアクションの追加

定義したカスタムアクションをエージェントから呼び出せるようにします。今回はトピックも合わせて作成します。
Agentforce (Default) をビルダーで開いてください。エージェントが有効化されているとトピックを追加できないので、一度無効化します。

左のメニューアイコンの一番上トピックを選択し、新規→新規トピックと選択します。

ダイアログの入力欄に「商品の在庫を検索する」と入力します。

「次へ」ボタンを押すと、入力内容に基づきある程度自動で表示ラベル、分類の説明、範囲が設定されます。今回は商品型番を受け取りその在庫数を返すだけですので、内容に相応しくないものがあれば適宜修正・削除等してください。

定義の例

  • トピックの表示ラベル
    • 在庫検索
  • 分類の説明
    • ユーザーが商品の在庫を確認したい場合に使用されるトピックです。商品の在庫状況についての問い合わせを処理します。
  • 範囲
    • 私の仕事は、ユーザーが指定した商品型番の在庫状況を確認し、結果を提供することです。商品の在庫情報以外の質問には対応しません。
  • 手順
    • 説明
      • ユーザーに商品の型番を尋ねてください。
    • 説明
      • 在庫情報を検索するために商品の型番を使用してください。
    • 説明
      • 在庫がある場合は、ユーザーに在庫の数量を伝えてください。

トピックに「在庫数量確認」のアクションを追加します。

手順4: 試す

それでは実際に試してみましょう。会話プレビューのテキスト入力欄に「在庫検索をお願いします。」と入力し送信してみてください。商品の型番を教えてください(もしくは類似する意味の文章)が返されてくれば設定はうまくいっています。

今回の手順では型番は考慮していませんので、何か適当な文字を入れて送信してみてください。(例: ABC-1234) エージェントが在庫数を答えてくれれば成功です。

終わりに

この手順では、実際に在庫検索を行っているわけではありませんので実用的ではないですが、フローの中の処理を変えれば実際に動作するイメージはつけていただけるかなと思います。

エージェントの動きは自然言語で定義しますので、どうしても解釈にゆらぎが生じて期待する動作にならないこともあります。その場合はトピックや指示の書きっぷりを工夫してみてください。ポイントは、何も知らない新人さんに同じことを依頼し間違いなく動いてもらうにはどう説明すべきか?と人へのお願いを意識してもらうことです。

それではみなさん、楽しいエージェントライフを!

Get the latest Salesforce Developer blog posts and podcast episodes via Slack or RSS.

(英語のみです)

Add to Slack Subscribe to RSS

その他の関連記事

Dreamforce ’23 Retrospective for Developers

Dreamforce ’23 Retrospective for Developers

A recap of the Salesforce innovations, announcements and content shared at Dreamforce 2023 for developers.September 28, 2023

Ground Your Prompt Templates with Data Using Flow or Apex

Ground Your Prompt Templates with Data Using Flow or Apex

In this blog post, we’ll give you an overview of the different grounding techniques that you can use to customize prompt templates without limits.April 09, 2024

Discover the Highlights of TDX 2025

Discover the Highlights of TDX 2025

Explore a recap of TDX 2025, with highlights from Agentforce, AgentforceDX, and more autonomous AI innovations.March 25, 2025