
Claude thinking モードの使い方|ultrathink で精度を上げる
Claude thinking は、Claude が回答を出す前に内部で推論プロセスを展開する機能です。従来の即答型の応答とは異なり、複雑な問題をステップバイステップで考えてから答えを出すことで、精度が格段に向上します。
本記事では、Claude Code での think / think harder / ultrathink の使い分けから、API レベルの Extended Thinking パラメータ、対応モデルとトークン上限まで、「Claude に深く考えさせる」すべての手段を体系的に解説します。
目次 (11)
Claude thinking とは何か
Claude thinking(Extended Thinking)は、Anthropic が Claude に実装した「回答前の内部推論」機能です。通常の Claude は質問を受けると即座に回答を生成しますが、thinking モードを有効にすると、Claude はまず内部で思考プロセスを展開し、その結果として最終的な回答を構成します。
この内部推論プロセスは API では thinking ブロックとして可視化されます。ユーザーは Claude が「何を考えたか」を確認でき、答えが導かれるまでの過程を追跡できます。
Anthropic の公式ドキュメント(参照: platform.claude.com/docs/en/docs/build-with-claude/extended-thinking)によれば、thinking モードは特に数学的推論、コーディング、複雑な分析タスクで顕著な精度向上をもたらします。
Claude Code での thinking キーワードの使い方
Claude Code では、プロンプトに特定のキーワードを含めることで thinking モードをトリガーできます。コマンドラインやエディタ内でそのまま書くだけで動作します。
think: <質問やタスク>
think hard: <複雑な質問>
think harder: <非常に難しい問題>
ultrathink: <最大限の推論が必要なタスク>
たとえば、アーキテクチャ設計の相談をする場合は次のように書きます。
ultrathink: この認証モジュールのアーキテクチャを見直して、
セキュリティ上の問題点を洗い出してほしい
キーワードをプロンプトの冒頭または文中に含めるだけで、Claude Code が自動的に Extended Thinking を有効化します。特別な設定変更は不要です。
think / think harder / ultrathink の違い
Claude Code の thinking キーワードには段階的な深さがあります。
| キーワード | 思考の深さ | 処理時間 | 適したタスク |
|---|---|---|---|
think |
軽い推論 | 短い | 通常の質問、シンプルなバグ修正 |
think hard / think harder |
中〜深い推論 | 中程度 | 設計判断、複雑なロジック |
ultrathink |
最大限の推論 | 長い | アーキテクチャ設計、難解なバグ、大規模リファクタリング |
「常に ultrathink を使えばいいわけではない」という点が重要です。単純なタスクに ultrathink を使うと、処理時間とコストが増加するだけで、精度の向上が見込めないことがあります。通常は think をベースとして使い、問題の複雑さに応じて段階的に引き上げるのが効率的です。
Extended Thinking の対応モデルとトークン上限
Anthropic の公式ドキュメント(platform.claude.com/docs/en/docs/build-with-claude/extended-thinking)では、モデルごとに thinking の対応状況が異なります。
手動 Extended Thinking が利用可能なモデル
- Claude Sonnet 4.6
- Claude Haiku 4.5
- Claude 4 系の旧モデル
Adaptive Thinking に対応するモデル(推奨)
- Claude Opus 4.8、4.7、4.6
- Claude Sonnet 4.6
- Claude Fable 5、Mythos 5
なお、Claude Fable 5 と Mythos 5 では手動の type: "enabled" は使用できません(400 エラーが返ります)。これらの最新モデルでは Adaptive Thinking を使う必要があります。
出力トークンの上限:
- Claude Opus 4.8 / 4.7 / 4.6:最大 128,000 トークン
- Claude Sonnet 4.6 / Haiku 4.5:最大 64,000 トークン
API で Extended Thinking を実装する方法
Python での実装例を示します。thinking パラメータを追加するだけで動作します。
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000 # thinking に使う最大トークン数
},
messages=[{
"role": "user",
"content": "このアルゴリズムの計算量を最適化してください..."
}]
)
for block in response.content:
if block.type == "thinking":
print(f"[思考プロセス] {block.thinking}")
elif block.type == "text":
print(f"[回答] {block.text}")
budget_tokens は thinking に割り当てる最大トークン数です。max_tokens より小さい値を設定する必要があります。大きい値を設定しても、Claude はタスクの複雑さに応じて必要な分だけ使います。32,000 トークンを超える予算では、全量を使わないケースが多いとされています。
Adaptive Thinking との違い
最新モデルでは type: "adaptive" を指定する方法が推奨されています。
thinking={
"type": "adaptive"
# Claude がタスクの複雑さを自動判断して thinking 量を決定
}
手動の budget_tokens を設定する必要がなく、Claude 自身がタスクに応じて最適な thinking 量を決定します。Claude Opus 4.8 では Adaptive Thinking がデフォルトとして動作し、effort パラメータで深さをコントロールすることもできます。
Claude Code での ultrathink キーワードは、この Adaptive Thinking に近い動作をしており、Claude Code が内部的に thinking の深さを制御しています。
thinking モードを使うべき場面
thinking モードが効果を発揮する典型的な場面をまとめます。
効果が高い場面:
- 数学的証明・複雑な計算ロジックの実装
- アーキテクチャ設計の判断(マイクロサービス分割の境界など)
- 難解なバグの根本原因特定
- 複数の選択肢から最適解を導く意思決定
- 長大なコードのリファクタリング計画
thinking が不要な場面:
- 単純な質問(ファイルの読み書き、変数名の変更など)
- 繰り返し実行する定型タスク
- すでに明確な手順があるタスク
不要な場面で ultrathink を使うと、処理時間が数十秒単位で増加し、トークンコストも膨らみます。使いどころを見極めることが重要です。
コストと処理時間の考慮点
Extended Thinking の課金は、実際に生成された thinking トークン数全体に対して発生します。表示が要約(display: "summarized")に設定されている場合でも、要約前の全量に課金されます。
課金の計算例として、thinking が 10,000 トークン生成されてもユーザーには 500 トークン相当の要約しか表示されない場合、課金は 10,000 トークン分(要約前)となります。
Claude Code でも ultrathink を多用すると Claude Max プランの月次枠を早期に消費します。複雑なタスクにのみ限定的に使うことが推奨されます。
まとめ
Claude thinking モードは、Claude の回答精度を大幅に向上させる強力な機能です。Claude Code では think → think harder → ultrathink の 3 段階で深さを制御でき、API では budget_tokens または effort パラメータで細かく調整できます。
ポイントをまとめます。
- 日常タスク →
think(または thinking なし) - 設計判断・複雑なバグ →
think harder - 最大精度が必要な場面 →
ultrathink - API 実装 → 最新モデルは
type: "adaptive"を推奨
thinking 機能を使いこなすことで、Claude Code はより優秀な開発パートナーになります。複雑な問題を抱えたときは、まず ultrathink を試してみてください。