本記事は、2026年6月9日に開催されるAgentforce World Tour Tokyoのワークショップの作業内容をまとめています。
本記事の全体構成について
本記事の全体構成はこちらに記載しています。
環境の設定
ワークショップで実施していただく内容となります。
Caller環境の設定は下記の流れで実施します。
- リモートサイト設定を追加
- 構成情報を記録するカスタムメタデータを作成
- Callee環境と接続するための指定ログイン情報を構成
- Callee環境を対象とした外部サービスを構成
- Callee環境のAgentを呼び出すフローを作成
- Callee環境のAgentと連携するAgentを作成
- Agentのアクセス権限を整理
- 動作確認とAgentの有効化
リモートサイト設定を追加
下記のリモートサイトを設定します。
| サイト名 | サイトのURL | 説明 |
|---|---|---|
EventGuideAgentOrg |
※Callee環境のURL | Event Guide Agentを提供する環境のサイトです。 |
SalesforceAgentAPI |
https://api.salesforce.com |
Salesforce Agent APIを使用するためのサイトです。 |
ワークショップでは登壇者からEventGuideAgentOrgで設定するサイトのURLを案内します。
構成情報を記録するカスタムメタデータを作成
下記の設定でカスタムメタデータを作成します。明記していない設定に関してはデフォルトの状態で問題ありません。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | 外部エージェント構成 |
| 表示ラベル(複数形) | 外部エージェント構成 |
| オブジェクト名 | ExternalAgentConfig |
| 説明 | 外部のエージェントを呼び出すための構成を管理するメタデータです。 |
| 表示 | すべての Apex コードと API でこの種別を使用でき、[設定] で参照可能です。 |
外部エージェント構成の項目
カスタムメタデータの項目として下記を作成します。
| 表示ラベル | 項目名 | 用途 |
|---|---|---|
Agent ID |
AgentId |
エージェントのIDを記録します |
Endpoint URL |
EndpointURL |
エンドポイントのURLを記録します |
外部エージェント構成のAgentID項目の追加
外部エージェント構成の Agent ID 項目は下記の設定で追加します。
| 設定名 | 設定内容 |
|---|---|
| データ型 | テキスト |
| 項目の表示ラベル | Agent ID |
| 文字数 | 18 |
| 項目名 | AgentId |
| 説明 | エージェントのIDを記録します |
| ヘルプテキスト | エージェントのIDを記録してください |
| 必須 | TRUE |
| 項目管理可能性 | 「アプリケーションのカスタマイズ」権限を持つすべてのユーザー (管理パッケージのアップグレードでは値は上書きされません) |
データ型は テキスト を選択します。
上記の項目定義に基づいて詳細を入力します。
ページレイアウトの設定は制御できないため、デフォルトの状態のまま進めます。
外部エージェント構成のEndpointURL項目の追加
外部エージェント構成の Endpoint URL 項目は下記の設定で追加します。
| 設定名 | 設定内容 |
|---|---|
| データ型 | URL |
| 項目の表示ラベル | Endpoint URL |
| 項目名 | EndpointURL |
| 説明 | エントポイントのURLを記録します |
| ヘルプテキスト | エンドポイントのURLを記録してください |
| 必須 | TRUE |
| 項目管理可能性 | 「アプリケーションのカスタマイズ」権限を持つすべてのユーザー (管理パッケージのアップグレードでは値は上書きされません) |
データ型は URL を選択します。
上記の項目定義に基づいて詳細を入力します。
ページレイアウトの設定は制御できないため、デフォルトの状態のまま進めます。
外部エージェント構成のページレイアウトの修正
外部エージェント構成のページレイアウトについて下記の修正を行います。
-
詳細のセクション を下記の構成に修正します。
- 情報(2列レイアウト/詳細ページと編集ページで表示)
- システム情報(2列レイアウト/詳細ページと編集ページで表示)
- 詳細の項目の配置 を適切な位置に配置します。
外部エージェント構成のレコードの登録
下記の外部エージェント構成のレコードデータを作成します。
| 項目 | 値 |
|---|---|
| 表示ラベル | Event Guide Agent |
| 外部エージェント構成名 | EventGuideAgent |
| Agent ID | ※Callee環境のエージェントのID |
| Endpoint URL | ※Callee環境のURL |
ワークショップでは登壇者からAgent IDとEndpoint URLで設定する情報を案内します。
Callee環境と接続するための指定ログイン情報を構成
下記の構成で外部ログイン情報を作成します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | Event Guide Agent External Credential |
| 名前 | EventGuideAgentExternalCredential |
| 認証プロトコル | OAuth 2.0 |
| 認証フロー種別 | クライアントの秘密によるクライアントログイン情報フロー |
| IDプロバイダーURL | ※Callee環境のURL + /services/oauth2/token
|
ワークショップでは登壇者からIDプロバイダーURLで設定する情報を案内します。
下記の構成で外部ログイン情報のプリンシパルを作成します。
| 設定名 | 設定内容 |
|---|---|
| パラメーター名 | EventGuideAgentPrincipal |
| 連番 | 1 |
| クライアントID | ※Callee環境の外部クライアントアプリケーションのコンシュマーの鍵 |
| クライアントの秘密 | ※Callee環境の外部クライアントアプリケーションのコンシュマーの秘密 |
下記の構成で指定ログイン情報を作成します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | Event Guide Agent Named Credential |
| 名前 | EventGuideAgentNamedCredential |
| URL | https://api.salesforce.com |
| 外部ログイン情報 | Event Guide Agent External Credential |
| 認証ヘッダーを生成 | TRUE |
| HTTP ヘッダーの数式を許可 | TRUE |
| HTTP 本文の数式を許可 | TRUE |
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仕様から を選択します。
上記の定義に基づいて詳細を入力します。
選択可能なすべての操作を選択します。
設定内容を確認して完了します。
メッセージを送信する外部サービスを作成
メッセージを送信する外部サービスを下記の設定で構成します。
| 設定名 | 設定内容 |
|---|---|
| 外部サービス名 | 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仕様から を選択します。
上記の定義に基づいて詳細を入力します。
選択可能なすべての操作を選択します。
設定内容を確認して完了します。
Callee環境のAgentを呼び出すフローを作成
下記の設定でフローを作成します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | イベントガイドエージェントコールアウトフロー |
| API参照名 | EventGuideAgentCalloutFlow |
| 説明 | Callee環境に存在するEvent Guide Agentに対してコールアウトを実施するフロー |
| フローの実行方法 | ユーザーまたはシステムコンテキスト — フローの起動方法に依存します |
| 種別 | 自動起動フロー(トリガーなし) |
全体像としては下記の通りです。
イベントガイドエージェントコールアウトフローの変数を定義
フローの変数として下記を作成します。
| 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に対するメッセージを構成する際の値を格納する変数 |
イベントガイドエージェントコールアウトフローの定数を定義
フローの定数として下記を作成します。
| API参照名 | データ型 | 値 | 説明 |
|---|---|---|---|
EVENT_GUIDE_AGENT |
テキスト | EventGuideAgent |
EventGuideAgentの名称を保持する定数 |
SEQUENCE_ID |
数値 | 1 |
EventGuideAgentへ与えるシーケンスIDを保持する定数 |
MESSAGE_TYPE |
テキスト | Text |
EventGuideAgentへ与えるメッセージの種別を保持する定数 |
セッションIDの入力を確認
決定 の要素を開始処理の後に配置し、下記の設定で入力値を判定します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | セッションIDの入力を確認 |
| API参照名 | Decision_InputSessionId |
| 説明 | セッションIDの入力の有無によって後続処理を分岐する。 |
| 結果の表示ラベル | 入力なし |
| 結果のAPI参照名 | Decision_InputSessionId_IsNullOrEmptyString |
| 結果の条件 | いずれかの条件に一致 (OR){!SessionId} null {!$GlobalConstant.True}{!SessionId} 空白 {!$GlobalConstant.True}
|
| デフォルトの結果の表示ラベル | 入力あり |
外部エージェント構成の取得
レコードを取得 の要素を入力なしのパスに配置し、下記の設定で外部エージェント構成を取得します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | 外部エージェント構成の取得 |
| API参照名 | Get_ExternalAgentConfig |
| 説明 | EventGuideAgentの外部エージェント構成を取得する。 |
| オブジェクト | 外部エージェント構成 |
| 絞り込み条件 | すべての条件に一致 (AND)DeveloperName 次の文字列と一致する {!EVENT_GUIDE_AGENT}
|
| 並び替え | なし |
| 保存するレコード数 | 最初のレコードのみ |
| レコードデータの保存方法 | すべての項目値を自動的に保存 |
セッションIDを取得するためのリクエストを構成
割り当て の要素を入力なしのパスの外部エージェント構成の取得の後に配置し、下記の設定でセッションIDを取得するためのリクエストを構成します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | セッションIDを取得するためのリクエストを構成 |
| API参照名 | Assign_ConstructRequestForGetSessionId |
| 説明 | セッションIDを取得するためのリクエストを構成する。 |
| 変数値の設定 |
{!CreateSessionBody.instanceConfig.endpoint} 次の文字列と一致する {!Get_ExternalAgentConfig.EndpointURL__c}{!CreateSessionBody.externalSessionKey} 次の文字列と一致する {!$Flow.CurrentDateTime}
|
セッションIDを取得
アクション の要素を入力なしのパスのセッションIDを取得するためのリクエストを構成の後に配置し、下記の設定でセッションIDを取得します。
| 設定名 | 設定内容 |
|---|---|
| アクション種別 | 外部サービス : AgentAPICreateSession |
| 表示ラベル | セッションIDを取得 |
| API参照名 | Action_GetSessionId |
| 説明 | 外部のAgentのセッションIDを取得する。 |
| 入力値 | Agent Id = {!Get_ExternalAgentConfig.AgentId__c}Body = {!CreateSessionBody}
|
取得したセッションIDの割り当て
割り当て の要素を入力なしのパスのセッションIDを取得の後に配置し、下記の設定でセッションIDを変数に設定します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | 取得したセッションIDの割り当て |
| API参照名 | Assign_SessionId |
| 説明 | 取得したセッションIDを変数に割り当てる。 |
| 変数値の設定 |
{!SessionId} 次の文字列と一致する {!Action_GetSessionId.200.sessionId}
|
Agentに対するメッセージのリクエストを構成
割り当て の要素を条件分岐の合流箇所に配置し、下記の設定でAgentに対するメッセージのリクエストを構成します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | Agentに対するメッセージのリクエストを構成 |
| API参照名 | Assign_ConstructRequestForSendMessage |
| 説明 | Agentに対するメッセージのリクエストを構成する。 |
| 変数値の設定 |
{!SendMessageBody.message.sequenceId} 次の文字列と一致する {!SEQUENCE_ID}{!SendMessageBody.message.text} 次の文字列と一致する {!Question}{!SendMessageBody.message.z0type} 次の文字列と一致する {!MESSAGE_TYPE}
|
Agentへ質問
アクション の要素をAgentに対するメッセージのリクエストを構成の後に配置し、下記の設定でAgentへ質問する構成を設定します。
| 設定名 | 設定内容 |
|---|---|
| アクション種別 | 外部サービス : AgentAPISendMessage |
| 表示ラベル | Agentへ質問 |
| API参照名 | Action_QuestionToExternalAgent |
| 説明 | 外部のAgentへ質問します。 |
| 入力値 | Body = {!SendMessageBody}Session Id = {!SessionId}
|
返答を出力変数へ割り当て
割り当て の要素をAgentへ質問の後に配置し、下記の設定でAgentの返答を出力変数に設定します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | 返答を出力変数へ割り当て |
| API参照名 | Assign_Responds |
| 説明 | Agentの返答を出力変数へ割り当てる。 |
| 変数値の設定 |
{!Responds} 次の文字列と一致する {!Action_QuestionToExternalAgent.200.messages}
|
フローを有効化
フローを保存して有効化します。
Callee環境のAgentと連携するAgentを作成
Agentforceエージェントの設定ページからAgentforceを有効化します。
新しいエージェントとして、下記のようなAgentを構成します。
| 設定名 | 設定内容 |
|---|---|
| 名前 | Event Guide Internal Agent |
| API参照名 | EventGuideInternalAgent |
| 機能 | 従業員の問い合わせに対してイベントやスロットの情報から回答する |
テンプレートの選択
テンプレートは Agentforce Employee Agent を選択します。
トピックの選択
デフォルトで選択されているトピックはすべてチェックを外します。
エージェントのカスタマイズの設定
エージェントのカスタマイズでは下記の構成で設定します。
| 設定名 | 設定内容 |
|---|---|
| 名前 | Event Guide Internal Agent |
| API参照名 | EventGuideInternalAgent |
| 説明 | 従業員のイベントやスロットの問い合わせに対して、従業員にわかりやすく回答する従業員専用のサポートAgentです。従業員の質問内容に応じて、外部のAgentを呼び出して適切なイベントまたはスロット情報を特定し、簡潔かつ正確に回答します。 |
| ロール |
あなたは従業員専用のイベント案内マネージャーです。外部のAgentとして存在するイベント案内スペシャリストと協力し、以下の対応を行います:1. 問い合わせに対して外部のイベント案内スペシャリストのAgentに確認して対応する2. 外部のイベント案内スペシャリストのAgentが回答できない内容についてはその旨を回答する
|
| 会社 | 当社は、各種イベントの企画・運営を行う企業であり、従業員は顧客に対するイベントの案内を行う際にAgentを利用して案内の質を向上させることを目指しています。 |
エージェントの言語設定
言語のデフォルト値を Japanese に設定しておきます。
コンテキスト変数の設定
下記のカスタム変数をコンテキスト変数に追加します。
| 設定名 | 設定内容 |
|---|---|
| 名前 | 外部エージェントセッションID |
| API参照名 | ExternalAgentSessionId |
| データ型 | Text |
| 説明 | 会話の中で外部のエージェントを利用するためのセッションIDを保持する |
外部のAgentを呼び出すトピックの作成
下記の設定で外部のAgentを呼び出すトピックを作成します。このとき、アクションを追加する必要はありません。
| 設定名 | 設定内容 |
|---|---|
| 名前 | Invocation External Agent |
| API参照名 | InvocationExternalAgent |
| 分類の説明 | イベントまたはイベントのスロットに関する情報(開催日時、期間、概要、内容)を尋ねる問い合わせ。特定のイベント名やスロット名を指定した質問や、日程や内容を確認する意図を含む発話が該当する。イベントやスロットの情報を特定するために必ず外部のエージェントに確認する。 |
| 範囲 | 従業員からの問い合わせに関して外部のエージェントに問い合わせを実施し、受け取った情報を基に従業員へ正確かつ適切な回答を提供することのみです。回答を行う際には必ず外部のエージェントへ問い合わせを実施してから回答します。 |
| 指示 | 1. 従業員から問い合わせがあった場合、外部のエージェントに問い合わせを実施し、回答を得るようにしてください。2. 外部のエージェントから得られた回答に基づいて、従業員に回答を提供してください。3. 外部のエージェントからの回答に含まれない内容は回答しないでください。4. 外部のエージェントから適切な回答を得られない場合、該当する回答がない旨を従業員に回答するようにしてください。
|
| 入力例 | 1. 現在開催されている もしくは 直近で開催されるイベントの概要を教えてください。2. 開催されているイベントのスロットの一覧を提示してください。
|
外部エージェントを呼び出すアクションの作成
下記の設定でトピックのアクションを作成し、上記で作成したトピックに割り当てます。
| 設定名 | 設定内容 |
|---|---|
| 参照アクション種別 | フロー |
| 参照アクション | イベントガイドエージェントコールアウトフロー |
| 表示ラベル | イベントガイドエージェントコールアウトアクション |
| API参照名 | EventGuideAgentCalloutAction |
エージェントに対する指示の詳細は下記の設定とします。
| 設定名 | 設定内容 |
|---|---|
| エージェントアクション指示 | 外部に存在するイベント案内スペシャリストのエージェントに問い合わせを実施し、従業員からの問い合わせに回答するための情報を提供します。 |
| 読み込み中テキスト | Agentに確認中です |
入出力変数に対する設定は下記の設定とします。
| 入力変数 | 説明 |
|---|---|
| Question | 外部のAgentに対する質問を入力する。 |
| SessionId |
外部のAgentのセッションIDを入力する。必ず当該アクションの結果として得られるセッションIDのみを入力し、それ以外の推論での入力などはしないでください。
|
| Responds |
外部のAgentからの下記の情報などの回答が含まれます。- イベントの名前や開催時期および概要- スロットの名前や開催時期および概要
|
| SessionId | 外部のAgentのセッションIDが記載されます。 |
システムメッセージの調整
Agentの設定画面のシステムメッセージタブで各種メッセージを調整します。
| メッセージ種別 | メッセージ内容 |
|---|---|
| お知らせメッセージ | 私は従業員専用のイベント案内エージェントです。外部のエージェントと協力して情報を提供します。 |
| エラーメッセージ | 申し訳ありません。エラーが発生しました。 |
Agentのアクセス権限を整理
下記の設定で権限セットを作成します。
| 設定名 | 設定内容 |
|---|---|
| 表示ラベル | イベントガイドエージェント利用権限 |
| API参照名 | UseEventGuideInternalAgentPermission |
| 説明 | 従業員専用のイベントガイドエージェントを利用する権限です。 |
作成した権限セットの外部ログイン情報プリンシパルアクセスで外部ログイン情報プリンシパルを有効にします。
作成した権限セットのエージェントアクセスで従業員専用のエージェントを有効にします。
作成した権限セットを自分自身のユーザーに割り当てます。
動作確認とAgentの有効化
これまでの各種設定が完了したことを確認し、下記の手順で動作確認およびAgentの有効化を実施します。
- Agentforce Builderの会話プレビューで動作を確認します。
- 動作確認が完了したのちにAgentを有効化します。
Agentforce Builderの会話プレビューで動作を確認
下記のように会話プレビューから質問を行い、返答内容に問題がないか確認します。
Agentを有効化
Agentを有効化し、SalesforceのUIにAgentforceが表示されることを確認します。
設定完了
ここまでの設定でCaller環境の設定は完了となります。






















































