0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWTT2026-WS】複数組織のAgentforceを繋ぐ仕組みを作ってみよう! - Caller環境の設定

0
Last updated at Posted at 2026-06-11

本記事は、2026年6月9日に開催されるAgentforce World Tour Tokyoのワークショップの作業内容をまとめています。

本記事の全体構成について

本記事の全体構成はこちらに記載しています。

環境の設定

ワークショップで実施していただく内容となります。

Caller環境の設定は下記の流れで実施します。

  1. リモートサイト設定を追加
  2. 構成情報を記録するカスタムメタデータを作成
  3. Callee環境と接続するための指定ログイン情報を構成
  4. Callee環境を対象とした外部サービスを構成
  5. Callee環境のAgentを呼び出すフローを作成
  6. Callee環境のAgentと連携するAgentを作成
  7. Agentのアクセス権限を整理
  8. 動作確認とAgentの有効化

リモートサイト設定を追加

下記のリモートサイトを設定します。

サイト名 サイトのURL 説明
EventGuideAgentOrg ※Callee環境のURL Event Guide Agentを提供する環境のサイトです。
SalesforceAgentAPI https://api.salesforce.com Salesforce Agent APIを使用するためのサイトです。

ワークショップでは登壇者からEventGuideAgentOrgで設定するサイトのURLを案内します。

RemoteSite_EventGuideAgentOrg.png
RemoteSite_SalesforceAgentAPI.png

構成情報を記録するカスタムメタデータを作成

下記の設定でカスタムメタデータを作成します。明記していない設定に関してはデフォルトの状態で問題ありません。

設定名 設定内容
表示ラベル 外部エージェント構成
表示ラベル(複数形) 外部エージェント構成
オブジェクト名 ExternalAgentConfig
説明 外部のエージェントを呼び出すための構成を管理するメタデータです。
表示 すべての Apex コードと API でこの種別を使用でき、[設定] で参照可能です。

ExternalAgentConfig.png

外部エージェント構成の項目

カスタムメタデータの項目として下記を作成します。

表示ラベル 項目名 用途
Agent ID AgentId エージェントのIDを記録します
Endpoint URL EndpointURL エンドポイントのURLを記録します
外部エージェント構成のAgentID項目の追加

外部エージェント構成の Agent ID 項目は下記の設定で追加します。

設定名 設定内容
データ型 テキスト
項目の表示ラベル Agent ID
文字数 18
項目名 AgentId
説明 エージェントのIDを記録します
ヘルプテキスト エージェントのIDを記録してください
必須 TRUE
項目管理可能性 「アプリケーションのカスタマイズ」権限を持つすべてのユーザー (管理パッケージのアップグレードでは値は上書きされません)

データ型は テキスト を選択します。

ExternalAgentConfig_Field_AgentId_DataType.png

上記の項目定義に基づいて詳細を入力します。

ExternalAgentConfig_Field_AgentId_Detail.png

ページレイアウトの設定は制御できないため、デフォルトの状態のまま進めます。

外部エージェント構成のEndpointURL項目の追加

外部エージェント構成の Endpoint URL 項目は下記の設定で追加します。

設定名 設定内容
データ型 URL
項目の表示ラベル Endpoint URL
項目名 EndpointURL
説明 エントポイントのURLを記録します
ヘルプテキスト エンドポイントのURLを記録してください
必須 TRUE
項目管理可能性 「アプリケーションのカスタマイズ」権限を持つすべてのユーザー (管理パッケージのアップグレードでは値は上書きされません)

データ型は URL を選択します。

ExternalAgentConfig_Field_EndpointURL_DataType.png

上記の項目定義に基づいて詳細を入力します。

ExternalAgentConfig_Field_EndpointURL_Detail.png

ページレイアウトの設定は制御できないため、デフォルトの状態のまま進めます。

外部エージェント構成のページレイアウトの修正

外部エージェント構成のページレイアウトについて下記の修正を行います。

  • 詳細のセクション を下記の構成に修正します。
    • 情報(2列レイアウト/詳細ページと編集ページで表示)
    • システム情報(2列レイアウト/詳細ページと編集ページで表示)
  • 詳細の項目の配置 を適切な位置に配置します。

ExternalAgentConfig_Layout.png

外部エージェント構成のレコードの登録

下記の外部エージェント構成のレコードデータを作成します。

項目
表示ラベル Event Guide Agent
外部エージェント構成名 EventGuideAgent
Agent ID ※Callee環境のエージェントのID
Endpoint URL ※Callee環境のURL

ワークショップでは登壇者からAgent IDEndpoint URLで設定する情報を案内します。

ExternalAgentConfig_Record.png

Callee環境と接続するための指定ログイン情報を構成

下記の構成で外部ログイン情報を作成します。

設定名 設定内容
表示ラベル Event Guide Agent External Credential
名前 EventGuideAgentExternalCredential
認証プロトコル OAuth 2.0
認証フロー種別 クライアントの秘密によるクライアントログイン情報フロー
IDプロバイダーURL ※Callee環境のURL + /services/oauth2/token

ワークショップでは登壇者からIDプロバイダーURLで設定する情報を案内します。

ExternalCredential.png

下記の構成で外部ログイン情報のプリンシパルを作成します。

設定名 設定内容
パラメーター名 EventGuideAgentPrincipal
連番 1
クライアントID ※Callee環境の外部クライアントアプリケーションのコンシュマーの鍵
クライアントの秘密 ※Callee環境の外部クライアントアプリケーションのコンシュマーの秘密

ExternalCredentialPrincipal.png

下記の構成で指定ログイン情報を作成します。

設定名 設定内容
表示ラベル Event Guide Agent Named Credential
名前 EventGuideAgentNamedCredential
URL https://api.salesforce.com
外部ログイン情報 Event Guide Agent External Credential
認証ヘッダーを生成 TRUE
HTTP ヘッダーの数式を許可 TRUE
HTTP 本文の数式を許可 TRUE

NamedCredential.png

Callee環境を対象とした外部サービスを構成

下記の外部サービスを設定します。

外部サービス 用途
AgentAPICreateSession Sessionを作成してAgentを呼び出す土台を構成する
AgentAPISendMessage Agentにメッセージを送信する仕組みを構成する

セッションを作成する外部サービスを作成

セッションを作成する外部サービスを下記の設定で構成します。

設定名 設定内容
外部サービス名 AgentAPICreateSession
説明 Agent APIを使用してSessionを作成する
サービススキーマ 完全なスキーマ
指定ログイン情報を選択 EventGuideAgentNamedCredential
スキーマ ※下記を参照
操作 CreateSession
{
  "openapi": "3.0.1",
  "info": {
    "title": "AgentAPICreateSession",
    "description": ""
  },
  "paths": {
    "/einstein/ai-agent/v1/agents/{agentId}/sessions": {
      "post": {
        "description": "",
        "operationId": "CreateSession",
        "parameters": [{
          "name": "agentId",
          "in": "path",
          "description": "Agent ID Setting",
          "required": true,
          "allowEmptyValue": false,
          "schema": {
            "type": "string"
          }
        }],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "externalSessionKey": {
                    "type": "string"
                  },
                  "instanceConfig": {
                    "type": "object",
                    "properties": {
                      "endpoint": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "sessionId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

APIソースは API仕様から を選択します。

CreateSession_APISource.png

上記の定義に基づいて詳細を入力します。

CreateSession_Detail.png

選択可能なすべての操作を選択します。

CreateSession_Operation.png

設定内容を確認して完了します。

CreateSession_Result.png

メッセージを送信する外部サービスを作成

メッセージを送信する外部サービスを下記の設定で構成します。

設定名 設定内容
外部サービス名 AgentAPISendMessage
説明 Agent APIを使用してメッセージを送信する
サービススキーマ 完全なスキーマ
指定ログイン情報を選択 EventGuideAgentNamedCredential
スキーマ ※下記を参照
操作 SendMessage
{
  "openapi": "3.0.1",
  "info": {
    "title": "AgentAPISendMessage",
    "description": ""
  },
  "paths": {
    "/einstein/ai-agent/v1/sessions/{sessionId}/messages": {
      "post": {
        "description": "",
        "operationId": "SendMessage",
        "parameters": [{
          "name": "sessionId",
          "in": "path",
          "description": "Agent Session ID",
          "required": true,
          "allowEmptyValue": false,
          "schema": {
            "type": "string"
          }
        }],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "message": {
                    "type": "object",
                    "properties": {
                      "text": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string"
                      },
                      "sequenceId": {
                        "type": "integer",
                        "format": "int64"
                      }
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "conversationId": {
                      "type": "string"
                    },
                    "messages": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "message": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

APIソースは API仕様から を選択します。

SendMessage_APISource.png

上記の定義に基づいて詳細を入力します。

SendMessage_Detail.png

選択可能なすべての操作を選択します。

SendMessage_Operation.png

設定内容を確認して完了します。

SendMessage_Result.png

Callee環境のAgentを呼び出すフローを作成

下記の設定でフローを作成します。

設定名 設定内容
表示ラベル イベントガイドエージェントコールアウトフロー
API参照名 EventGuideAgentCalloutFlow
説明 Callee環境に存在するEvent Guide Agentに対してコールアウトを実施するフロー
フローの実行方法 ユーザーまたはシステムコンテキスト — フローの起動方法に依存します
種別 自動起動フロー(トリガーなし)

EventGuideAgentCalloutFlow.png

全体像としては下記の通りです。

EventGuideAgentCalloutFlow_AllView.png

イベントガイドエージェントコールアウトフローの変数を定義

フローの変数として下記を作成します。

API参照名 データ型 コレクション 入力 出力 説明
Responds Apex定義(ExternalService__AgentAPISendMessage_SendMessage_OUT_200_messages) TRUE FALSE TRUE 外部のAgentからの応答を格納する出力変数
SessionId テキスト FALSE TRUE TRUE 外部のAgentのセッションIDを格納する入出力変数
Question テキスト FALSE TRUE FALSE 外部のAgentに対する質問を格納する入力変数
CreateSessionBody Apex定義(ExternalService__AgentAPICreateSession_CreateSession_IN_body) FALSE FALSE FALSE 外部のAgentのセッションを構成する際の値を格納する変数
SendMessageBody Apex定義(ExternalService__AgentAPISendMessage_SendMessage_IN_body) FALSE FALSE FALSE 外部のAgentに対するメッセージを構成する際の値を格納する変数

EventGuideAgentCalloutFlow_Variables_Responds.png
EventGuideAgentCalloutFlow_Variables_SessionId.png
EventGuideAgentCalloutFlow_Variables_Question.png
EventGuideAgentCalloutFlow_Variables_CreateSessionBody.png
EventGuideAgentCalloutFlow_Variables_SendMessageBody.png

イベントガイドエージェントコールアウトフローの定数を定義

フローの定数として下記を作成します。

API参照名 データ型 説明
EVENT_GUIDE_AGENT テキスト EventGuideAgent EventGuideAgentの名称を保持する定数
SEQUENCE_ID 数値 1 EventGuideAgentへ与えるシーケンスIDを保持する定数
MESSAGE_TYPE テキスト Text EventGuideAgentへ与えるメッセージの種別を保持する定数

EventGuideAgentCalloutFlow_Constants_EVENT_GUIDE_AGENT.png
EventGuideAgentCalloutFlow_Constants_SEQUENCE_ID.png
EventGuideAgentCalloutFlow_Constants_MESSAGE_TYPE.png

セッションIDの入力を確認

決定 の要素を開始処理の後に配置し、下記の設定で入力値を判定します。

設定名 設定内容
表示ラベル セッションIDの入力を確認
API参照名 Decision_InputSessionId
説明 セッションIDの入力の有無によって後続処理を分岐する。
結果の表示ラベル 入力なし
結果のAPI参照名 Decision_InputSessionId_IsNullOrEmptyString
結果の条件 いずれかの条件に一致 (OR)
{!SessionId} null {!$GlobalConstant.True}
{!SessionId} 空白 {!$GlobalConstant.True}
デフォルトの結果の表示ラベル 入力あり

EventGuideAgentCalloutFlow_Decision_InputSessionId.png

外部エージェント構成の取得

レコードを取得 の要素を入力なしのパスに配置し、下記の設定で外部エージェント構成を取得します。

設定名 設定内容
表示ラベル 外部エージェント構成の取得
API参照名 Get_ExternalAgentConfig
説明 EventGuideAgentの外部エージェント構成を取得する。
オブジェクト 外部エージェント構成
絞り込み条件 すべての条件に一致 (AND)
DeveloperName 次の文字列と一致する {!EVENT_GUIDE_AGENT}
並び替え なし
保存するレコード数 最初のレコードのみ
レコードデータの保存方法 すべての項目値を自動的に保存

EventGuideAgentCalloutFlow_Get_ExternalAgentConfig.png

セッションIDを取得するためのリクエストを構成

割り当て の要素を入力なしのパスの外部エージェント構成の取得の後に配置し、下記の設定でセッションIDを取得するためのリクエストを構成します。

設定名 設定内容
表示ラベル セッションIDを取得するためのリクエストを構成
API参照名 Assign_ConstructRequestForGetSessionId
説明 セッションIDを取得するためのリクエストを構成する。
変数値の設定 {!CreateSessionBody.instanceConfig.endpoint} 次の文字列と一致する {!Get_ExternalAgentConfig.EndpointURL__c}
{!CreateSessionBody.externalSessionKey} 次の文字列と一致する {!$Flow.CurrentDateTime}

EventGuideAgentCalloutFlow_Assign_ConstructRequestForGetSessionId.png

セッションIDを取得

アクション の要素を入力なしのパスのセッションIDを取得するためのリクエストを構成の後に配置し、下記の設定でセッションIDを取得します。

設定名 設定内容
アクション種別 外部サービス : AgentAPICreateSession
表示ラベル セッションIDを取得
API参照名 Action_GetSessionId
説明 外部のAgentのセッションIDを取得する。
入力値 Agent Id = {!Get_ExternalAgentConfig.AgentId__c}
Body = {!CreateSessionBody}

EventGuideAgentCalloutFlow_Action_GetSessionId.png

取得したセッションIDの割り当て

割り当て の要素を入力なしのパスのセッションIDを取得の後に配置し、下記の設定でセッションIDを変数に設定します。

設定名 設定内容
表示ラベル 取得したセッションIDの割り当て
API参照名 Assign_SessionId
説明 取得したセッションIDを変数に割り当てる。
変数値の設定 {!SessionId} 次の文字列と一致する {!Action_GetSessionId.200.sessionId}

EventGuideAgentCalloutFlow_Assign_SessionId.png

Agentに対するメッセージのリクエストを構成

割り当て の要素を条件分岐の合流箇所に配置し、下記の設定でAgentに対するメッセージのリクエストを構成します。

設定名 設定内容
表示ラベル Agentに対するメッセージのリクエストを構成
API参照名 Assign_ConstructRequestForSendMessage
説明 Agentに対するメッセージのリクエストを構成する。
変数値の設定 {!SendMessageBody.message.sequenceId} 次の文字列と一致する {!SEQUENCE_ID}
{!SendMessageBody.message.text} 次の文字列と一致する {!Question}
{!SendMessageBody.message.z0type} 次の文字列と一致する {!MESSAGE_TYPE}

EventGuideAgentCalloutFlow_Assign_ConstructRequestForSendMessage.png

Agentへ質問

アクション の要素をAgentに対するメッセージのリクエストを構成の後に配置し、下記の設定でAgentへ質問する構成を設定します。

設定名 設定内容
アクション種別 外部サービス : AgentAPISendMessage
表示ラベル Agentへ質問
API参照名 Action_QuestionToExternalAgent
説明 外部のAgentへ質問します。
入力値 Body = {!SendMessageBody}
Session Id = {!SessionId}

EventGuideAgentCalloutFlow_Action_QuestionToExternalAgent.png

返答を出力変数へ割り当て

割り当て の要素をAgentへ質問の後に配置し、下記の設定でAgentの返答を出力変数に設定します。

設定名 設定内容
表示ラベル 返答を出力変数へ割り当て
API参照名 Assign_Responds
説明 Agentの返答を出力変数へ割り当てる。
変数値の設定 {!Responds} 次の文字列と一致する {!Action_QuestionToExternalAgent.200.messages}

EventGuideAgentCalloutFlow_Assign_Responds.png

フローを有効化

フローを保存して有効化します。

Callee環境のAgentと連携するAgentを作成

Agentforceエージェントの設定ページからAgentforceを有効化します。

Agentforce_Activate.png

新しいエージェントとして、下記のようなAgentを構成します。

設定名 設定内容
名前 Event Guide Internal Agent
API参照名 EventGuideInternalAgent
機能 従業員の問い合わせに対してイベントやスロットの情報から回答する

テンプレートの選択

テンプレートは Agentforce Employee Agent を選択します。

Agentforce_Template_Employee.png

トピックの選択

デフォルトで選択されているトピックはすべてチェックを外します。

Agentforce_Template_Employee_Topic.png

エージェントのカスタマイズの設定

エージェントのカスタマイズでは下記の構成で設定します。

設定名 設定内容
名前 Event Guide Internal Agent
API参照名 EventGuideInternalAgent
説明 従業員のイベントやスロットの問い合わせに対して、従業員にわかりやすく回答する従業員専用のサポートAgentです。従業員の質問内容に応じて、外部のAgentを呼び出して適切なイベントまたはスロット情報を特定し、簡潔かつ正確に回答します。
ロール あなたは従業員専用のイベント案内マネージャーです。外部のAgentとして存在するイベント案内スペシャリストと協力し、以下の対応を行います:
1. 問い合わせに対して外部のイベント案内スペシャリストのAgentに確認して対応する
2. 外部のイベント案内スペシャリストのAgentが回答できない内容についてはその旨を回答する
会社 当社は、各種イベントの企画・運営を行う企業であり、従業員は顧客に対するイベントの案内を行う際にAgentを利用して案内の質を向上させることを目指しています。

EventGuideInternalAgent_Detail.png

エージェントの言語設定

言語のデフォルト値を Japanese に設定しておきます。

Agentforce_Language.png

コンテキスト変数の設定

下記のカスタム変数をコンテキスト変数に追加します。

設定名 設定内容
名前 外部エージェントセッションID
API参照名 ExternalAgentSessionId
データ型 Text
説明 会話の中で外部のエージェントを利用するためのセッションIDを保持する

EventGuideInternalAgent_ContextVariables_ExternalAgentSessionId.png

外部のAgentを呼び出すトピックの作成

下記の設定で外部のAgentを呼び出すトピックを作成します。このとき、アクションを追加する必要はありません。

設定名 設定内容
名前 Invocation External Agent
API参照名 InvocationExternalAgent
分類の説明 イベントまたはイベントのスロットに関する情報(開催日時、期間、概要、内容)を尋ねる問い合わせ。特定のイベント名やスロット名を指定した質問や、日程や内容を確認する意図を含む発話が該当する。イベントやスロットの情報を特定するために必ず外部のエージェントに確認する。
範囲 従業員からの問い合わせに関して外部のエージェントに問い合わせを実施し、受け取った情報を基に従業員へ正確かつ適切な回答を提供することのみです。回答を行う際には必ず外部のエージェントへ問い合わせを実施してから回答します。
指示 1. 従業員から問い合わせがあった場合、外部のエージェントに問い合わせを実施し、回答を得るようにしてください。
2. 外部のエージェントから得られた回答に基づいて、従業員に回答を提供してください。
3. 外部のエージェントからの回答に含まれない内容は回答しないでください。
4. 外部のエージェントから適切な回答を得られない場合、該当する回答がない旨を従業員に回答するようにしてください。
入力例 1. 現在開催されている もしくは 直近で開催されるイベントの概要を教えてください。
2. 開催されているイベントのスロットの一覧を提示してください。

EventGuideInternalAgent_CreateTopic.png

外部エージェントを呼び出すアクションの作成

下記の設定でトピックのアクションを作成し、上記で作成したトピックに割り当てます。

設定名 設定内容
参照アクション種別 フロー
参照アクション イベントガイドエージェントコールアウトフロー
表示ラベル イベントガイドエージェントコールアウトアクション
API参照名 EventGuideAgentCalloutAction

Agentforce_CreateAction_EventGuideAgentCalloutAction.png

エージェントに対する指示の詳細は下記の設定とします。

設定名 設定内容
エージェントアクション指示 外部に存在するイベント案内スペシャリストのエージェントに問い合わせを実施し、従業員からの問い合わせに回答するための情報を提供します。
読み込み中テキスト Agentに確認中です

Agentforce_CreateAction_EventGuideAgentCalloutAction_Detail.png

入出力変数に対する設定は下記の設定とします。

入力変数 説明
Question 外部のAgentに対する質問を入力する。
SessionId 外部のAgentのセッションIDを入力する。
必ず当該アクションの結果として得られるセッションIDのみを入力し、それ以外の推論での入力などはしないでください。
Responds 外部のAgentからの下記の情報などの回答が含まれます。
- イベントの名前や開催時期および概要
- スロットの名前や開催時期および概要
SessionId 外部のAgentのセッションIDが記載されます。

Agentforce_CreateAction_EventGuideAgentCalloutAction_InOut.png

システムメッセージの調整

Agentの設定画面のシステムメッセージタブで各種メッセージを調整します。

メッセージ種別 メッセージ内容
お知らせメッセージ 私は従業員専用のイベント案内エージェントです。外部のエージェントと協力して情報を提供します。
エラーメッセージ 申し訳ありません。エラーが発生しました。

EventGuideInternalAgent_MessageSetting.png

Agentのアクセス権限を整理

下記の設定で権限セットを作成します。

設定名 設定内容
表示ラベル イベントガイドエージェント利用権限
API参照名 UseEventGuideInternalAgentPermission
説明 従業員専用のイベントガイドエージェントを利用する権限です。

UseEventGuideInternalAgentPermission_Detail.png

作成した権限セットの外部ログイン情報プリンシパルアクセスで外部ログイン情報プリンシパルを有効にします。

UseEventGuideInternalAgentPermission_Principal.png

作成した権限セットのエージェントアクセスで従業員専用のエージェントを有効にします。

UseEventGuideInternalAgentPermission_AgentAccess.png

作成した権限セットを自分自身のユーザーに割り当てます。

UseEventGuideInternalAgentPermission_Assign.png

動作確認とAgentの有効化

これまでの各種設定が完了したことを確認し、下記の手順で動作確認およびAgentの有効化を実施します。

  1. Agentforce Builderの会話プレビューで動作を確認します。
  2. 動作確認が完了したのちにAgentを有効化します。

Agentforce Builderの会話プレビューで動作を確認

下記のように会話プレビューから質問を行い、返答内容に問題がないか確認します。

Agentforce_Confirm.png

Agentを有効化

Agentを有効化し、SalesforceのUIにAgentforceが表示されることを確認します。

Agentforce_Home.png

設定完了

ここまでの設定でCaller環境の設定は完了となります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?