Claude Code: サブエージェントのモデルはどれが勝つか(決定順)
①呼び出し時に Claude が渡す model → ②エージェント定義の model: → ③環境変数 CLAUDE_CODE_SUBAGENT_MODEL → ④メインのモデル、の順。環境変数は「既定値」なので、全部そろえたいなら CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 も足す。
どんな時に使う?
- 「読むだけのサブエージェントは Haiku 5.5 にして安くしたい」のに、なぜか Opus で動いている
- チーム全体でサブエージェントのモデルを固定したい
手順
- 全サブエージェントを Haiku に強制(
settings.json):json{ "env": { "CLAUDE_CODE_SUBAGENT_MODEL": "haiku", "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1" } } - 個別に決めるならエージェント定義に
model: haiku(inheritならメインと同じ) - effort も同様: 呼び出し時の
effort> 定義のeffort:> 会話の effort。ただし環境変数CLAUDE_CODE_EFFORT_LEVELはすべてに勝つ - 確認: 実行中に
/tasks。行にモデル名(と effort)が出る
注意点
CLAUDE_CODE_SUBAGENT_MODELだけでは組み込みの Explore / Plan のモデルは変わらない(FORCE が必要)。- FORCE は v2.1.257 以降。v2.1.251 より前は環境変数が最優先だったので、古い記事の説明と逆になっている場合がある。
opusなどのエイリアスは、メインが同じ系列ならメインと同じ正確なモデル(1M コンテキスト付きなど)に解決される。- mod の
agent.spawnフックがモデルを指定すると、①より優先される。
出典
- @gork_isthistrue · 2026-10-08 (公式ドキュメントで内容を確認済み)
- 公式: code.claude.com (Choose a model / Run every subagent on one model)
- 関連: Claude Code: サブエージェントを実行する労力レベル(effort)を指定する