CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/API & SDK
API & SDK/2026-05-05上級

「考えながら調べる」AIエージェントの作り方 — Claude API 拡張思考 × Tool Use 本番実装ガイド

Claude APIの拡張思考(Extended Thinking)とTool Useを組み合わせる実装パターンを詳解。頻出エラーの根本原因、リサーチエージェントの完全実装コード、本番でのコスト・タイムアウト設計まで体系的に解説します。

extended-thinking7tool-use21claude-api81python22agent10api-sdk13

プレミアム記事

Claude Sonnet 4.6 がリリースされたとき、「拡張思考(Extended Thinking)と Tool Use が同時に使える」というアップデートが入りました。それまでは制約があって、思考させながらツールを呼ばせることができなかったのですが、これが解禁されたことで「調べながら考えるエージェント」が作れるようになりました。

実際に実装してみると、最初の1〜2時間は思っていた通りには動きませんでした。max_tokens の設定が足りない、budget_tokens の意味を誤解している、ストリーミング時の thinking_delta をどう扱えばいいかわからない——こういった小さな落とし穴がいくつも重なって、「あれ、これって本当に同時に使えるの?」という気持ちになりました。

ここではそのあたりの詰まりポイントを全部解消したうえで、実際に動く「リサーチエージェント」の完全実装コードをお渡しします。概念の説明よりも「動くコードと、なぜそう書くか」を中心に進めていきますので、ある程度Anthropic APIを触ったことがある方を想定しています。

Extended Thinking と Tool Use を組み合わせると何ができるか

まず、それぞれが何をするものか整理しておきます。

Extended Thinking(拡張思考) は、Claude がユーザーへの回答を返す前に、内部で長い思考プロセスを実行できる機能です。この「考えた内容」はAPIレスポンスに thinking ブロックとして含まれ、最終回答に至る過程を確認できます。複雑な推論や多ステップの問題解決に威力を発揮します。

Tool Use は、Claude が実行中に外部関数を呼び出せる機能です。Web検索、データベースクエリ、計算処理など、APIだけでは対応できない操作をツールとして定義しておくと、Claude が「このツールを使おう」と判断したときに呼び出しリクエストを返してきます。

この2つを組み合わせると、次のような処理フローが実現できます。

  • ユーザーの質問を受け取る
  • Extended Thinking: どのツールをどの順番で呼ぶか計画する
  • Tool Use: 計画に沿ってツールを実行する
  • Extended Thinking: 結果を解釈し、次に何をすべきか考える
  • 必要であれば上記の2ステップを繰り返す
  • 最終回答を生成する

「考えながら調べる」という表現がぴったりな、研究者やアナリスト的な動作です。単純なツール呼び出しよりも、複雑なタスクを自律的に分解・実行する能力が大幅に上がります。

動かす前に確認すべき制約と設定

実装に入る前に、この組み合わせ特有の制約を把握しておく点が肝心です。ここを飛ばすと、後から詰まります。

対応モデルを確認する

Extended Thinking と Tool Use の同時使用は、以下のモデルのみ対応しています(2026年5月時点)。

  • claude-opus-4-6(最高精度・高コスト)
  • claude-sonnet-4-6(バランス型・実用的)

claude-haiku-4-5 は Extended Thinking 非対応のため使えません。個人開発やプロトタイプ段階では claude-sonnet-4-6 を使いつつ、精度が足りなければ claude-opus-4-6 に切り替える、という判断が実用的です。

max_tokens の設定に注意する

ここが最初の落とし穴です。

Extended Thinking を使う場合、max_tokensthinking(内部思考)のトークン + 最終出力のトークン の合計を賄える値に設定する必要があります。budget_tokens で指定した思考トークン数を max_tokens が下回っていると、APIはエラーを返します。

# エラーが出る設定パターン
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,          # 少なすぎる
    thinking={
        "type": "enabled",
        "budget_tokens": 5000  # max_tokensより大きい → エラー
    },
    tools=[...],
    messages=[...]
)
# エラー: thinking budget_tokens must be less than max_tokens
 
# 正しい設定パターン
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=16000,          # budget_tokens + 出力分の余裕
    thinking={
        "type": "enabled",
        "budget_tokens": 10000  # max_tokensを超えない範囲で設定
    },
    tools=[...],
    messages=[...]
)

budget_tokens は Claude が使える思考トークンの上限です。必ずしもその分全部使うわけではありませんが、max_tokens > budget_tokens の関係は常に守る必要があります。実際の使用量は response.usage で確認できます。

tool_choice との相性

tool_choice={"type": "any"} を指定すると「必ず何かツールを使え」という強制になりますが、Extended Thinking と組み合わせるときは基本的に {"type": "auto"} にしておくことをおすすめします。思考の結果「ツールは不要」と判断させる余地を残す方が、エージェントの品質が上がります。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
budget_tokens を上げても思考消費は頭打ちになる——100リクエスト実測に基づく上限設計の勘所
stop_reason=tool_use 後の thinking ブロック保持など、履歴管理で詰まる箇所の具体的な回避策
リサーチとコードレビュー双方で動く完全実装コードと、本番のコスト・タイムアウト・モデル選択の判断基準
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-05-05
Claude API のツール実行エラーを Claude 自身に診断させる — 自己修正ループの設計と本番実装
Tool Use実装で避けられないツール実行エラーの対処法を解説。is_errorフラグを活用してエラー情報をClaudeに返し、自己診断・修正ループを実装する実践的なPythonコードと本番でのアンチパターンも紹介します。
API & SDK2026-07-09
出力は同じ、道筋は違う — エージェントの軌跡を不変条件で守る
既定モデルが入れ替わっても最終出力は正しいまま、ツール呼び出しの道筋だけが静かに変わることがあります。実行トレースを記録し、不変条件で機械的にアサートする軌跡回帰ハーネスを実装コードと実測値で整理しました。
API & SDK2026-06-29
Claude API の Context Editing を入れたらエージェントが同じ調査を繰り返したとき — クリア境界とキャッシュ無効化を計測する運用メモ
Context Editing でツール結果を自動クリアしたら、エージェントが直前に読んだ内容を忘れて同じツールを呼び直し、キャッシュも毎回壊れてコストが上がった。沈黙する劣化を計測ログで切り分け、trigger・keep・clear_at_least を実測で決める運用メモです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →