Claude Media
Claude Code ultrathinkでその場だけ深く考えさせる

Claude Code ultrathinkでその場だけ深く考えさせる

ultrathinkはプロンプトに含めるだけで、その1ターンだけ深い推論を求められるキーワードです。effortレベルやultracodeとの違い、プロンプトキャッシュへの影響、再導入までの経緯をまとめます。

ultrathinkは、プロンプトのどこかに含めるだけでその1ターンだけ深い推論を求められるキーワードです。セッションのeffort設定は変えず、Claude Codeがその場で文脈内の指示(in-context instruction)を追加する仕組みで動きます。設定画面を開く手間なく、ここぞという1問だけ深く考えさせたいときに使います。

Claude Code ultrathinkとは何をする機能か

ultrathinkはプロンプトの一部として渡す予約語です。文中のどこに置いても構いません。Claude Codeはこの語を検出すると、その1ターンの応答生成にだけ深い推論を求める指示を内部で追加します。セッションのeffort設定自体は変わらず、APIに送られるeffortレベルの値も変化しません。次のターン以降は、通常のeffort設定に戻ります。

恒久的な設定変更ではなく、その場限りの依頼という点が/effortとの最大の違いです。/effort highのようにレベルを上げれば以降のすべてのターンに適用されますが、ultrathinkは「この1問だけ」に効きます。

紛らわしいのが、似た言い回しの扱いです。thinkthink hardthink moreのような表現はキーワードとして認識されず、ただの地の文として処理されます。深く考えてほしいときに使えるのはultrathinkという語だけです。

プロンプトのどこに書けば動くか

書く位置に制約はありません。質問の冒頭でも末尾でも、文の途中に挟んでも認識されます。ターミナルでの例です。

このレースコンディションの根本原因を特定して。ultrathink

見た目にも分かりやすくするため、Claude Codeはプロンプト中のultrathinkをハイライト表示します。

対話的に/effort/modelを切り替えにくい場面では、プロンプトテンプレート側でultrathinkを入れるかどうかをあらかじめ設計しておくほうが、実行の都度手で切り替えるより安定します。

こんな場面で効果が出やすい

ultrathinkが効くのは、推論の余地が大きいタスクです。典型的なのは、再現条件がはっきりしないバグやレースコンディションの根本原因を探る原因調査で、手がかりが少ないほど深く考える価値が上がります。ほかにも、次のような場面で差が出やすくなります。

  • 設計判断: 複数のアーキテクチャ案からトレードオフを比較して1つを選ぶ場面。選択肢の評価軸が多いタスクほど効果を実感しやすくなります
  • セキュリティ・重要度の高い差分のレビュー: 見落としが後で高くつく変更を見るとき、普段のeffortレベルを維持したまま、その1回だけ念を押して深く見てもらう使い方ができます
  • 複雑なリファクタの計画立て: 影響範囲が広い変更で、着手前に手順を練り直したいとき

逆に、単純なファイル編集やタイポ修正のようなタスクでは、ultrathinkを付けても体感できるほどの差は出ません。推論の余地が小さいタスクに使っても、待ち時間だけが延びる結果になりがちです。

ultrathinkと/effort・ultracodeの使い分け

深く考えさせる手段はultrathinkだけではありません。目的に応じて3つの選択肢があります。

手段効く範囲向いている場面
ultrathink効く範囲その1ターンのみ向いている場面難しい1問だけ深く考えさせたい。設定を戻す手間を避けたい
/effort high(またはxhighmax)効く範囲以降のセッション全体向いている場面難しいタスクが連続する。毎ターン深い推論を維持したい
ultracode効く範囲セッション限定の設定向いている場面xhighの推論に加え、まとまった規模のタスクをClaude Code自身にワークフローとして組み立てさせたい

ultracodeはeffortレベルの一種ではなく、Claude Code独自の設定です。有効にするとモデルにはxhighが送られ、加えてダイナミックワークフローによる計画立てとオーケストレーションが働きます。単発の深い思考が欲しいだけならultrathinkで足り、タスクの分解や複数ステップの進行管理まで任せたいならultracodeが向きます。effortレベル自体の全段階と既定値の詳細はClaude Code effortレベルの使い方と設定にまとめています。

セッションのキャッシュを壊さないという実務上の利点

/effortでレベルを切り替えると、地味に効いてくるコストがあります。Claude Codeのプロンプトキャッシュはモデルとeffortレベルの組み合わせごとにキーが分かれていて、セッション途中でeffortを変えると次のリクエストは会話履歴全体をキャッシュなしで読み直します。長いセッションほど、この1回の切り替えコストは無視できません。

ultrathinkはAPIに送るeffortレベル自体を変えないため、この種のキャッシュミスを起こしません。長時間のセッションで「ここだけ深く考えてほしいが、往復のためにキャッシュを壊したくない」という場面では、/effortで上げ下げするよりultrathinkを差し込むほうが実務的です。

ultrathinkは何度も名前を変えずに生き残ってきた機能

ultrathinkという語そのものは、Claude Codeの初期からある珍しく息の長い機能名です。公式changelogで確認できる限りの変遷を追うと、性格が何度か変わっています。

バージョン変化
v0.2.44変化thinking modeとして追加。「think」「think harder」「ultrathink」の3段階の言い回しで内部の思考予算を切り替えられた
v2.0.14変化ultrathinkトグルの不具合修正。3段階の言い回しの一部として稼働中
v2.0.50変化ultrathinkのテキスト表示を改善
v2.1.0変化プロンプトが複数行に折り返す場合のultrathinkハイライト位置ずれを修正
v2.1.68変化ultrathinkキーワードが再導入(re-introduced)。同時にOpus 4.6の既定effortがmediumに変更
v2.1.86変化ultrathinkを削除した後もヒント表示が残り続ける問題を修正

v0.2.44の時点では、thinkthink harderultrathinkという3段階の言い回しが認識され、それぞれ異なる深さの思考予算に対応していました。この3段階の仕組みはv2.1.0のバグ修正までは確認できますが、v2.1.68のリリースノートでは「再導入」という表現とともに、ultrathinkのみが単独のキーワードとして戻っています。今のドキュメントでthinkthink hardが認識されないと説明されているのは、この3段階システムが1段階の一発ショートカットに整理された結果と見て良さそうです。

説明のされ方にも変化があります。v2.1.68のリリースノートは「プロンプトに含めると次の1ターンだけhigh effortで動作」と、effortレベルそのものを引き上げる仕組みとして紹介していました。現在の公式ドキュメントでは、ultrathinkはin-context instructionを追加するだけでAPIに送るeffortパラメータ自体は変えない、という説明に変わっています。ユーザーから見た「深く考えてくれる」という体感は共通していますが、内部の実装として何を動かしているかの説明は時期によって異なります。

Skillの中でultrathinkを使う

ultrathinkはチャットで打つプロンプトだけのものではありません。Skillの本文に含めておけば、そのSkillが実行されるたびに深い推論を要求できます。毎回手で入力する代わりに、精度が要るSkillの定義ファイルにあらかじめ書き込んでおく使い方です。

複雑な設計判断やレビュー系のSkillでは、この方法で「呼び出されたら常に深く考える」を仕組み化できます。Skillのfrontmatterやその他の書き方の全体像はClaude Code Skills完全ガイドを参照してください。

よくあるつまずき

  • 書いたのに効いた気がしない: ultrathinkは推論の深さを底上げする指示であって、答えの正しさを保証するものではありません。効果を実感しやすいのは、複雑な原因調査や設計判断のような、推論の余地が大きいタスクです。単純な作業では体感差が小さくなります
  • think harderと書いても何も起きない: 現在認識されるキーワードはultrathinkだけです。過去のバージョンで通用したthinkthink harderのような言い回しは、今は普通のプロンプト本文として扱われます
  • 次のターンにも効果が続くと思っていた: ultrathinkは書いたそのターンにしか効きません。複数ターンにわたって深く考えさせたい場合は、毎回書き足すか/effortでレベルを上げます
  • effortが上がったのか確認したい: セッションヘッダーに表示されるeffort表示は変わりません。ultrathinkはAPIに送るeffortパラメータ自体を変えない設計なので、/effort/modelの表示を見ても違いは出ません

よくある質問

ultrathinkを使うとコストは上がりますか

具体的な増加率は公式に数値化されていません。深い推論を要求する分、そのターンで消費される推論トークンは増える設計ですが、/effortでレベルを上げっぱなしにする場合と違い、影響は書いたそのターンだけに留まります。

ultrathinkとmaxのeffortレベルはどちらが深く考えますか

役割が異なります。maxはセッション全体(またはCLAUDE_CODE_EFFORT_LEVEL環境変数で設定すれば永続的)に適用される最も深いeffortレベルで、ultrathinkはどのeffortレベルを使っていても、その1ターンだけ深く考えるよう求める指示です。両者は独立していて、maxで運用しながら特定のターンだけさらに念を押す、という使い方も成立します。

ultrathinkはどのモデルでも使えますか

特定モデル専用の機能ではありません。プロンプトの一部として送られる指示であり、使えるモデルを限定する記載も見当たりません。ただしeffortレベルに対応していないモデルでは、そもそも深さを細かく調整する余地自体が小さい点は踏まえておく必要があります。

CLAUDE.mdに書いておいても効きますか

公式ドキュメントが明記しているのは、Skillの本文に含めておくと実行のたびに深い推論を要求できるという挙動です。CLAUDE.mdへの記載についての明示的な説明は見当たらないため、確実な運用にしたい場合はSkillへの記載を使うのが安全です。

まとめ

ultrathinkはプロンプトのどこに書いても認識される、1ターン限定の深い推論リクエストです。セッションのeffort設定を恒久的に変える/effortや、xhigh相当の推論とワークフロー計画を組み合わせるultracodeとは役割が異なり、APIに送るeffortパラメータ自体を変えないためプロンプトキャッシュも壊しません。v0.2.44の3段階thinking modeに始まり、一度姿を変えてv2.1.68で単独キーワードとして再導入された、息の長い機能です。今使えるキーワードはultrathinkだけで、thinkthink hardは効かない点だけ覚えておけば、迷わず使えます。

この記事を共有:XはてブLinkedIn