Codexのconfig.tomlをこう変える:Luna・Terra・Solを仕事ごとに振り分ける
GPT-5.6 Lunaが安くなったからといって、全部をLunaへ任せる設定にすればいいわけではない。まずLunaで小さく調べ、範囲が決まった実装だけTerraへ渡す。設計の迷い、例外が多い判断、公開前の横断確認だけSolへ上げる。この順番なら、AIを何度も試しながら、重い判断にだけ時間を使える。
この記事は、config.toml を触ったことがある人向けに、既定モデル、役割別エージェント、依頼文を一緒に整える。ここにある設定は安全な最小例だ。いまのファイルを丸ごと上書きせず、同じキーがあれば置き換える。
安くなったことの価値は、雑に任せることではない。小さく試せる回数が増えることだ。
最初に知っておくこと:config.tomlだけでは自動で選ばれない

config.toml は、Codexが新しい作業を始めるときの既定値を置く場所だ。個人の共通設定は ~/.codex/config.toml、プロジェクトだけ変えたいときはリポジトリの .codex/config.toml に置く。プロジェクト側の設定が優先される。
ただし、設定ファイルだけで「この依頼はTerra」「これはSol」と完全自動判定するわけではない。役割を定義し、親のCodexに選ばせるか、依頼文で振り分けの基準を渡す。設定は次の3層に分けると混乱しない。
| 置き場 | 決めること | 役割 |
|---|---|---|
config.toml | メインと名前なし子エージェントの既定値 | まずLunaで始める |
~/.codex/agents/*.toml | 役割ごとのモデル・推論量・権限 | explorer / worker / architect |
| 依頼文・AGENTS.md | いつ役割を選ぶか | Solへ上げる条件を伝える |
まず入れるconfig.toml:Luna / mediumを基準にする

Lunaの安さを活かすなら、既定の推論量は max ではなく medium から始める。max は必要なときにだけ上げればいい。小さな調査、分類、下書き、既存コードの探索ならLuna / mediumで十分なことが多い。
model = "gpt-5.6-luna"
model_reasoning_effort = "medium"
[agents]
enabled = true
max_concurrent_threads_per_session = 3
default_subagent_model = "gpt-5.6-luna"
default_subagent_reasoning_effort = "medium"
すでに model や [agents] があるなら、その行を直す。同じキーを二度書かない。approval_policy や sandbox_mode はモデル振り分けとは別の権限設定なので、この例を貼るために変えない。
3つの役割を作る:調査、実装、難しい判断
次に、~/.codex/agents/ に3ファイルを作る。調査と設計は読み取り専用にして、変更できる役割をTerraのworkerだけに絞る。
# ~/.codex/agents/explorer.toml
name = "explorer"
description = "コード探索、ログ確認、仕様照合をする読み取り専門の調査役。"
model = "gpt-5.6-luna"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"
developer_instructions = """
変更しない。結論、根拠、対象パスを短く返す。
"""
# ~/.codex/agents/worker.toml
name = "worker"
description = "対象と完了条件が決まった実装・検証を担当する。"
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
developer_instructions = """
最小差分で実装し、変更した範囲を検証する。
公開、削除、外部送信は親へ確認を返す。
"""
# ~/.codex/agents/architect.toml
name = "architect"
description = "設計判断、複雑な不具合、横断レビューを行う。"
model = "gpt-5.6-sol"
model_reasoning_effort = "xhigh"
sandbox_mode = "read-only"
developer_instructions = """
実装はしない。推奨、根拠、リスクを短く返す。
"""
名前は自由だが、name、description、developer_instructions は必須。役割を広げすぎないほうが、親のCodexも選びやすい。
Solへ上げるのは、迷いが残る仕事だけ
モデルを上げる基準は「大事だから」だけでは弱い。目的があいまい、例外が多い、変更が戻しにくい、LunaやTerraで二度試しても判断が割れる。この4つのどれかがあるときだけSolへ渡す。
- Luna:ファイルを探す、既存の仕様を要約する、候補を分類する、下書きを比較する
- Terra:対象ファイルと完了条件がある実装、テスト、見た目の修正
- Sol:設計の選択、原因が複数ある不具合、公開前の横断レビュー、不可逆な判断
そのまま使える依頼プロンプト

設定を変更してもらうときは、次をそのまま貼ればいい。大事なのは「最小差分」と「触ってはいけない設定」を先に書くことだ。
~/.codex/config.toml を確認して、Luna / medium を既定にしたい。 目的: 軽い調査・分類はLuna、明確な実装はTerra、 設計判断と横断レビューだけSolへ振り分ける。 やること: - 既存設定を読んで、最小差分だけ提案・反映する - explorer / worker / architect のCustom Agentを作る - 調査と設計はread-onlyにする - TOML構文を確認する 変えないこと: - MCP、plugin、project設定 - approval_policy、sandbox_modeなどの権限 - 公開、削除、外部送信 完了条件: - 変更したファイルと差分を短く報告 - 次の新規タスクで効くか確認する方法を示す - 役割の選択基準を一行で残す
仕事を頼むときは、さらにこの一文を足す。
まずLunaで調査する。対象と完了条件が明確ならTerraへ渡す。 不確実・不可逆・設計判断だけSolへ上げる。 選んだ役割と理由を最初に一行で示す。並列化は独立作業だけ、最大3件。
最初から全部へ適用しない。10件だけ試す

設定を保存したら、Codexを再起動して新しいタスクを開く。最初は10件だけでいい。調査の速さ、やり直しの回数、TerraやSolへ上げた理由を残す。うまくいけば50件へ広げ、そこで初めて全体の既定として定着させる。
モデルの名前より、役割・権限・昇格条件が先に決まっていることが大事だ。Lunaが安いからこそ、まず小さく試す。深く考える必要が見えたときだけ、TerraとSolを呼べばいい。
設定項目の仕様は変わることがある。変更前に、公式の Config basics と Subagents を確認してほしい。












