Amazon Connect Customer AIエージェントで会話を継続するツールタイプと終了するツールタイプを整理してみた
はじめに
Amazon Connect Customer AIエージェントでセルフサービスを構成していると、AIエージェントがツールを呼び出したあとに、会話が継続するのか、問い合わせフローへ制御が戻るのか迷うことがあります。
例えば、以下のような構成です。
顧客とAIエージェントが会話する
↓
AIエージェントが問い合わせ内容を分類する
↓
分類結果を問い合わせフローで参照する
↓
後続の問い合わせフローで分岐する
このとき、フローモジュールツールの指示に「分類後は会話を終了してください」と記載するだけで、問い合わせフローへ制御が戻るのかが気になりました。
結論から言うと、AIエージェントとの会話を終了して問い合わせフローへ制御を戻すには、Tool Type が Return to Control のツールを使用します。
一方、Out-of-the-box ツール、フローモジュールツール、サードパーティーの MCP ツール、Constant ツールは、AIエージェントとの会話を終了せず、ツールの実行結果を使って会話を継続します。
本記事では、Amazon Connect Customer AIエージェントで利用できるツールごとに、会話が継続するのか、終了して問い合わせフローへ制御が戻るのかを整理します。
結論
会話の継続と終了という観点では、以下のように整理できます。
| ツール | 会話の扱い | 主な用途 |
|---|---|---|
| Out-of-the-box ツール | 継続 | Amazon Connect Customer が提供する構築済みツールを利用する |
| フローモジュールツール | 継続 | フローモジュールを呼び出して業務ロジックを実行する |
| サードパーティーの MCP ツール | 継続 | 外部システムやサードパーティーのツールを呼び出す |
Constant ツール |
継続 | 設定した静的文字列をAIエージェントへ返す |
Return to Control ツール |
終了 | AIエージェントとの会話を終了し、問い合わせフローへ制御を戻す |
問い合わせフローへ制御を戻すかどうかは、ツールの指示に「会話を終了する」と記載されているかではなく、Tool Type が Return to Control かどうかで決まります。
公式ドキュメントでは、Return to Control について、AIエージェントに停止を指示し、問い合わせフローへ制御を返すものとして説明されています。
Return to Control – AI エージェントに停止を指示し、問い合わせフローに制御を返します。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/agentic-self-service.html
SelfServiceOrchestrator AIエージェントには、デフォルトで Complete と Escalate の Return to Control ツールが含まれます。
Complete:インタラクションを終了するEscalate:有人エージェントへ転送する
また、任意の入力スキーマを持つカスタム Return to Control ツールも作成できます。
ツールごとの挙動
Out-of-the-box ツール
Out-of-the-box ツールは、Amazon Connect Customer が提供する構築済みのツールです。
公式ドキュメントでは、問い合わせ属性の更新やケース情報の取得など、一般的なタスクに利用できるツールとして説明されています。
Connect Customer には、問い合わせ属性の更新やケース情報の取得などの一般的なタスク用の構築済みのツールが含まれており、追加の設定なしですぐに機能できます。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/ai-agent-mcp-tools.html
Out-of-the-box ツールは、AIエージェントが会話中に情報を取得したり、アクションを実行したりするために利用します。
ツールの実行結果はAIエージェントへ返され、その結果を使って顧客への回答や次の処理を継続します。Out-of-the-box ツールを呼び出しただけでは、問い合わせフローへ制御は戻りません。
フローモジュールツール
フローモジュールツールは、新しく作成したフローモジュール、または既存のフローモジュールをAIエージェントから呼び出せるようにするものです。
公式ドキュメントでは、既存のフローモジュールを MCP ツールに変換し、同じビジネスロジックを再利用できると説明されています。
新しいフローモジュールを作成したり、既存のフローモジュールを MCP ツールに変換したりできるため、静的 AI ワークフローと生成 AI ワークフローの両方で同じビジネスロジックを再利用できます。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/ai-agent-mcp-tools.html
例えば、問い合わせ種別マスタを Data Table から取得する GetInquiryCategories というフローモジュールツールを作成したとします。
AIエージェント
↓
GetInquiryCategories を呼び出す
↓
フローモジュール内で Data Table を List 取得する
↓
問い合わせ種別候補をAIエージェントへ返す
↓
AIエージェントとの会話を継続する
GetInquiryCategories は、Data Table から取得した問い合わせ種別候補をAIエージェントへ返すためのツールです。
フローモジュールツールの指示に、以下のように記載しても、それだけでは問い合わせフローへ制御は戻りません。
分類後は追加質問や追加説明をせず、会話を終了してください。
この指示はAIエージェントの振る舞いを誘導するものですが、問い合わせフローへの制御返却を実行するものではありません。
問い合わせフローへ制御を戻すには、フローモジュールツールの処理後に Return to Control ツールを呼び出す必要があります。
サードパーティーの MCP ツール
サードパーティーの MCP ツールは、Amazon Bedrock AgentCore Gatewayを使用して、外部システムやサードパーティーのツールをAIエージェントから利用するものです。
公式ドキュメントでは、AWS マネジメントコンソールに AgentCore Gatewayを登録することで、リモート MCP サーバーなどで利用可能なツールへアクセスできると説明されています。
Amazon Bedrock AgentCore Gateway を使用して、サードパーティーの統合を使用できます。AWS マネジメントコンソールに AgentCore Gateway を登録することで、リモート MCP サーバーなど、それらのサーバーで使用できる任意のツールにアクセスできます。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/ai-agent-mcp-tools.html
また、AIエージェントは問い合わせフローへ制御を戻すことなく、会話中に MCP ツールを呼び出すと説明されています。
AI エージェントは、問い合わせフローに制御を戻すことなく、会話中に MCP ツールを呼び出します。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/agentic-self-service.html
そのため、サードパーティーの MCP ツールを呼び出した場合も、ツールの実行結果がAIエージェントへ返され、会話が継続します。
外部システムの処理が完了したあとに問い合わせフローへ戻したい場合は、その後に Return to Control ツールを呼び出す構成にします。
Constant ツール
Constant ツールは、設定した静的文字列をAIエージェントへ返すツールです。
公式ドキュメントでは、Constant ツールの挙動について以下のように説明されています。
定数ツールは、呼び出し時に設定された静的文字列値を AI エージェントに返します。Return to Control ツールとは異なり、定数ツールは AI 会話を終了しません。AI エージェントは文字列を受け取り、会話を続行します。
https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/agentic-self-service.html
例えば、実際の注文管理システムへ接続する前に、以下のような固定レスポンスを返す Constant ツールを作成できます。
{
"orderId": "ORDER-12345",
"status": "shipped"
}
このツールをAIエージェントが呼び出しても、問い合わせフローへ制御は戻りません。
AIエージェントは返された静的文字列を使って、顧客への回答や次の処理を継続します。
Return to Control ツール
Return to Control ツールは、AIエージェントとの会話を終了し、問い合わせフローへ制御を戻すためのツールです。
Return to Control ツールが呼び出された際の動作は以下です。
- AIエージェントとの会話が終了する
- 問い合わせフローへ制御が戻る
- 呼び出されたツール名と入力パラメータが Amazon Lex のセッション属性に格納される
問い合わせフローでは、これらのセッション属性を参照し、呼び出されたツールや入力パラメータに応じて後続処理へ分岐できます。
Return to Control ツールには、デフォルトのツールとカスタムツールがあります。
| ツール | 用途 |
|---|---|
Complete |
インタラクションを終了する |
Escalate |
有人エージェントへ転送する |
カスタム Return to Control ツール |
入力スキーマで定義した値を問い合わせフローへ渡す |
単にAIエージェントとの会話を終了したい場合は、デフォルトの Complete を利用できます。
一方、問い合わせ分類結果や会話要約などの値を問い合わせフローへ渡したい場合は、入力スキーマを持つカスタム Return to Control ツールを作成します。
問い合わせ分類での構成例
問い合わせ分類では、問い合わせ種別の管理方法によって構成が異なります。
Return to Control ツールだけで構成する場合
問い合わせ種別が固定されており、カスタム Return to Control ツールの入力スキーマにすべて定義できる場合は、Return to Control ツールだけで構成できます。
例えば、問い合わせ種別が以下の3種類で固定されているケースです。
inquiryTypeName |
|---|
| 請求 |
| 契約 |
| その他 |
カスタム Return to Control ツールの入力スキーマに、問い合わせ種別を enum として定義します。
{
"type": "object",
"properties": {
"inquiryTypeName": {
"type": "string",
"description": "会話内容に最も近い問い合わせ種別。",
"enum": [
"請求",
"契約",
"その他"
]
}
},
"required": [
"inquiryTypeName"
]
}
AIエージェントは会話内容をもとに inquiryTypeName を選択し、カスタム Return to Control ツールを呼び出します。
顧客とAIエージェントが会話する
↓
AIエージェントが inquiryTypeName を選択する
↓
Return to Control ツールを呼び出す
↓
AIエージェントとの会話が終了する
↓
問い合わせフローへ制御が戻る
問い合わせ種別が少なく、変更頻度も低い場合は、この構成がシンプルです。
フローモジュールツールと Return to Control ツールを組み合わせる場合
問い合わせ種別を Data Table で管理し、フローモジュールツールから取得する場合は、フローモジュールツールと Return to Control ツールを組み合わせます。
例えば、Data Table に以下の問い合わせ種別マスタを登録しているケースです。
inquiryTypeName |
examples |
|---|---|
| 請求 | 支払い遅延、請求書再発行 |
| 契約 | 解約、プラン変更 |
| その他 | 担当部署不明、上記に該当しない問い合わせ |
この構成では、2つのツールの役割を分けます。
GetInquiryCategories
→ フローモジュールツール
→ Data Table から問い合わせ種別候補を取得する
→ AIエージェントへ候補を返す
→ AIエージェントとの会話を継続する
CompleteInquiryClassification
→ カスタム Return to Control ツール
→ AIエージェントが選択した inquiryTypeName を渡す
→ AIエージェントとの会話を終了する
→ 問い合わせフローへ制御を戻す
GetInquiryCategories と CompleteInquiryClassification は例示のツール名です。実際の環境では、ツール名や入力スキーマを要件に合わせて置き換えてください。
この構成における役割は以下です。
| ツール | 役割 |
|---|---|
| フローモジュールツール | Data Table から問い合わせ種別候補を取得する |
Return to Control ツール |
分類結果を問い合わせフローへ渡し、AIエージェントとの会話を終了する |
フローモジュールツールに会話終了の役割を持たせるのではなく、候補取得と制御返却を別のツールで実行します。
問い合わせフローで確認する値
Return to Control ツールが呼び出されると、AIエージェントとの会話が終了し、問い合わせフローへ制御が戻ります。呼び出されたツール名と入力パラメータは、Amazon Lex のセッション属性に格納されます。
問い合わせフローでは、顧客の入力を取得する ブロックのデフォルト出力後に コンタクト属性を確認する ブロックを配置し、以下の値を確認します。
| 項目 | 値 |
|---|---|
| 名前空間 | Lex |
| キー | セッション属性 |
| セッション属性キー | Tool |
| 条件値 | 呼び出された Return to Control ツール名 |
例えば、カスタム Return to Control ツール名が CompleteInquiryClassification の場合は、Tool が CompleteInquiryClassification であることを確認します。
Tool とツールの入力パラメータは、役割が異なります。
| 値 | 例 | 用途 |
|---|---|---|
Tool |
CompleteInquiryClassification |
呼び出された Return to Control ツールを判断する |
inquiryTypeName |
請求 |
問い合わせ分類結果として後続処理で使用する |
今回の例では、GetInquiryCategories はフローモジュールツールです。そのため、Tool で確認する値は GetInquiryCategories ではなく、問い合わせフローへ制御を戻した CompleteInquiryClassification です。
まとめ
Amazon Connect Customer AIエージェントで利用できるツールについて、会話が継続するツールと終了するツールを整理しました。
Out-of-the-box ツール、フローモジュールツール、サードパーティーの MCP ツール、Constant ツールは、実行結果をAIエージェントへ返して会話を継続します。一方、Return to Control ツールは、AIエージェントとの会話を終了し、問い合わせフローへ制御を戻します。
問い合わせ種別を入力スキーマに直接定義できる場合は、カスタム Return to Control ツールだけで構成できます。問い合わせ種別を Data Table で管理する場合は、候補取得をフローモジュールツール、分類結果の受け渡しと会話終了を Return to Control ツールで行います。
フローモジュールツールの指示に「会話を終了する」と記載するだけでは問い合わせフローへ制御は戻らないため、制御返却が必要な箇所では Return to Control ツールを利用しましょう。







