Amazon Bedrock AgentCore を活用したエージェント型 AI による販売戦略の強化
AWS は、複数のドメイン固有エージェントを統合し、認知負荷を軽減する「Field Advisor」を Amazon Bedrock AgentCore を活用して構築し、エンタープライズ規模での AI エージェントオーケストレーションの成功事例を示した。
キーポイント
オーケストレーションの欠如による課題
20 以上のドメイン固有エージェントが導入された結果、営業担当者がどのエージェントを使うか選択する認知負荷や、断片化された会話の管理に時間を使い、顧客対応がおろそかになる問題が発生していた。
Bedrock AgentCore の採用理由
AWS Sales チームは、マルチテナント環境での分離実行、統一ゲートウェイ、永続的メモリ、OAuth によるアイデンティティ伝播など、大規模生産向けに設計された機能を持つ Bedrock AgentCore を基盤として選定した。
Field Advisor の機能と効果
自然言語で質問すると適切なエージェントへルーティングし、文脈を維持しながら統合レスポンスを提供する「Field Advisor」により、営業担当者は顧客との対話に集中できるようになり、意思決定のスピードが向上した。
プロンプトキャッシングによるコスト削減と速度向上
最新のメッセージにローリングキャッシュポイントを設けることで、モデルが履歴全体を再処理するのではなく、キャッシュされたプレフィックスを再利用可能になります。
エージェント型 AI 戦略における効率化
Amazon Bedrock AgentCore を活用した販売戦略において、この技術は長文の会話履歴を持つアジェンシー(自律型 AI)の実行コストを削減し、応答速度を向上させます。
キャッシュポイント管理による効率化
Amazon Bedrock の制限に対応し、各ユーザーのターンでキャッシュされた接頭辞を段階的に拡張することで、会話全体を再処理する必要がなくなります。
フックシステムによる機能のカプセル化
エラー処理、権限管理、データ変更確認などの横断的機能をフックとして実装し、ツール実装から分離することで複雑なミドルウェアチェーンを回避します。
重要な引用
specialized agents deliver value, but without orchestration, users carry the cognitive load of choosing between them
representatives context-switching between systems instead of focusing on customer conversations
Field Advisor addresses the orchestration challenge by serving as a central layer that routes requests to specialized agents while maintaining a single conversational interface
"Add a rolling cache point to the latest message so the model reuses cached prefixes instead of re-processing the full history."
The result is that each new user turn extends the cached prefix incrementally rather than reprocessing the full conversation.
This hook-based approach means cross-cutting concerns like authorization and error handling are decoupled from tool implementations.
影響分析・編集コメントを表示
影響分析
この記事は、単なるツールの紹介に留まらず、大規模組織における AI エージェントの実践的な導入パターンと、オーケストレーション基盤の重要性を明確に示した点で業界に大きな影響を与える。特に、カスタムインフラの構築コストを削減しつつ、セキュリティと品質管理を担保するクラウドネイティブなアプローチは、他社企業にとって重要な参考事例となる。
編集コメント
「AI エージェントが普及しても、使い分けの負担が残る」という本質的な課題に対し、クラウドネイティブなオーケストレーション基盤で解決策を提示した実証事例として非常に価値が高い。
エージェントの採用規模が拡大するにつれ、当社を含む多くの企業で共通のパターンが見られました。専門的なエージェントは価値を提供しますが、オーケストレーション(調整)がない場合、ユーザーがそれらの中から選択するという認知的負荷を背負わなければなりません。AWS セールス組織では、グローバルに展開された 20 以上のドメイン固有のエージェントがあり、営業担当者が顧客との対話に集中するのではなく、システム間でコンテキストを切り替える必要がありました。本稿では、この課題を解決するために Amazon Bedrock AgentCore を活用して「Field Advisor」を構築した方法と、その際のアーキテクチャ上の意思決定、そして実際に得られた測定可能な結果についてご紹介します。
オーケストレーションのないエージェントの乱立による課題
AWS セールス担当者が直面した大きな課題は、AI 採用が拡大する中で生じました。顧客関係管理(CRM)業務、会議スケジュール調整、顧客インサイトの提供、製品推奨、コンプライアンスチェックなどを担当するドメイン固有のエージェントが 20 以上存在するため、各タスクに対してどのエージェントを呼び出すべきか判断する必要がありました。また、断片化された会話間でのコンテキスト管理や、異なるシステムからの出力を手動で組み合わせる作業も必要でした。このオーバーヘッドは、顧客のニーズを理解しソリューションを提供するために費やすはずだった時間を消費してしまいました。
なぜ Bedrock AgentCore か:エンタープライズ規模のオーケストレーションに最適化
AWS セールスチームが Amazon Bedrock AgentCore を選んだ理由は、スケールした生産環境におけるアジェンティック AI(自律型 AI)に必要な機能を備えているからです。
- セキュアなマルチテナント運用のための隔離された実行環境
- AWS アカウント横断でのツールおよびエージェントアクセスを統括する統一ゲートウェイ
- セッションおよび長期コンテキストのための永続的メモリ
- OAuth 連携による一貫したアイデンティティ伝播
- 複雑なリクエストフロー全体にわたる組み込みの観測機能
- 継続的な品質モニタリングのための統合評価機能
これらの機能により、カスタムインフラストラクチャの構築が不要となり、エンジニアリングチームは基盤サービスの構築ではなく、顧客成果を向上させるドメイン知能の開発に注力できるようになりました。Field Advisor は、リクエストを専門のエージェントへルーティングしつつ単一の会話インターフェースを維持することで、オーケストレーションの課題に対処します。営業担当者は自然言語で質問を行い、Field Advisor が適切なエージェントやツールへリクエストをルーティングし、複数回のやり取りにわたって会話コンテキストを維持し、機密オペレーションに対する承認を調整し、統一された回答を提供します。これにより、グローバルな販売ニーズに対してより迅速かつ情報に基づいた対応が可能となります。
Field Advisor が営業チームにもたらす機能
Field Advisor は、AWS 営業チームの 6 つの主要ワークフローに対応する内部会話型アシスタントとして機能し、それぞれが顧客対応活動に費やす時間を最大化するように設計されています:
- マルチエージェントのオーケストレーションにより、コンプライアンスチェック、製品推奨、技術分析をそれぞれ担当する専門のエージェントを特定するための認知的負荷が解消されます。営業担当者は単一の会話型インターフェースとやり取りを行う一方で、Field Advisor が裏側でリクエストをルーティングするため、システムナビゲーションではなく顧客との対話に集中できます。
- 埋め込みアクセスにより、AI の機能が営業チームが日常的に使用するツールの中に直接組み込まれます。Field Advisor は CRM システム、Slack、およびファーストパーティアプリケーション内で動作するため、ワークフローの分断を防ぎ、担当者が顧客とのやり取りに注力し続けることを可能にします。
- ヒューマン・イン・ザ・ループ(人間を介在させた)ワークフローにより、重要なビジネスアクションに対する制御を維持しつつ、定型タスクの処理を加速します。Field Advisor が CRM データを更新する必要がある場合、提案された変更を表示し、明示的な承認を得るまで変更を加えません。これにより、データの正確性が保たれ、意図しないまたは有害な変更が防止され、重要な更新に対する責任の所在を営業担当者が管理することで維持されます。
- コンテキストとメモリ機能により、情報の反復収集が不要になります。Field Advisor は AgentCore Memory を用いて、短期間のセッション履歴と長期のセマンティックメモリを組み合わせることで、顧客の好みや過去の会話内容を記憶します。営業担当者は中断した場所からすぐに再開でき、コンテキストスイッチングに費やす時間を減らし、顧客エンゲージメントにより多くの時間を割くことができます。
- ナレッジベース検索により、ワークフローから離れたり複数のシステム間で切り替えたりすることなく、製品ドキュメント、競合情報、価格ガイドライン、組織に関する洞察などの内部 AWS ナレッジベースへの即座のアクセスが可能になります。これにより、顧客からの質問に対してより正確な情報を以て迅速に回答できます。
- 先行的推奨機能は、Slack を通じたプッシュ型アラートによって会話機能を補完します。営業担当者は、顧客サービスの利用状況、ビジネスデータのトレンド、CRM の衛生状態に関するアラートなど、AI が駆動するインサイトを受け取ります。これらのインサイトにより、受動的な対応ではなく、先行的な顧客へのアプローチが可能になります。

ローンチ以来、営業担当者はすべてのモダリティを通じて12万件以上のプロンプトを提出しており、これによりAWSの営業チームは社内システムを操作する時間から解放され、顧客ニーズを理解することに時間を割けるようになりました。レコード作成と更新を担当する人間が関与するループ(human-in-the-loop)コンポーネントにより、大規模な営業担当者は週あたり最大2時間の節約となり、その時間は顧客との対話や戦略的計画に振り向けられています。Amazon Bedrock AgentCore への移行により、測定可能な改善がもたらされました:前インフラと比較してレイテンシが41%削減され、7つの別々のAWSアカウントから単一のAgentCore Runtimeへ統合され、メモリ、観測性(observability)、認証のためのカスタムビルドシステムが撤廃されました。エンジニアリングチームは現在、インフラの保守ではなく、顧客成果を直接向上させる製品機能の開発に注力しています。ユーザーの声をご紹介します:
「Bedrock AgentCore上でチームのエージェントを構築し、Field Advisor に統合したことで、認証、メモリ、会話の永続化、そしてリッチなUIコンポーネントがすべてサービス機能として提供されるようになりました。エージェントがCRM の**右側パネルに直接埋め込まれたため、チームはインフラ作業を完全に省略し、商談成立を支援するドメイン知能(domain intelligence)に集中できました—その結果、顧客に対してより迅速かつ正確な価格提示を実現しました。」
— AWS AI Builder チーム
*「Field Advisor は、会議メモのファイルから CRM タスクをワンクリック承認で作成し、システムを変更せずに顧客からのオープンな機会について質問しました。これにより、1 顧客あたり少なくとも 15 分が節約され、その時間を彼らの特定の技術要件に対応したより包括的な提案の準備に充てることができました。」*
*— AWS Solutions Architect*
*「Field Advisor は、エンタープライズ規模でのアカウント検証プロセスを改善しました。AWS セールスチームはほぼ 450 のアカウントを検証する必要がありました。過去には、この検証プロセスには広範な手作業が必要で、バッチタグ付けやアップロード後のエラー修正も必要でした。Field Advisor は検証を効率的に処理し、エラーを削減して時間を節約したため、チームはデータ整理よりも戦略的なアカウント計画と顧客エンゲージメントに注力できるようになりました。」*
*— AWS Customer Solutions Manager*
Amazon Bedrock AgentCore が提供する基盤について
世界中のセールスチームにまたがる数千名の AWS 従業員をサポートするには、複雑なマルチエージェントオーケストレーションを処理し、内部システムへの安全なアクセスを提供し、高ボリュームでの予測可能な実行を実現するソリューションが必要です。Amazon Bedrock AgentCore は、エージェント用の隔離された実行環境、ツールおよびエージェントアクセスのための統一ゲートウェイ、セッションおよび長期コンテキストのための永続的メモリ、一貫したアイデンティティ伝播、リクエストフロー全体にわたる組み込みの観測性(observability)、そして継続的な品質モニタリングのための統合評価機能を提供します。
営業担当者がサポートされているチャネル(CRM システム、Slack、またはスタンドアロンの Web ポータル)を通じて質問をすると、そのリクエストは認証サービスを経由し、身元の確認が行われた後、OAuth トークンが発行されます。AgentCore Runtime は認証済みのリクエストを受け取り、Strands Agents を用いて構築されたスーパーバイザーエージェントを初期化し、完全な実行ライフサイクルを管理します。
スーパーバイザーエージェントはクエリを分析し、どのように処理するかを決定します。CRM 検索やナレッジベースの取得にはローカルツールを呼び出し、MCP を通じて統合されたシステムに対してはリモート MCP ツールを呼び出すか、または別の AgentCore Runtime で実行される専門ドメインエージェントに委任することができます。AgentCore Identity は認証済みの身元情報を、すべての下流のツールおよびエージェントへ伝播させます。結果は統合されたレスポンスとして合成され、AgentCore Runtime のネイティブストリーミングサポートを通じてストリーム形式で返されます。

主要なアーキテクチャコンポーネント
本アーキテクチャでは、Field Advisor の機能を発揮するために連携して動作する複数の Amazon Bedrock AgentCore オファリングが使用されています:
- AgentCore Runtime は、安全で隔離された MicroVM 環境内でスーパーバイザーエージェントをホストします。各ユーザーセッションは独自の実行コンテキストで動作します。ランタイムはモデルアクセス、ガードレール(安全性制御)、およびユーザーへのストリーミング応答を含むエージェントライフサイクルを管理します。
- Strands Agents は、ランタイム内の推論ループを支えます。これはオーケストレーションサイクルを処理し、モデルからの応答の受信、ツール呼び出しのディスパッチ(可能であれば並列実行)、会話コンテキストの管理、マルチエージェントフローの調整を行います。Strands Agents の拡張可能なフックシステムにより、コアとなる推論ループを変更せずに、エラーハンドリング、権限チェック、応答処理などのエージェント動作をカスタマイズできます。
- AgentCore Memory は、短期間の会話履歴と長期のユーザーコンテキストの両方を保存します。実装では、書き込みパターンを最適化するために Strands Agents の AgentCoreMemorySessionManager を拡張した独自セッションマネージャーを使用しています。各メッセージごとに状態を同期するのではなく、各呼び出し完了後に同期するため、耐久性を損なうことなく API 呼び出し数を削減できます。
- AgentCore Identity は、ソリューション全体にわたるアイデンティティの伝播を処理します。営業担当者は OAuth を使用して一度だけ認証し、トークンはシステム全体で伝播されます。異なるアカウント間でのエージェント呼び出しについては、AgentCore Identity のリソース資格情報プロバイダーを介したマシンツーマシントークン交換による OAuth サポートを提供しています。
- AgentCore Gateway は、リモート MCP ツールへの集中型アクセスポイントを提供します。各 MCP サーバーへの個別接続を管理するのではなく、ツールは認証と可用性を処理する単一の Gateway インスタンスに登録されます。起動時にスーパーバイザーは Gateway からツールの定義を取得し、対応するローカルの Strands ツールを作成するため、ランタイムデプロイメントを変更することなく新しい MCP ツールを導入できます。
- AgentCore Observability は、すべての実行に対してトレース、ログ、メトリクスをキャプチャします。Strands は OpenTelemetry とネイティブに統合されており、マルチエージェントおよびマルチツールフロー全体で分散トレーシングを提供します。これは、単一のユーザー質問が並列して複数のリモートエージェントや MCP ツールに展開される場合のデバッグにおいて極めて重要です。
- AgentCore Evaluations は、本番環境におけるエージェント動作の継続的な品質モニタリングをサポートします。AWS は、AgentCore Observability トレースを通じてキャプチャされた評価データを使用して、回答の関連性、コンテキストの精度、アクションの正しさ、忠実度を測定しています。これにより、回帰現象を特定し、時間経過とともにオーケストレーションの品質を改善するためのフィードバックループが提供されます。
コアアーキテクチャ機能
Field Advisor のアーキテクチャは、前述の AgentCore コンポーネントを基盤とし、相互に連携して信頼性が高く、安全でスケーラブルなマルチエージェントオーケストレーションを実現する一連の機能として構築されています。以下のセクションでは、チームがそれぞれの機能をどのように実装したかについて解説します。
オーケストレーションとモデル設定
スーパーバイザーエージェントは、システムプロンプト、ツールセット、セッションマネージャー、会話マネージャー、およびモデルプロバイダーを初期化パラメータとして受け取る Strands Agent です。この実装では、Amazon Bedrock で利用可能な最新の Anthropic Claude モデルを基盤モデル(FM)として採用し、より高いスループットを実現するために Amazon Bedrock のクロスリージョン推論プロファイルを通じてアクセスしています。
多ターン会話におけるレイテンシを削減するため、チームは Strands の BedrockModel を拡張した独自のカスタム PromptCachingBedrockModel を構築し、インクリメンタルな プロンプトキャッシング 機能を追加しました。各モデル呼び出しの前には、実装が会話履歴から以前のキャッシュポイントをすべて削除し、最新メッセージに新しいキャッシュポイントを追加します。これにより、直近のターンまでのすべての内容がキャッシュされ、モデルは各ターンで新規コンテンツのみを処理することになります。
CACHE_POINT = {"cachePoint": {"type": "default", "ttl": "1h"}}
class PromptCachingBedrockModel(BedrockModel):
"""最新メッセージにローリングキャッシュポイントを付与し、モデルが完全な履歴を再処理するのではなく、キャッシュされたプレフィックスを再利用できるようにします。"""
def _format_request(self, messages, **kwargs):
# Remove stale cache points from older messages
for msg in messages:
msg["content"] = [
b for b in msg["content"] if "cachePoint" not in b
]
# Add a cache point to the latest message
messages[-1]["content"].append(CACHE_POINT)
return super()._format_request(messages=messages, **kwargs)
Amazon Bedrock では、リクエストあたりのキャッシュポイント数に制限があり、かつツール、システムプロンプト、メッセージの順で非減少する TTL(Time To Live: 有効期限)値が要求されるため、実装ではキャッシュポイントの配置を慎重に管理しています。その結果、新しいユーザーのターンごとに、会話全体を再処理するのではなく、キャッシュされた接頭辞が段階的に拡張されます。
Strands Agents の hook システムは、コアの推論ループを変更せずにエージェントの動作をカスタマイズする上で中心的な役割を果たします。エラー時のサーキットブレーカーのためにフックが登録されており、1 つの呼び出し内で繰り返し失敗したツールを自動的にスキップします。条件付き認証は、機密 CRM データにアクセスするツール呼び出しをインターセプトし、Strands Interrupts を使用して実行を一時停止し、ユーザーの同意を求めた後、承認された場合にのみ処理を続行します。データを改変するツールに対する書き込み確認では、提案された変更内容を表示し、実行前に明示的な承認を要求します。引用抽出は、ナレッジベースからの検索結果を処理してソース参照を抽出し、最終レスポンスに付加します。ツール呼び出しのストリーミングでは、ツールの呼び出しステータスをフロントエンドへストリーム配信し、エージェントが動作している間、ユーザーはリアルタイムの進行状況を確認できます。
このフックベースのアプローチにより、認証やエラー処理といった横断的な関心事は、ツールの実装から切り離されます。リモートエージェントを所有するチームは、サーキットブレーカーやストリーミングを実装する必要がありません。スーパーバイザーが一貫して対応します。同様のシステムを設計するビルダーにとって、フックはミドルウェアチェーンやデコレータスタックの複雑さを回避できる自然な拡張ポイントです。
マルチエージェント調整
Field Advisor は、スーパーバイザーとサブエージェントのパターンに従います。スーパーバイザーエージェントが主要なオーケストレーターとして機能し、コンプライアンス、製品推奨、会議スケジュール設定などに関する専門的なドメインエージェントがツールとして統合されています。各リモートエージェントは、名前、説明、および単一のクエリパラメータを用いて定義されます。スーパーバイザーが特定の質問をドメインエージェントで処理すべきと判断した場合、対応するツールを呼び出します。ラッパーは、ペイロードの構築、OAuth による認証、リモートの AgentCore Runtime へのリクエスト送信、およびレスポンスのストリーミングという完全な呼び出しライフサイクルを処理します。
def create_remote_agent_tool(config: RemoteAgentConfig) -> AgentTool:
"""Remote agent をラップする Strands ツールを作成する。"""
async def remote_agent_tool(query: str, tool_context: ToolContext):
invoker = RemoteAgentInvoker(config)
params = InvocationParams(
query=query, session_id=session_id, alias=alias, ...
)
async for event in invoker.stream(params):
if is_final_response(event):
payload = parse_response_payload(event)
# リモートエージェントからの割り込みを表面化
if payload.interrupts:
tool_context.interrupt(payload.interrupts)
yield payload.response
else:
yield event # ツール呼び出しの進行状況を UI にストリーミング必ず JSON 形式で返してください。translation フィールドのみ。他のフィールド (technical_terms 等) は一切追加しないこと — 余計なフィールドを書こうとして本文翻訳がトークン上限で打ち切られる事故を防ぐため:
{"translation": "翻訳全文"}
return tool(context=True)(remote_agent_tool)
スーパーバイザーはフラットなツールカタログを参照し、Strands の推論ループがその後の処理を担当します。つまり、新しいエージェントを追加する場合は設定エントリのみを追加すればよく、オーケストレーションロジックの変更は不要です。Field Advisor はまた、販売担当者が明示的に特定のエージェントを選択してリクエストを処理させるパススルーモードもサポートしています。このモードでは、リクエストはスーパーバイザーを迂回し、実行環境がクエリを直接対象の遠隔エージェントに転送し、その応答をストリーミングして返します。これにより、サブエージェントの書式や引用情報が保持されます。ユーザーは同じ会話内でスーパーバイザーモードとパススルーモードを切り替えることができます。
Human-in-the-loop workflows
実装では、Strands Agents のネイティブ機能である Interrupt(中断)を利用し、明示的なユーザー確認が必要なワークフローをサポートしています。ツールまたは遠隔エージェントがユーザーの入力を必要とする場合(例えば、CRM レコードを照会する前にデータアクセス契約への同意を確認するなど)、実行は一時停止され、その中断状態がクライアントに返されます。ユーザーは Slack または CRM インターフェースを通じて応答し、エージェントはその入力を受け取って処理を再開します。
このパターンはエージェントの境界を越えて動作するように拡張されました。リモートエージェントがレスポンスペイロード内で割り込みを返した場合、ローカルのツールラッパーがそれを検知し、リモートエージェントに代わって Strands Interrupt を発生させます。これにより、ソリューション内の各エージェントは実行場所に関係なくユーザー入力を要求でき、ユーザーは単一の整合性のあるインターフェースを通じて対話できます。この設計は、メッセージキューとポーリングを備えた別の人間ループサービスを構築するよりも意図的な選択でした。Strands Interrupt はセッションマネージャー内で状態を永続化するため、このパターンは純粋にコードベースであり、追加のインフラストラクチャコンポーネントは不要です。重要な洞察は、ローカルのツールラッパーが橋渡し役として機能することです。リモートエージェントの割り込みレスポンスをネイティブな Strands Interrupt に変換することで、フレームワークがすべての一時停止/再開メカニクスを処理します。
メモリとコンテキスト管理
AgentCore Memory p
原文を表示
As agent adoption scaled, we saw a common pattern emerge across enterprises, including our own sales organization: specialized agents deliver value, but without orchestration, users carry the cognitive load of choosing between them. At AWS Sales, this meant more than 20 domain-specific agents deployed across the global organization, with representatives context-switching between systems instead of focusing on customer conversations. In this post, we show you how we built Field Advisor on Amazon Bedrock AgentCore to solve this, the architecture decisions we made, and the measurable results that we’ve seen.
The challenge: Agent proliferation without orchestration
AWS sales representatives faced a significant challenge as AWS scaled AI adoption. With more than 20 domain-specific agents handling customer relationship management (CRM) operations, meeting scheduling, customer insights, product recommendations, and compliance checks, representatives needed to know which agent to invoke for each task. They also had to manage context across fragmented conversations and manually combine outputs from different systems. This overhead consumed time that could be spent understanding customer needs and delivering solutions.
Why Bedrock AgentCore: Built for enterprise-scale orchestration
The AWS Sales team chose Amazon Bedrock AgentCore because it provides the capabilities required for production agentic AI at scale:
- Isolated execution environments for secure multi-tenant operations
- Unified gateway for tool and agent access across AWS accounts
- Persistent memory for session and long-term context
- Consistent identity propagation with OAuth integration
- Built-in observability across complex request flows
- Integrated evaluation for continuous quality monitoring.
These capabilities removed the need for custom infrastructure, so that the engineering team could focus on domain intelligence that improves customer outcomes rather than building foundational services. Field Advisor addresses the orchestration challenge by serving as a central layer that routes requests to specialized agents while maintaining a single conversational interface. Sales reps ask questions in natural language, and Field Advisor routes requests to the right agent or tool, maintains conversation context across multiple interactions, coordinates approvals for sensitive operations, and delivers unified responses. This ultimately enables faster, more informed responses to global sales needs.
What Field Advisor enables for sales teams
Field Advisor serves as an internal conversational assistant that addresses six key workflows for AWS sales teams, each designed to maximize time spent on customer-facing activities:
- Multi-agent orchestration removes the cognitive overhead of knowing which specialized agent handles compliance checks, product recommendations, or technical analysis. Sales reps interact with a single conversational interface while Field Advisor routes requests behind the scenes, so that they can focus on customer conversations rather than system navigation.
- Embedded access brings AI capabilities directly into the tools sales teams use daily. Field Advisor works inside CRM systems, Slack, and first-party applications, which removes workflow disruption and keeps reps focused on customer interactions.
- Human-in-the-loop workflows maintain control over critical business actions while accelerating routine tasks. When Field Advisor needs to update CRM data, it presents proposed changes and waits for explicit approval before making modifications. This helps maintain data accuracy, prevents unintended or harmful changes, and maintains accountability by keeping Sales reps in control of critical updates.
- Context and memory eliminate repetitive information gathering. Field Advisor remembers preferences and prior conversations using AgentCore Memory, which combines short-term session history with long-term semantic memory. Sales reps can pick up where they left off, spending less time on context-switching and more time on customer engagement.
- Knowledge base retrieval provides instant access to internal AWS knowledge bases for product documentation, competitive intelligence, pricing guidelines, and organizational insights without leaving the workflow or switching between multiple systems. This means customer questions get answered faster with more accurate information.
- Proactive recommendations complement conversational capabilities with push-based alerts through Slack. Sales reps receive AI-driven insights about customer service usage, business data trends, and CRM hygiene alerts. These insights enable proactive customer outreach rather than reactive responses.

Since launch, sales reps have submitted more than 120K prompts across all modalities, interactions that relieve the AWS Sales team to spend more time understanding customer needs rather than navigating internal systems. The human-in-the-loop component, which handles record creation and updates, saves large-scale sales representatives up to 2 hours per week, time redirected to customer conversations and strategic planning. The migration to Amazon Bedrock AgentCore delivered measurable improvements: 41 percent reduction in latency compared to the previous infrastructure, consolidation from seven separate AWS accounts to a single AgentCore Runtime, and the removal of custom-built systems for memory, observability, and authentication. The engineering team now focuses on product features that directly improve customer outcomes rather than infrastructure maintenance. Here’s what users say:
“Building the team’s Agent on Bedrock AgentCore and integrating it into Field Advisor meant authentication, memory, conversation persistence, and rich UI components were all service capabilities rather than custom builds. With the agent embedded directly in CRM as a right-side panel, the team skipped infrastructure work entirely and focused on the domain intelligence that helps sellers close deals—ultimately delivering faster, more accurate pricing to customers.”
— AWS AI Builder team
“Field Advisor created CRM tasks from a meeting notes file with one-click approvals, then I asked about open opportunities from my customer without changing systems. This saved me at least 15 minutes for one single customer—time I spent preparing a more comprehensive proposal that addressed their specific technical requirements.”
— AWS Solutions Architect
“Field Advisor improved the account validation process at enterprise scale. The AWS Sales team needed to review nearly 450 accounts. In the past, this validation process involved extensive manual work and required correction of errors after bulk tagging or uploading. Field Advisor handled the validation efficiently, reducing errors and saving time, allowing the team to focus on strategic account planning and customer engagement rather than data cleanup.”
— AWS Customer Solutions Manager
How Amazon Bedrock AgentCore provides the foundation
Supporting thousands of AWS personnel across global sales teams demands a solution that handles complex multi-agent orchestration, secure access to internal systems, and predictable execution at high volume. Amazon Bedrock AgentCore provides an isolated execution environment for agents, a unified gateway for tool and agent access, persistent memory for session and long-term context, consistent identity propagation, built-in observability across request flows, and integrated evaluation for continuous quality monitoring.
When a sales rep asks a question through the supported channels (CRM system, Slack, or standalone web portal), the request passes through an authentication service that verifies identity and issues an OAuth token. AgentCore Runtime receives the authenticated request, initializes a supervisor agent built with the Strands Agents, and manages the full execution lifecycle.
The supervisor agent analyzes the query and determines how to handle it. It can invoke local tools for CRM lookups and knowledge base retrieval, call remote MCP tools for systems integrated through MCP, or delegate to specialized domain agents running in separate AgentCore Runtimes. AgentCore Identity propagates the authenticated identity to every downstream tool and agent. Results are synthesized into a unified response streamed back through AgentCore Runtime’s native streaming support.

Key architecture components
The architecture uses several Amazon Bedrock AgentCore offerings that work together to deliver Field Advisor’s capabilities:
- AgentCore Runtime hosts the supervisor agent in a secure, isolated MicroVM environment. Each user session runs in its own execution context. The runtime manages model access, guardrails, and the agent lifecycle, including streaming responses back to users.
- Strands Agents powers the reasoning loop inside the runtime. It handles the orchestration cycle: receiving model responses, dispatching tool calls (in parallel when possible), managing conversation context, and coordinating multi-agent flows. The extensible hook system in Strands Agents allows customization of agent behavior such as error handling, authorization checks, and response processing without modifying the core reasoning loop.
- AgentCore Memory stores both short-term conversation history and long-term user context. The implementation uses a custom session manager that extends the Strands Agents AgentCoreMemorySessionManager to optimize write patterns. It syncs state after each invocation rather than after every message, which reduces API calls without sacrificing durability.
- AgentCore Identity handles identity propagation across the solution. Sales reps authenticate once using OAuth, and the token propagates through the system. For cross-account agent invocations, the system supports OAuth through machine-to-machine token exchange through AgentCore Identity’s resource credential provider.
- AgentCore Gateway provides a centralized access point for remote MCP tools. Rather than managing individual connections to each MCP server, tools are registered with a single Gateway instance that handles authentication and availability. On startup, the supervisor fetches tool definitions from the Gateway and creates corresponding local Strands tools, so new MCP tools can be onboarded without changes to the runtime deployment.
- AgentCore Observability captures traces, logs, and metrics for every execution. Strands integrates natively with OpenTelemetry, which provides distributed tracing across multi-agent and multi-tool flows. This is critical for debugging when a single user question can fan out to several remote agents and MCP tools in parallel.
- AgentCore Evaluations supports continuous quality monitoring of agent behavior in production. AWS uses evaluation data captured through AgentCore Observability traces to measure answer relevance, context precision, action correctness, and faithfulness. This provides a feedback loop that helps identify regressions and improve orchestration quality over time.
Core architectural capabilities
Field Advisor’s architecture is built on the AgentCore components described earlier as a set of interlocking capabilities that work together to deliver reliable, secure and scalable multi-agent orchestration. The following sections walk through how the team implemented each one.
Orchestration and model configuration
The supervisor agent is a Strands Agent initialized with a system prompt, a set of tools, a session manager, a conversation manager, and a model provider. The implementation uses the latest Anthropic Claude model available on Amazon Bedrock as the foundation model (FM), accessed through the Amazon Bedrock cross-Region inference profile for higher throughput.
To reduce latency on multi-turn conversations, the team built a custom PromptCachingBedrockModel that extends Strands’ BedrockModel to add incremental prompt caching. Before each model call, the implementation removes any previous cache points from the conversation history and adds a fresh one to the latest message. This way, everything up to the most recent turn is cached, and the model only processes new content on each turn.
CACHE_POINT = {"cachePoint": {"type": "default", "ttl": "1h"}}
class PromptCachingBedrockModel(BedrockModel):
"""Add a rolling cache point to the latest message so the model reuses
cached prefixes instead of re-processing the full history."""
def _format_request(self, messages, **kwargs):
# Remove stale cache points from older messages
for msg in messages:
msg["content"] = [
b for b in msg["content"] if "cachePoint" not in b
]
# Add a cache point to the latest message
messages[-1]["content"].append(CACHE_POINT)
return super()._format_request(messages=messages, **kwargs)Because Amazon Bedrock limits the number of cache points per request and requires non-decreasing TTL values across the request (tools, system prompt, then messages), the implementation manages cache point placement carefully. The result is that each new user turn extends the cached prefix incrementally rather than reprocessing the full conversation.
The Strands Agents hooksystem is central to how agent behavior is customized without modifying the core reasoning loop. Hooks are registered for error circuit breaking, which automatically skips tools that fail repeatedly within a single invocation. Contingent authorization intercepts tool calls that access sensitive CRM data, pauses execution using Strands Interrupts to request user consent, and only proceeds after approval. Write confirmation for tools that mutate data presents the proposed changes and requires explicit approval before execution. Citation extraction processes knowledge base retrieval results to extract source references and attach them to the final response. Tool call streaming streams tool invocation status to the front end so users see real-time progress as the agent works.
This hook-based approach means cross-cutting concerns like authorization and error handling are decoupled from tool implementations. Teams that own remote agents don’t need to implement circuit breaking or streaming. The supervisor handles it uniformly. For builders designing similar systems, hooks are a natural extension point that avoids the complexity of middleware chains or decorator stacks.
Multi-agent coordination
Field Advisor follows a supervisor-subagent pattern. The supervisor agent acts as the primary orchestrator, and specialized domain agents for compliance, product recommendations, meeting scheduling, and more are integrated as tools. Each remote agent is defined with a name, description, and a single query parameter. When the supervisor determines a question should be handled by a domain agent, it invokes the corresponding tool. The wrapper handles the full invocation lifecycle: constructing the payload, authenticating through OAuth, sending the request to the remote AgentCore Runtime, and streaming back the response.
def create_remote_agent_tool(config: RemoteAgentConfig) -> AgentTool:
"""Create a Strands tool that wraps a remote agent."""
async def remote_agent_tool(query: str, tool_context: ToolContext):
invoker = RemoteAgentInvoker(config)
params = InvocationParams(
query=query, session_id=session_id, alias=alias, ...
)
async for event in invoker.stream(params):
if is_final_response(event):
payload = parse_response_payload(event)
# Surface any interrupts from the remote agent
if payload.interrupts:
tool_context.interrupt(payload.interrupts)
yield payload.response
else:
yield event # stream tool-call progress to the UI
return tool(context=True)(remote_agent_tool)The supervisor sees a flat tool catalog and the Strands reasoning loop handles the rest. This means adding a new agent requires only a configuration entry—no changes to the orchestration logic.Field Advisor also supports a pass-through mode, where sales reps explicitly select a specific agent to handle their request. In this mode, the request bypasses the supervisor entirely. The runtime forwards the query directly to the target remote agent and streams its response back, preserving the sub-agent’s formatting and citations. Users can switch between the supervisor and pass-through mode within the same conversation.
Human-in-the-loop workflows
The implementation uses the native Interruptfeature in Strands Agents to support workflows that require explicit user confirmation. When a tool or remote agent needs user input (for example, acknowledging a data access agreement before querying CRM records), execution pauses and the interrupt is returned to the client. The user responds through Slack or the CRM interface, and the agent resumes with their input.
This pattern was extended to work across agent boundaries. When a remote agent returns an interrupt in its response payload, the local tool wrapper detects it and raises a Strands Interrupt on behalf of the remote agent. This means each agent in the solution can request user input, regardless of where it runs, and users interact through a single consistent interface. This design was a deliberate choice over building a separate human-in-the-loop service with message queues and polling. Because Strands Interrupts persist state in the session manager, the pattern is purely code-based—no additional infrastructure components are needed. The key insight is that the local tool wrapper acts as a bridge: it translates the remote agent’s interrupt response into a native Strands Interrupt, so the framework handles all the pause/resume mechanics.
Memory and context management
AgentCore Memory p
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み