[Anthropic Engineering ブログ] MCP によるコード実行の実現: より効率的な AI エージェントの構築 – 非効率的な「ツール呼び出し - 待機 - 再呼び出し」パターンに頼るのではなく、AI のコーディング能力を活用してエージェントがプログラマーのように動作できるようにします。 中核的な問題 MCPは、AIエージェントを外部システムに接続するためのオープンスタンダードです。1年前のリリース以来、コミュニティは数千台のMCPサーバーを構築してきました。しかし、接続ツールの増加に伴い、2つの重要な効率性の問題が浮上しています。 1. ツール定義はコンテキストを大量に消費します。エージェントが数千ものツールに接続する場合、従来のアプローチではすべてのツール定義が一度にコンテキストウィンドウに読み込まれます。これらのツール定義は、エージェントがリクエストを処理するまでに数十万ものトークンを消費する可能性があります。 2. 中間結果の繰り返し受け渡し:エージェントがツール間でデータを渡す必要がある場合(例えば、Googleドライブから会議の議事録をダウンロードしてSalesforceレコードに添付するなど)、完全なデータはモデルを複数回通過する必要があります。2時間の会議記録にはさらに50,000トークンが消費される可能性があり、大きなドキュメントはコンテキストウィンドウの制限を超えることもあります。 解決策: コード実行 + MCP 基本的な考え方は、MCPサーバーを直接的なツール呼び出しではなく、コードAPIとして提供することです。エージェントはコードを記述することでMCPサーバーと対話します。 実装方法は、使用可能なすべてのツールのファイル ツリー構造を生成します。次に例を示します。 サーバー ├── Googleドライブ │ ├── getDocument.ts │ └── index.ts ├── セールスフォース │ ├── updateRecord.ts │ └── index.ts エージェントはファイルシステムを探索してツールを検出し、現在のタスクに必要な定義のみを読み込みます。以前は150,000トークンが必要だったシナリオが、今では2,000トークンで済むため、コストと時間を98.7%削減できます。 5つの主な利点 1. エージェントの段階的な検出により、ツール定義を一度に読み込むのではなく、必要に応じて読み込めます。また、検索機能を追加して、関連するツールのみを読み込むこともできます。 2. コンテキスト効率の高いデータ処理:データはコード実行環境内でフィルタリングおよび変換された後、モデルに返されます。10,000行のテーブルを処理する場合、エージェントはすべてのデータではなく5行のみを参照すれば済みます。 3. より堅牢な制御フローループ、条件文、エラー処理はすべて、個々のツール呼び出しを連鎖させるのではなく、使い慣れたコーディングパターンを使用して実現できます。例えば、Slack通知のポーリングは、単一のwhileループで実行できます。 4. プライバシー保護:中間結果はデフォルトで実行環境に保持され、モデルは明示的に記録または返されたコンテンツのみを参照します。機密データはモデルのコンテキストに入力することなく処理できます。MCPクライアントは個人情報を自動的にトークン化することもできます。 5. 状態の永続性とスキルの蓄積:エージェントは動作中のコードを再利用可能な関数として保存できます。効果的なコードが完成したら、将来使用するために保存できます。これはAnthropicの「スキル」の概念と密接に関連しており、エージェントが独自の高度な機能ツールキットを継続的に構築することを可能にします。 コード実行によって生じる複雑さを考慮する必要があります。エージェントによって生成されたコードを実行するには、適切なサンドボックス、リソース制限、監視を含む安全な実行環境が必要です。コード実行のメリット(トークンコストの削減、レイテンシの低減、ツールキットの改善)と実装コストを比較検討する必要があります。 この記事は重要な洞察を示しています。コンテキスト管理、ツールキットの構成、状態の永続化といった問題は一見目新しいように思えるかもしれませんが、ソフトウェアエンジニアリングにおいては既に既知の解決策が存在します。コード実行はこれらの成熟したパターンをエージェントに適用することで、使い慣れたプログラミング構造を用いてMCPサーバーとより効率的にやり取りすることを可能にします。 ブログアドレス
スレッドを読み込み中
X から元のツイートを取得し、読みやすいビューを準備しています。
通常は数秒で完了しますので、お待ちください。
![[Anthropic Engineering ブログ] MCP によるコード実行の実現: より効率的な AI エージェントの構築 – 非効率的な「ツール呼び出し - 待機 - 再呼び出し」パターンに頼るのではなく、AI のコーディング能力を](https://pbs.twimg.com/media/G4-iHO9bQAEJZyn.jpg)