Claude Codeのサブエージェントのeffortを指定する方法|frontmatter・呼び出し時の指定・CLAUDE_CODE_SUBAGENT_EFFORT
Claude Codeのサブエージェントは、何も指定しないとメインの会話と同じeffort(考える量)で動きます。サブエージェントのeffortは、定義ファイルのeffort、呼び出し時のeffortパラメータ、そしてv2.1.316で加わった環境変数CLAUDE_CODE_SUBAGENT_EFFORTで個別に決められます。この記事では、それぞれの書き方と優先順位、効いているかの確かめ方を、公式ドキュメントと更新履歴に沿ってまとめます。
サブエージェントのeffortとは:何が決められるのか
effortは、モデルがどれだけ深く考えるかを調整する設定です。公式ドキュメントによると、低いeffortは速くて安く、高いeffortは複雑な問題に向く、と説明されています。サブエージェントは調査やレビューなどの作業を別の会話として任される仕組みなので、「調査は軽く、設計の判断は深く」のように役割ごとにeffortを分けられると、速さと費用の釣り合いを取りやすくなります。
指定できる段階はlow・medium・high・xhigh・maxですが、使える段階はモデルによって違います。
| モデル | 使える段階(2026年11月3日時点の公式ドキュメント) |
|---|---|
| Fable 5.1・Fable 5 | low / medium / high / xhigh / max |
| Opus 5.5・Sonnet 5.5・Haiku 5.5・Opus 5・Sonnet 5・Opus 4.8・Opus 4.7 | low / medium / high / xhigh / max |
| Opus 4.6・Sonnet 4.6 | low / medium / high / max(xhighは無い) |
モデルが対応していない段階を指定すると、Claude Codeはそのモデルが対応する「指定以下で最も高い段階」に切り替えます。たとえばOpus 4.6でxhighを指定するとhighで動きます。
方法1:サブエージェントの定義ファイルに effort を書く
いちばん基本的な方法です。サブエージェントは~/.claude/agents/(全プロジェクト共通)または.claude/agents/(そのプロジェクトだけ)のMarkdownファイルで定義し、先頭のfrontmatterにeffortを足します。
---
name: code-reviewer
description: 変更差分をレビューする。コードを変更したあとに使う
model: sonnet
effort: high
---
あなたはコードレビュー担当です。……(以下、指示文)
公式ドキュメントでは、effortは「このサブエージェントが動くときのeffort」で、セッションのeffortを上書きします。ただし環境変数CLAUDE_CODE_EFFORT_LEVELは上書きできません。省略した場合は、後述する環境変数か、メインの会話の設定を引き継ぎます。
更新履歴にある過去の不具合
Claude Codeの更新履歴には、「Opus 4.7・Opus 4.8・Fable 5など、既定のeffortが固定されていたモデルでは、サブエージェントやスキルのeffort:が無視されていた」不具合を直した、という記載があります。古いバージョンを使っていて効かない場合は、まずClaude Codeを更新してください。
方法2:呼び出すときに effort を指定する
v2.1.292以降では、Claudeがサブエージェントを起動するとき、その1回の呼び出しだけにeffortパラメータを渡せます。ユーザーは、たとえば次のように頼みます。
code-reviewerサブエージェントを、effortをmaxにして起動して、この差分を見てもらって
公式ドキュメントの説明をまとめると、次のとおりです。
- このパラメータは、定義ファイルの
effortより優先される - そのサブエージェントを再開(resume)したときも、指定したeffortのままになる
- 対象は「fork以外」のサブエージェント。会話を複製して分岐させるforkには使えない
- 環境変数
CLAUDE_CODE_EFFORT_LEVELは、この呼び出し時の指定よりも優先される
「普段は定義ファイルのmediumで十分だが、今回だけ深く見てほしい」というときに向いています。
方法3:環境変数 CLAUDE_CODE_SUBAGENT_EFFORT で既定を決める
v2.1.316の更新履歴に、次の1行が追加されています。
更新履歴の記載(意訳)
CLAUDE_CODE_SUBAGENT_EFFORTを追加。ほかに指定がないとき、サブエージェントが動くeffortを、セッションのeffortを引き継ぐ代わりに設定する。
つまり、定義ファイルにも呼び出し時にもeffortが無いサブエージェントの「既定値」を、環境変数で一括して決められるようになりました。たとえば、メインの会話は深く考えさせたまま、細かい調査を任せるサブエージェントは軽くしたい、という使い方が考えられます。
# 例:サブエージェントの既定を medium にして、Claude Codeを起動する
CLAUDE_CODE_SUBAGENT_EFFORT=medium claude
確認できなかった点
2026年11月3日時点で、この環境変数は環境変数の一覧ページ(Environment variables)にまだ載っていません。そのため、指定できる値の一覧や、CLAUDE_CODE_EFFORT_LEVELとの細かい優先関係は、公式ドキュメントでは確認できませんでした。上の例のmediumは、effortの段階名として公式に定められている値を当てはめたものです。実際に使うときは、後述の/tasksで効いているかを確かめてください。
優先順位のまとめ:どの設定が勝つのか
公式ドキュメントの記載から確認できる範囲を、強い順に並べます。
| 順位 | 設定 | 根拠 |
|---|---|---|
| 1 | 環境変数 CLAUDE_CODE_EFFORT_LEVEL | 呼び出し時の指定と定義ファイルのeffortの両方より優先される、と明記 |
| 2 | 呼び出し時の effort パラメータ | 定義ファイルのeffortを上書きする、と明記 |
| 3 | 定義ファイルの effort | セッションのeffortを上書きする、と明記 |
| 4 | CLAUDE_CODE_SUBAGENT_EFFORT | 更新履歴に「ほかに指定がないとき」とある |
| 5 | メインの会話のeffort | 何も指定がなければ引き継ぐ |
4番目は更新履歴の文言からの読み取りで、公式ドキュメントに順位表があるわけではありません。また、メインの会話のeffortをCLAUDE_CODE_EFFORT_LEVELで固定していると、サブエージェントも含めてその値が最優先になる点に注意してください。サブエージェントだけ変えたいなら、この環境変数は使わないほうが安全です。
効いているかを確かめる:/tasks
サブエージェントが動いている間に/tasksを実行すると、各サブエージェントの行に、動いているモデルと、そのサブエージェントに設定されたeffortが表示されます(v2.1.242以降)。定義ファイルを書いたのに速さや回答の深さが変わらないときは、まずここでeffortが想定どおりかを見ます。
| 症状 | 確認すること |
|---|---|
/tasksにeffortが出ない | effortを何も指定していない場合は、表示されない。定義ファイルの綴り(effort:)とインデントを見直す |
| 指定と違う段階で動く | モデルがその段階に対応していない可能性。上の対応表を確認する |
| どの指定も効かない | CLAUDE_CODE_EFFORT_LEVELが設定されていないか確認する。設定されていると最優先で効く |
| 定義ファイルを新規作成したのに見つからない | ~/.claude/agents/を新しく作った直後は、Claude Codeを再起動する |
よくある質問(FAQ)
Q. サブエージェントのeffortを何も指定しないとどうなりますか?
メインの会話のeffortを引き継ぎます。v2.1.316以降は、CLAUDE_CODE_SUBAGENT_EFFORTを設定していれば、その値が使われると更新履歴に書かれています。
Q. effortを下げると費用は減りますか?
公式ドキュメントは、低いeffortは「速くて安い」と説明しています。ただし、サブエージェントの呼び出し1回あたりの費用がどれだけ変わるかの数値は、確認できませんでした。
Q. ultracodeはサブエージェントにも効きますか?
ultracodeはモデルのeffortの段階ではなく、Claude Codeの設定として説明されています。サブエージェントのeffortとして指定できる値はlowからmaxまでです。ultracode自体はこちらの記事で扱っています。
Q. 最初の一歩は何から始めるとよいですか?
よく使うサブエージェントの定義ファイルを1つ選び、frontmatterにeffort: mediumを足して、/tasksで表示を確かめるのが手軽です。
まとめ
- サブエージェントのeffortは、定義ファイルの
effort、呼び出し時のeffort、環境変数CLAUDE_CODE_SUBAGENT_EFFORTの3通りで決められる - 呼び出し時の指定は、定義ファイルの
effortより優先され、再開しても保たれる(v2.1.292以降、fork以外) CLAUDE_CODE_EFFORT_LEVELはすべてに優先するので、サブエージェントだけ変えたいときは使わないCLAUDE_CODE_SUBAGENT_EFFORTは更新履歴のみの記載で、値や細かい優先関係は未確認- 効いているかは
/tasksで確認できる
まずは、いつも使うサブエージェントにeffortを1行足してみてください。

