AI駆動のリサーチワークフローにおける共通の課題は、深さとコンテキストのトレードオフです。エージェントが複数のWebページを読むと、コンテキストウィンドウ(LLMが一度に処理できるテキスト量)が生のコンテンツで埋まります。データ分析コードを実行すると、チャート生成ロジックが戦略的推論と限られたスペースを競合します。チームは通常、手動のプロンプトチェーンや逐次処理で回避します。
より良いアプローチは、深い作業を簡潔な結果のみを返す隔離されたサブエージェントに委任することです。LangChain Deep Agentsがこのオーケストレーションを処理し、特殊な一時サブエージェントを生成してライフサイクルを管理します。Amazon Bedrock AgentCoreは各サブエージェントに必要なインフラを提供します。これには、Web研究のための実際のブラウザを搭載したMicroVMと、データ分析のための完全なPython環境が含まれます。AgentCoreはDeep Agents CLIのネイティブサンドボックスプロバイダーとしても利用可能で、deepagents --sandbox agentcoreを実行してAgentCore CodeInterpreterを試すことができます。
本記事では、このパターンをエンドツーエンドで示す競合調査リサーチエージェントを構築します。このチュートリアルは、マルチステップAIワークフローを構築し、エージェントに隔離された実行環境を必要とする開発者を対象としています。ノートブックのパート2では、AgentCore CLIを使用して同じエージェントをBedrock AgentCore Runtimeにデプロイし、マネージドでセッション分離されたサービスとして実行できます。
構築するもの
コーディネーターエージェントはリクエストを受け取り、まずAgentCore Memoryで過去の研究結果を確認します。次に、3つのブラウザサブエージェントを並列で生成し、それぞれが独自のAgentCore Browser MicroVMで異なる競合サイトをナビゲートします。3つが構造化された結果を返すと、アナリストサブエージェントが結合データを受け取り、AgentCore Code Interpreterを使用して比較チャートとMarkdownレポートを生成します。最後に、重要な洞察がAgentCore Memoryに保存され、将来のセッションで利用できます。ワークフロー全体は、Amazon CloudWatch(Amazon Bedrock AgentCore Observability経由)またはLangSmithでトレースできます。
各サブエージェントタイプは、特定のツールセットのみにアクセスします。リサーチャーはブラウザツール、アナリストはインタープリターツール、コーディネーターはメモリツールです。
エージェントの構築
このエージェントを構築するには、モデルを設定し、各サブエージェントタイプのツールキットを作成し、LangChain Deep Agentsでそれらを組み合わせます。
前提条件:Amazon Bedrock AgentCoreへのアクセスが有効なAWSアカウント、AWS認証情報の設定、Python 3.11以上、オプションのCloudWatch Transaction Search、LangSmithアカウント、AgentCore Memoryリソース、およびJupyterノートブック。
ステップ1:モデルの設定
以下のコードは、エージェントをオーケストレーションするLLMを設定します。この例では、Amazon Bedrockを通じてClaude Sonnetにアクセスします。
ステップ2:ブラウザツールキットの作成
各競合相手は独自のBrowserToolkitを持ち、それぞれのAgentCore Browser MicroVMをプロビジョニングします。これにより、並列リサーチャー間の完全な分離が実現します。ツールキットは、LLMが1ターンで複数のブラウザツールコールを発行する際の並行処理を処理します。
各MicroVMは、Playwright(オープンソースのブラウザ自動化ライブラリ)を使用してWebSocketを介して接続された実際のChromiumブラウザを実行します。セッションは一時的で、数秒で起動します。session_wait_timeoutを60秒に設定し、ブラウザ操作に十分な時間を確保します。
ステップ3:インタープリターツールキットの作成
アナリストサブエージェントはAgentCore Code Interpreterを使用します。これは、pandas、matplotlib、numpyがプリインストールされた完全なPython環境を実行する隔離されたMicroVMです。追加のライブラリは、install_packagesツールを使用して実行時にインストールできます。
ステップ4:クロスセッションメモリの追加(オプション)
コーディネーターエージェントは、AgentCore Memoryツールを介して長期メモリAPIと直接対話することで、時間とともに専門知識を蓄積できます。注意:Memoryリソースには、長期呼び出しを機能させるために少なくとも1つの抽出戦略(semanticMemoryStrategyなど)が設定されている必要があります。
ステップ5:エージェントの作成と実行
コンポーネントを組み合わせてエージェントを呼び出します。付属のノートブックには進行状況インジケーターとセッション表示があります。予想実行時間は4~6分(Claude Sonnet使用)で、逐次処理よりも最大3倍高速です。
トレースとデバッグ
AgentCore Observabilityは、Amazon CloudWatchを介してこのマルチエージェントアーキテクチャの可視性を提供します。AgentCoreはOpenTelemetry(OTEL)形式でトレースとスパンを出力するため、CloudWatch GenAI Observabilityページで完全なオーケストレーション階層を表示できます。各スパン内で、ツールコールの入力、出力、タイミング、トークン使用量を確認し、研究サブエージェントが並列実行されたことをウォールクロックタイミングで確認できます。
また、LangSmithを使用したトレーシングも可能で、3つの環境変数を設定するだけで自動トレーシングが有効になります。
このアーキテクチャが重要な理由
第一に、コーディネーターは高レベルの推論に集中でき、各研究サブエージェントは簡潔なサマリーのみを返すため、コーディネーターのコンテキストが生のページコンテンツで埋め尽くされるのを防ぎます。第二に、機能間の明確な分離により、意図しないツール使用のリスクが低減し、デバッグが容易になります。第三に、研究が高速化されます。最後に、Amazon Bedrock AgentCoreはモデルに依存せず、フレームワークにも依存しません。モデルの変更は1行のコード変更で行えます。