MCPによるコード実行:より効率的なAIエージェントの構築

Anthropicは、AIエージェントがModel Context Protocol (MCP) と対話する方法を、直接的なツール呼び出しからコード実行へと移行させる提案を行いました。MCPサーバーをコードAPIとして提示することで、エージェントは必要なツール定義のみをロードし、実行環境内でデータを処理できるようになり、トークンオーバーヘッドとレイテンシを大幅に削減できます。

MCPエージェントにおけるトークン消費の削減

AIエージェントが複数のMCPサーバーにわたって数百から数千のツールを使用するようにスケールするにつれ、トークン使用に関して2つの主な非効率性が生じます。

1. ツール定義の過負荷

標準的なMCPクライアントは、通常、すべてのツール定義を事前にモデルのコンテキストウィンドウにロードします。エージェントが数千のツールに接続されている場合、モデルはユーザーのリクエストに対応し始める前に、数十万トークンを処理しなければならず、これがコストとレスポンス時間の両方を増大させます。

2. 中間結果の肥大化

従来のツール呼び出しループでは、すべての中間結果がモデルのコンテキストを通過しなければなりません。例えば、エージェントがGoogle Driveから大きな会議の議事録をダウンロードしてSalesforceにアップロードする場合、その議事録の全文が最初の呼び出し時にコンテキストウィンドウにロードされ、2回目の呼び出し時に再びコンテキストに書き戻されます。大きなドキュメントの場合、これは数万トークンを消費し、コンテキストウィンドウの制限を超えてワークフローの失敗やデータのコピーエラーを引き起こす可能性があります。

MCPによるコード実行の実装

直接的なツール呼び出しの代わりに、エージェントはコードを書くことでMCPサーバーと対話できます。一つの実装方法は、各MCPサーバーとその関連ツールがファイル(例:./servers/google-drive/getDocument.ts)として表されるファイルシステムツリーを生成することです。

このアーキテクチャでは、エージェントはファイルシステムを探索することでツールを発見します。つまり、ディレクトリをリストしてサーバーを見つけ、特定のファイルを読み取ってツールのインターフェースを理解します。この「段階的な開示(progressive disclosure)」アプローチにより、エージェントは特定のタスクに必要な定義のみをロードすることが可能になります。Anthropicは、これによりトークン使用量を150,000トークンから2,000トークンに削減でき、時間とコストにおいて98.7%の節約を実現できると述べています。

コード実行アプローチの主な利点

コンテキスト効率の高いデータ処理

コード実行により、エージェントは結果をモデルに返す前に、実行環境内でデータをフィルタリング、変換、集約することができます。例えば、10,000行の表計算シートをコンテキストウィンドウにロードして手動でフィルタリングする代わりに、エージェントは「pending」状態の注文をフィルタリングするスクリプトを書き、確認用に最初の5行だけをログに記録することで、処理されるトークン数を劇的に的に削減できます。

高度な制御フロー

標準的なプログラミング構文(ループ、条件分岐、エラーハンドリング)を使用することで、エージェントは単一のステップで複雑なロジックを実行できます。これは、エージェントのループを通じて個々のツール呼び出しを連鎖させるよりも効率的です。さらに、実行環境内で条件分岐ツリーを実行することで、「最初のトークンの生成時間(time to first token)」のレイテンシが減少します。これは、モデルがすべてのif文を逐次的に評価する必要がないためです。

プライバシーとセキュリティ

中間結果はデフォルトで実行環境内に留まります。つまり、モデルが閲覧する必要のない機密データは、コンテキストウィンドウに入力されることはありません。さらに、MCPクライアントは、モデルに到達する前にPII(個人識別情報)を自動的にトークン化(tokenize)し、データが別のMCPツール呼び出しに渡されるときにのみデトークン化(untokenize)するように設定できます。これにより、機密データがソースから送信先へ、モデルが生のPIIを処理することなく流れることが保証されます。

状態の永続化と再利用可能なスキル

ファイルシステムへのアクセスを可能にすることで、エージェントは中間結果をファイルに書き込むことで、操作を間の通して状態を維持できます。エージェントは、自身の成功した実装を「skills」フォルダ内の再利用可能な関数として永続化することも可能です。SKILL.mdファイルと組み合わせることで、これらの関数はモデルが専門的なタスクのために参照できる構造化されたスキルとなり、エージェントが時間の経過とともに、より高レベルな能力を備えた独自のツールボックスを構築・進化させることができるようになります。

運用上の考慮事項

コード実行は大きな効率化をもたらしますが、インフラストラクチャの複雑さも導入します。エージェントが生成したコードを実行するには、サンドボックス化、リソース制限、およびモニタリングを備えた安全な実行環境が必要です。セキュリティリスクを軽減するために、これらの運用上のオーバーヘッドは、削減されたトークンコストと低いレイテンシという利点と天秤にかける必要があります。

Sources

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch