効率的なプロダクショングレードのコンテキストアウェアマルチエージェントフレームワークの構築 この公式 Google ブログ投稿では、体系的な「コンテキスト エンジニアリング」を通じて複雑な AI エージェントを開発する際に情報過多によって生じるパフォーマンスのボトルネックに対処する方法について詳しく説明し、Google ADK を例にまったく新しいアーキテクチャ設計コンセプトを提案しています。 主な課題:コンテキストボトルネック インテリジェントエージェントが処理するタスク(長期的なワークフロー、詳細な調査、コードメンテナンスなど)が複雑化するにつれて、追跡する必要がある情報量は指数関数的に増加します。モデルの「コンテキストウィンドウ」を単純に拡張するだけでは長期的な解決策にはなりません。3つの大きなプレッシャーが存在します。 • コストとレイテンシ: コンテキストが長くなるほど、推論コストが高くなり、応答時間が遅くなります。 • 信号の減衰: 大量の無関係なログや古い情報により、モデルが「迷子」になり、重要な指示をキャプチャできなくなる可能性があります (途中で失われる)。 • 物理的な制限: 実際のシナリオでは、データの量 (RAG 検索結果や完全なダイアログ レコードなど) が最終的に固定のウィンドウ制限を超えてしまいます。 コアコンセプト: コンテキストは「コンパイルビュー」です この記事では、考え方の根本的な転換を提案しています。コンテキストを常に追加される文字列のバッファとして見るのではなく、基礎となる状態の「コンパイルされたビュー」として見るべきだとしています。 • ソース データ: 完全なセッション ログ、長期メモリ、およびファイル。 • コンパイラ: データのフィルタリング、並べ替え、変換を行う一連の処理手順。 • ビュー: 最終的に LLM に送信される「作業コンテキスト」。 主要なアーキテクチャ設計 A. 階層構造 ADK はコンテキスト データを 4 つのレベルに分割して、「ストレージ」と「プレゼンテーション」を分離します。 • 作業コンテキスト: オンザフライで構築され、現在の通話にのみ使用されるプロンプト。一時的なものであり、最適化されています。 • セッション: 構造化された永続的なインタラクションのログ(ユーザーメッセージ、ツール呼び出し、エラーメッセージなどを含む)。客観的な「事実」です。 • メモリ: セッション全体にわたって存在する長期的な知識 (ユーザーの好みなど)。 • アーティファクト: 大きなデータオブジェクト(PDF、CSV、長いログなど)。これらは名前/バージョンで参照されるだけで、プロンプトに直接貼り付けられることはありません。 B. 配管プロセス(フローとプロセッサ) 順序付けられた「プロセッサチェーン」を定義することで、開発者はコンテキストの生成を構成要素のように制御できます。例えば、最初に権限チェックを実行し、次にシステム命令を挿入し、最後に圧縮された履歴を挿入することができます。これにより、コンテキスト構築プロセスを観察およびテストすることが可能になります。 C. インテリジェントな関連性管理 コンテキストを「簡潔」に保つために、システムとエージェントは連携して、現時点で必要な情報が何であるかを判断します。 • オンデマンドでアーティファクトをロード:デフォルトでは、エージェントはファイル名への参照のみを参照します。コンテンツを表示する必要があることが確実な場合にのみ、ツールを呼び出してアーティファクトを一時的にロードします。このプロセスは使用後に破棄されるため、コンテキストの永続的な汚染を回避できます。 • 能動的/受動的なメモリ検索: ツールを使用して関連する長期メモリを能動的に検索するか、プリプロセッサを通じて自動的に挿入します。 • 圧縮とフィルタリング: セッション レベルでバックグラウンド タスクを自動的に実行して、古い詳細ログを要約に「圧縮」したり、ルールに従って不要なノイズを直接フィルタリングしたりします。 D. マルチエージェントコンテキスト マルチエージェント システムでは、ADK はコンテキストの爆発や錯覚を防ぐために厳密なスコープ制御を採用しています。 • オンデマンドのハンドオーバー: メインエージェントが子エージェントを呼び出すと、デフォルトではすべての履歴レコードが渡されるわけではなく、必要な指示と最小限のコンテキストのみが渡されます。 • ナラティブキャスティング:エージェントを切り替える際、システムは前のエージェントの「アシスタントメッセージ」を「ナラティブコンテキスト」(例:「[コンテキスト情報]:エージェントAが先ほど…と言った」)に変換します。これにより、新しいエージェントが前のアクションを実行したと誤って認識することを防ぎ、認知上の混乱を回避します。 この記事の中心的な主張は、製品レベルの AI エージェントの開発は「トークンのスタッキング」だけに頼ることはできず、効率的なコンテキスト ライフサイクル管理システムを確立する必要があるという点です。 コンテキストを動的にコンパイルされ、階層化され、オンデマンドでロードされるシステムとして捉えることで、開発者はスマート (十分な情報を持つ) かつ効率的 (低レイテンシ、低コスト) なインテリジェント エージェント アプリケーションを構築できます。 原文を読む
スレッドを読み込み中
X から元のツイートを取得し、読みやすいビューを準備しています。
通常は数秒で完了しますので、お待ちください。
