Claude Developer Platform Advanced Tool Use

Anthropicは、Claude Developer Platform向けに、Tool Search Tool、Programmatic Tool Calling、およびTool Use Examplesという3つの新機能をリリースしました。これらは、AIエージェントがモデルのコンテキストウィンドウを使い果たすことなく、膨大なツールライブラリや複雑なデータセットを操作できるように設計されています。これらのアップデートにより、ツールの使用は単純な関数呼び出しからインテリジェントなオーケストレーションへと移行し、トークンオーバーヘッドを削減し、実行精度を向上させます。

Tool Search Tool: On-Demand Tool Discovery

Tool Search Toolは、すべての定義を事前にロードするのではなく、オンデマンドでツールを発見することで、コンテキストの消費を削減します。 Model Context Protocol (MCP) サーバーが多数存在する環境では、会話が始まる前にツールの定義が100Kトークン以上を消費することがあり、「コンテキストの肥大化」やツール選択のエラー増加を招く可能性があります。

Technical Implementation

開発者は、ツールを defer_loading: true とマークすることで、初期コンテキストから除外できます。Claudeには、Tool Search Tool自体(および defer_loading: false とマークされた重要なツール)が提供されます。特定の機能が必要になったとき、Claudeは検索ツールを使用して関連するリファレンスを見つけ、それらはコンテキスト内で完全な定義へと展開されます。

Performance Gains

  • Token Reduction: 50以上のMCPツールを用いたテストケースでは、コンテキスト消費が約77Kトークンから約8.7Kトークンへと、85%削減されました。
  • Accuracy Improvements: 内部のMCP評価では、大幅な向上が見られました。Opus 4は49%から74%に、Opus 4.5は79.5%から88.1%に向上しました。
  • Caching: 遅延ロードされるツールは初期プロンプトから除外されるため、システムプロンプトとコアツールの定義はプロンプトキャッシュと互換性を保つことができます。

Programmatic Tool Calling: Code-Based Orchestration

Programmatic Tool Callingは、Claudeがサンドボックス環境内のPythonコードを介して複数のツールをオーケストレーションすることを可能にし、中間データがモデルのコンテキストを汚染することを防ぎます。 従来のツール呼び出しは、呼び出しごとに完全な推論パスを必要とし、すべての生の結果がコンテキストウィンドウに入力されるため、大規模なデータセットに対しては非効率的です。

How it Works

逐次的な自然言語リクエストの代わりに、Claudeは複数のツールを呼び出し、出力を処理する(ループ、条件分岐、変換を使用)Pythonスクリプトを記述し、最終的な結果のみをモデルに返します。

  1. Opt-in: ツールは allowed_callers: ["code_execution_20250825"] とマークされます。
  2. Execution: ClaudeはPythonコードを含む server_tool_use リクエストを生成します。
  3. Processing: ツール結果はCode Execution環境内で処理されます。モデルは生の生の中間データを見ることことはできません。
  4. Final Output: スクリプトの最終的な stdout のみがClaudeのコンテキストに入ります。

Key Benefits

  • Token Savings: 複雑なリサーチタスクにおいて、平均使用量が37%減少しました(43,588から27,297トークン)。
  • Latency Reduction: 1つのコードブロックで20以上のツール呼び出しを実行することで、システムは19回以上の不要な推論パスを排除します。
  • Accuracy: Knowledge retrievalは25.6%から28.5%に、GIAベンチマークは46.5%から51.2%に上昇しました。
  • Real-world Application: Claude for Excelは、この機能を利用して、コンテキストウィンドウを過負荷にすることなく、数千行のデータを含むスプレッドシートを操作します。

Tool Use Examples: Improving Invocation Precision

Tool Use Examplesは、JSONスキーマでは表現できない、フォーマットの規約やパラメータの相関関係など、正しいツールの使用パターンを示すための普遍的な標準を提供します。 JSONスキーマは構造的な妥当性を定義しますが、いつオプションのパラメータを使用するか、あるいはAPIが期待する特定の文字列形式を指定することはできません。

Implementation and Impact

開発者は、ツール定義にサンプルツール呼び出しを含む input_examples 配列を追加できます。これにより、Claudeは以下を学習します:

  • Format Conventions: 例:日付にYYYY-MM-DDを使用する、あるいは特定のIDプレフィックス(例:「USR-12345」)を使用する。
  • Nested Structures: 複雑なネストされたオブジェクトを正しく入力する方法。
  • Parameter Logic: さまざまなシナリオにおいて、どのオプションのパラメータの組み合わせが適切か(例:重大なバグに対して、より高いエスカレーションレベルが必要な場合)。

内部テストでは、例を提供することで、複雑なパラメータ処理の精度が72%から90%に向上したことが示されました。

Deployment Best Practices

Anthropicは、エージェントの特定のボトルネックに基づいて、これらの機能を階層的に使用することを推奨しています。

Bottleneck Recommended Feature
コンテキストの肥大化(ツール定義による) Tool Search Tool
大規模な中間結果によるコンテキストの汚染 Programmatic Tool Calling
パラメータエラーおよび不正な呼び出し Tool Use Examples

Optimization Tips

  • Discovery: 検索精度を向上させるために、ツールに対して明確で記述的な名前と説明を使用してください。頻繁に使用される3〜5個のツールは常にロードしておき、残りは遅延ロードに設定してください。
  • Execution: Claudeが正確なPythonパースロジックを記述できるように、ツールの説明文に返り値の形式を明確に文書化してください。Programmatic callingは、べき等な操作や並列化可能なタスクに重点を置いてください。
  • Accuracy: スキーマが不十分な領域、つまり曖昧な部分に焦点を当てて、ツールごとに1〜5個の現実的な例を提供してください。

Sources

関連

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