X で見かけた投稿の紹介記事です。
Anthropic の Thariq(@trq212)さんが、Claude Code を作る中で学んだ「エージェントのためのツール設計」についての教訓を X でシェアしていた。これがかなり面白かったので、日本語でまとめてみる。
核心メッセージ:エージェントの視点で考えろ
エージェント開発で一番難しいのはアクション空間(行動の選択肢)の設計だそう。Claude のようなAIエージェントは、人間が用意した「ツール」(ファイル操作、Web検索、コマンド実行など)を呼び出すことで行動する。どんなツールをどう設計するかが、エージェントの能力を大きく左右する。
ツール設計の考え方として、こんなたとえが出てくる。「難しい数学の問題を解くとき、何が欲しい?」
- 紙:最低限だけど手計算には限界がある
- 電卓:もっと強力だけど操作方法を知る必要がある
- コンピュータ:最強だけどコードを書いて実行する能力がいる
要するに、モデルの能力に合ったツールを渡すべきで、そのためにはモデルの出力をよく観察して実験を重ねるしかない。
教訓1:AskUserQuestion ツールの進化
ユーザーへの質問(elicitation)を改善するために、3段階の試行錯誤があったらしい。
試み1 – ExitPlanTool にパラメータ追加
計画と質問を同時に出させたけど、Claude が混乱。ユーザーの回答が計画と矛盾したらどうするの?という問題が出てきた。
試み2 – マークダウン出力形式の変更
特殊なマークダウン形式で質問を出力させて、パースして UI にする方式。でも Claude が余計な文を足したり、フォーマットを守らなかったりした。
試み3 – 専用ツール化(AskUserQuestion Tool)
最終的に、いつでも呼べる専用ツールとして実装。構造化された出力を強制できて、複数の選択肢も提示できるようになった。一番大事だったのは、Claude がこのツールを気に入って使い、出力の質が高かったこと。 どんなにいい設計でも、モデルが使い方をわかってくれなければ意味がない。
教訓2:モデルが賢くなったらツールも更新する(Todo → Task)
初期の Claude Code では、モデルがやることを忘れないように TodoWrite ツールを用意して、さらに5ターンごとにシステムリマインダーを差し込んでいた。
ところがモデルが賢くなると、このリマインダーがかえって邪魔になった。リストに固執して柔軟に動けなくなってしまったのだ。Opus 4.5 ではサブエージェントを上手く使えるようになったけど、Todo リストの共有がうまくいかないという課題も出てきた。
そこで TodoWrite を Task Tool に置き換えた。Task はエージェント間のコミュニケーション手段として設計されていて、依存関係の定義やサブエージェント間での進捗共有ができる。
モデルが賢くなると、昔は必要だったツールがむしろ足かせになることがある。前提は常に見直そう。
教訓3:検索インターフェースの設計
最初は RAG(ベクトルDB)でコンテキストを渡していた。速いけどインデックス構築が必要で、環境によっては不安定。そして何より、コンテキストが「与えられるもの」だった。
Grep ツールを入れたことで、Claude が自分でコードベースを検索してコンテキストを組み立てるようになった。モデルが賢くなるほど、適切なツールさえあれば自力でコンテキストを構築できるようになる。
さらに Agent Skills の導入で「段階的開示(Progressive Disclosure)」という考え方が定着した。Claude がスキルファイルを読んで、そこから参照される別のファイルを再帰的にたどっていく仕組み。1年で、Claude は「コンテキストを自分で作れない」状態から「何層もネストしたファイルを探索して必要な情報を見つけられる」状態まで進化した。
教訓4:段階的開示でツールを増やさず機能追加
Claude Code には現在約20のツールがあって、新しいツールを追加するハードルは高い。選択肢が増えるとモデルの判断コストが上がるから。
例として、Claude Code 自体の使い方(MCP の追加方法やスラッシュコマンドなど)を聞かれた場合の対応が挙げられている。
- システムプロンプトに全部入れる → 滅多に聞かれない情報がコンテキストを圧迫して、本来の仕事(コードを書く)に影響が出る
- ドキュメントへのリンクを渡す → Claude が大量の結果を読み込んでしまう
- Claude Code Guide サブエージェント → ドキュメント検索に特化したサブエージェントを作った。ツールを増やさずにできることを広げられた
まとめ
ツール設計に決まったルールはなく、モデル・目的・環境に大きく左右される「アート」だという結論。
頻繁に実験し、出力を読み、新しいことを試せ。エージェントの視点で見ろ(See like an agent)。
個人的にも、Claude Code を毎日使っていて「ツールの与え方でここまで振る舞いが変わるのか」と感じることが多いので、納得感のある話だった。
元ポスト:
— Thariq (@trq212) February 27, 2026
この記事は Claude Code (claude-opus-4-6) が執筆しました。