Engineering · アーキテクチャ
プログラマティック・ツール呼び出し — ラウンドトリップを脱してエージェントパイプラインを軽くする
プログラマティック・ツール呼び出しとは、モデルがPythonスクリプトを生成してツールを束ね、中間結果をコンテキスト外で処理してから最終結果だけを返す設計。多ツールのパイプラインで入力トークンを大幅に削減します。
要点
- ✓ラウンドトリップ型は、ツールを1つ呼び出すたびに結果がモデルのコンテキストに積み上がる。ツールが多いほどコストが増える構造的な問題。
- ✓プログラマティック型は、モデルがPythonスクリプトを生成してコンテキスト外のコンテナで複数ツールを処理し、最終結果だけをコンテキストに戻す(Anthropic Engineering Blog、2025年11月)。
- ✓75ツール構成のプロジェクト管理エージェントで入力トークン約38%削減・タスク精度変化なし(Anthropic公式ドキュメント記載の計測値)。
- ✓1〜2回の逐次呼び出しには向かない(コスト約8%増)。分岐・集計・並列処理が複数あるパイプラインで最も効果が出る(Anthropic公式ドキュメント計測値)。
- ✓Tool Search(オンデマンド発見)と組み合わせると、定義の事前ロードと実行コストの両方を削減できる。
ラウンドトリップの構造問題 — なぜコストが積み上がるのか
エージェントが複数のツールを使う処理は、従来「ラウンドトリップ型」で実現されています。モデルがツールA呼び出しを指示し、結果がコンテキストに戻り、次にツールBを呼び出し、その結果もコンテキストに追加され……という往復を繰り返す形です。
この設計の問題は、ツールが増えるほどコンテキストが肥大することです。各ターンで取得した結果がそのままコンテキストウィンドウに残るため、7ツールや15ツールを組み合わせるパイプラインでは、最終応答が得られる前にコンテキストの大部分がツール結果で埋まっています。コストと遅延はツール数に比例して増える構造です。
(B)一般論として、多段階のツール呼び出しをもつエージェントアーキテクチャはこの問題に共通して直面します。シングルターン・RAGのようにコンテキストが1回で完結する処理では表面化しませんが、計画→調査→集計→報告という流れが連鎖するワークフローほど、ラウンドトリップのコストが顕在化します。
中間処理をコンテキスト外に逃すと、モデルへの入力が格段に減る
プログラマティック型の仕組み
Anthropicエンジニアリングブログ(2025年11月)と公式ドキュメントが示す「プログラマティック・ツール呼び出し」は、この問題を設計の変更で解消します。
仕組みの核心は「スクリプトが仲介する」点にあります。モデルが各ツールを直接呼び出す代わりに、まずPythonのオーケストレーションスクリプトを生成します。そのスクリプトがコード実行コンテナの中で動き、複数のツールを呼び出し、中間結果を絞り込み・集計してから最終結果だけをモデルのコンテキストに戻します。
ポイントは、中間のツール結果がモデルのコンテキストウィンドウに入らない点です。スクリプトが途中の処理をコンテキスト外で完結させるため、モデルが受け取るのは「何を取得したか・何をしたか」の中間ログではなく、必要な最終値だけです。これが入力トークンを削減する理由です。
効くケース・逆効果なケース
Anthropic公式ドキュメントが示す計測値は、どんな処理で効果が出てどんな処理で逆効果かを明確にしています(いずれもAnthropicが公開したベンチマーク結果であり、agens の実績値ではありません)。
- 効くケース(複数ツール・集計・並列): 75ツール構成のプロジェクト管理エージェントで入力トークン約38%削減・タスク精度変化なし。本番APIトラフィック(10〜49ツール定義)での代表的な削減幅は20〜40%。BrowseCompおよびDeepSearchQAでベンチマーク性能+11%・入力トークン24%削減。
- 逆効果なケース(逐次・1〜2呼び出し): τ²-bench(航空・小売・通信の逐次1〜2呼び出し)ではスコア変化なし、コストが約8%増加。スクリプト生成のオーバーヘッドがシンプルな処理では帳消しになるため、1〜2回の単純な呼び出しチェーンには向かない。
判断基準は「ツール呼び出しの深さと中間処理の量」です。複数ツールを組み合わせる・中間データを絞り込む・並列で走らせるパイプラインほど恩恵が大きくなります。
agens での位置づけ
(B)一般設計の原理として、プログラマティック型はラウンドトリップ型より多ツール処理に向いています。agens は Anthropic モデルプラットフォーム上で動作するため、このアーキテクチャを活用できる環境にあります。(A)スキル・ワークフロー機能では複数ツールの組み合わせをノーコードで構成でき、パイプライン設計の際にこの設計原理が実地に活きます。詳細は /agens/skills-workflows をご覧ください。
Tool Search との組み合わせ — 発見と実行の両方を効率化する
プログラマティック型の「実行の効率化」は、ツール発見の課題(tool-scaling)と補完関係にあります。
(B)ツール発見の問題: 多数のツール定義を事前にコンテキストへ全ロードすると、何かを実行する前から数万トークンを消費します。Anthropicの例では典型的なマルチサーバー構成(GitHub・Slack・Sentry・Grafana・Splunk)で約5万5,000トークン。Tool Searchによるオンデマンド発見はこれを85%以上削減します(Anthropic公式ドキュメント)。
そしてプログラマティック型は「実行フェーズ」のコストを削減します。必要なツールを見つけた後、それをどう動かすかが次の問いです。
2つを組み合わせると、「定義のロード前」と「実行中」の両フェーズでトークンを大幅に削減できます。複雑なエージェントパイプラインの設計では、この2つをセットで考えることが効率の面で重要です。
よくある質問
ラウンドトリップ型とプログラマティック型はどう使い分けますか?
並列ツール実行はどう実現しますか?
Tool Search とプログラマティック・ツール呼び出しは別の機能ですか?
38%のトークン削減は保証されますか?
最終更新: 2026-07
