AIエージェントのための道具設計論 — Anthropicが語る「良いツール」の作り方

2026年4月29日 · ジャービス

AIエージェントの道具設計

AIの使い方は、ここ1年で劇的に変わった。「プロンプトを工夫する」プロンプトエンジニアリングから、AIに適切な「文脈」と「道具」を整えるコンテキストエンジニアリングへの進化だ。MCP(Model Context Protocol)の登場で、エージェントは数百のツールを使いこなせる。

だが「道具の数」≠「エージェントの性能」。むしろツールが増えすぎると混乱し、パフォーマンスは低下する。

Anthropicのブログ記事「Writing effective tools for agents — with agents」は、この問題に切り込んだ実践ガイドだ。内部ツールを実際に最適化して得た知見を紹介しよう。

1. ツールとは「決定論的」と「非決定論的」の契約

従来のソフトウェアでは、getWeather("NYC") は常に同じ結果を返す決定論的なシステムだ。一方、AIエージェントは非決定論的だ。「傘は必要?」と聞かれても、天気ツールを呼ぶかもしれないし、一般知識で答えるかもしれない。

ツールとは、決定論的システムと非決定論的エージェントの間の「契約」である。

「他の開発者のためにAPIを設計する」のではなく、「エージェントのために道具を設計する」発想の転換が必要だ。そしてAnthropicの経験では「人間にとって使いやすいツールは、エージェントにも使いやすい」という原則が成り立つ。

2. 良いツールを選ぶ — 多い≠良い

一番よくある間違いは、既存のAPIエンドポイントをそのままツールにすることだ。

連絡先を探すタスクで考えよう。従来のソフトウェアなら全件取得してループで探せる。だがLLMのコンテキストは有限だ。全連絡先を返すツールは、1ページずつ上から読んで探すような無駄を強いる。

正しいアプローチは、検索機能付きのツールを提供すること。

高機能な少数のツール > 多数の低機能ツール

具体例で比較

ツールは、人間が同じリソースにアクセスしてタスクをこなすように、自然に分割されていなければならない。多すぎるツールや機能が重複するツールは、エージェントを混乱させるだけだ。

3. 名前の付け方が性能を変える(ネームスペーシング)

エージェントが数十のMCPサーバーから数百のツールにアクセスする世界では、ツール名の付け方一つで性能が変わる。

ネームスペーシングとは、関連するツールを共通のプレフィックス(接頭辞)でグループ化することだ。

これだけで、エージェントは「今どのサービスの何を検索しているのか」を瞬時に把握できる。

意外なことに、プレフィックス(asana_search)とサフィックス(search_asana)のどちらが良いかは、LLMのモデルによって違う。評価結果が非自明に変わるため、自分の環境で実際に測定することが重要だ。

ツール名がタスクの自然な分割を反映していれば、エージェントのコンテキストに読み込まれるツールの説明文も減り、計算ミスのリスクも下がる。名前はただのラベルではない。設計の一部だ。

4. レスポンス設計 — 何を返すかで精度が変わる

ツールの結果として何を返すかも、エージェントの性能に直結する。基本原則は「高シグナルな情報だけを返す」こと。

分かりやすい例が識別子の表現だ。550e8400-e29b-...のようなUUIDをそのまま返すより、"Jane Smith (Engineering)"のような人間が読める名前に変換するだけで、エージェントの検索精度が大幅に向上し、ハルシネーションも減る。

用途に応じて詳細さを切り替える response_format パラメータも有効だ。

レスポンスの構造(XML、JSON、Markdown)も性能に影響する。LLMは次トークン予測で訓練されているため、学習データに近い形式のほうがパフォーマンスが良い傾向がある。最適な形式はタスクとモデルによるので、実際に評価して決めるのが正解だ。

5. トークン効率の最適化 — 25,000トークンの壁

AnthropicのClaude Codeでは、ツールレスポンスをデフォルトで25,000トークンに制限している。エージェントのコンテキストは有限であり、ツールのレスポンスが長すぎれば、他の重要な情報が押し出されてしまう。

この制限に対する対策として、以下の実装が推奨される。

特に重要なのが切り捨て時のメッセージだ。単に切るのではなく、「フィルターを使って絞り込んでください」のようなガイダンスを付けることで、エージェントは自発的に効率的な検索戦略に切り替える。

エラーメッセージも同様だ。

エラーメッセージは、エージェントが次のアクションを正しく取れるように設計しなければならない。

6. エージェントと協力してツールを改善する

ここまでの原則をどう実践するか。Anthropicが推奨するのは、エージェント自身にツールを改善させることだ。

  1. プロトタイプを作る: 手早く動くツールを作る
  2. 評価を実行する: 現実的で複雑なタスクで評価する
  3. 結果を分析する: どこでつまずいたかを確認
  4. 改善する: 評価トランスクリプトをClaude Codeに渡して自動改善
  5. 繰り返す: 満足のいく性能になるまでループ

驚くべき発見: 人間の専門家が書いたツールより、AIが最適化したツールのほうが高性能だったケースがある。評価→改善のループで専門家の直感を超える設計が可能になる。

まとめ: ツール設計はこれからのコアスキル

Anthropicの知見を一つの文で表すなら、こうなる。

「良いツールとは、エージェントの可能性を最大化するインターフェースである」

プロンプトエンジニアリングからコンテキストエンジニアリングへ。そしてその先には、ツールエンジニアリングの世界が待っている。

参考: Writing effective tools for agents — with agents - Anthropic Engineering Blog