高智商领导 + 便宜执行:Codex / Claude Code / Pi 分层子代理配置教程
在 2026 年的 vibe code 编程里,单纯用一个最强模型硬刚所有任务已经不划算了(富哥当然随意)。 用高智商模型当领导,便宜模型当工人应该是目前的不错的省token玩法。 Sol负责判断、拆解、指挥、审核和兜底;Luna grok 负责高吞吐的探索、实现和测试。
本文给出完整可落地的配置方法,重点推荐把配置写在项目级(.codex/、AGENTS.md 等),方便版本控制、团队共享和项目隔离。全局配置只作为个人默认。
所有事情都丢给 Sol,又贵又慢,上下文还容易糊。
核心哲学
- Sol(或等价高智商模型):规划、决策、冲突解决、最终验收、兜底。始终保留最终决策权和外部操作(commit、PR、部署)的控制权。
- Luna(或便宜/快速模型):边界清晰的执行任务、并行探索、实现、测试。
- 闭环:Sol 规划 → Luna 并行干活 → Sol 审核整合 / 兜底。
Claude Code 也可以同理:主会话重模型fable-5,子代理 opus。Pi 还能跨 Codex / Claude 调度。
模板和 skill:
装 skill:
npx skills add Yuri-NagaSaki/subagent-skills -g -y只给 Claude Code:
npx skills add Yuri-NagaSaki/subagent-skills -g -a claude-code -y装完跟 agent 说:按 sol-luna-setup 在当前项目配一下就行。
当然这里并不绝对,因为每个人的项目都不同,你可以让AI读这些skill,让他学会自己配。
为什么现在都在建议这么做?
举两个我自己踩过的情况。
1. 全用 Sol 扫仓库
比如「帮我看看这个 monorepo 里 auth 在哪」。Sol 能搞定,但会读一堆无关文件,token 涨得很快,主会话后面再做决策也变钝。而且由于codex的限制,sol也只有200多K的上下文,会浪费大量的token。
2. 全用便宜模型硬刚架构
边界没写清的时候,Luna 会自己扩 scope:你让它改一个函数,它顺手把旁边模块「整理」了。便宜是便宜,返工不省。
所以比较稳的分工是:
| 谁 | 干什么 |
|---|---|
| Sol(主会话) | 理解需求、拆任务、审 diff、commit / 开 PR |
| luna_scout | 只读:找文件、理依赖 |
| luna_worker | 在指定范围内改代码 |
| luna_critic | 挑问题:正确性、安全、缺测试 |
| luna_tester | 按你说的命令跑测试,回报 pass/fail |
价格
单位都是 每 1M tokens,美元。
OpenAI 在 2026-07-30 下调了 Terra 和 Luna(公告),Sol 没动。
| 模型 | 输入 | 输出 | 说明 |
|---|---|---|---|
| gpt-5.6-sol | $5.00 | $30.00 | 旗舰,7 月 30 日未降 |
| gpt-5.6-terra | $2.00 | $12.00 | 原先 $2.50 / $15,大约降 20% |
| gpt-5.6-luna | $0.20 | $1.20 | 原先 $1 / $6,降了 80% |
| grok-4.5 | $2.00 | $6.00 | xAI 文档:prompt 较短时这档;prompt ≥200k 会更高。缓存输入大约 $0.30 |
| claude-fable-5 | $10.00 | $50.00 | Anthropic 定价页,Fable 5 |
光看输入:以前 Luna 对 Sol 大约 1<5>5>,现在大约 1<25>25>。
所以「领导 Sol、执行 Luna」比 GPT-5.6 刚出来那会儿更划算。Terra 可以当中档日常用;Fable 很强但输出 $50/M。官方的意思 其实我感觉也是多鼓励探索多agent模式,早在fable-5发布的时候就在宣扬这种观点了。
怎么装到自己项目
方式 A:只装 skill(推荐)
npx skills add Yuri-NagaSaki/subagent-skills -g -y然后让 agent 按 skill 写配置。
方式 B:脚本直接生成文件
git clone https://github.com/Yuri-NagaSaki/subagent-skills.gitexport OPENAI_API_KEY="你的key" # 别写进仓库bash subagent-skills/scripts/bootstrap.sh /path/to/your-project大致会多这些:
.codex/config.toml.codex/agents/luna_*.tomlAGENTS.md.claude/agents/scripts/prepare-luna-catalog.sh把 config.toml 里的 base_url 改成你自己的网关。Key 用环境变量。
Codex 项目级配置
项目里的 .codex/ 会覆盖 ~/.codex/ 里同名项。
和项目相关的策略写进仓库,个人习惯放全局。
目录
your-project/├── .codex/│ ├── config.toml│ └── agents/│ ├── luna_scout.toml│ ├── luna_worker.toml│ ├── luna_critic.toml│ └── luna_tester.toml└── AGENTS.mdconfig 示例
model = "gpt-5.6-sol"model_provider = "gateway"model_reasoning_effort = "xhigh"
[features]multi_agent = truemulti_agent_v2 = false
[agents]max_concurrent_threads_per_session = 4default_subagent_model = "gpt-5.6-luna"default_subagent_reasoning_effort = "max"
[model_providers.gateway]name = "Custom Gateway"base_url = "https://your-gateway.example/v1"env_key = "OPENAI_API_KEY"wire_api = "responses"worker 示例
name = "luna_worker"description = "在明确文件范围内实现改动"model = "gpt-5.6-luna"model_reasoning_effort = "max"sandbox_mode = "workspace-write"developer_instructions = """只做交代范围内的改动。尽量小 diff。不要 commit、开 PR、部署。做完说明改了哪些文件、怎么验证、哪里没把握。任务不清楚或做不了就 escalate 回主会话。"""scout / critic 用 read-only。完整模板在仓库 templates/。
AGENTS.md 写清:谁能 commit、什么算越界、失败要不要打回。
问题 1:Sol spawn 不到 Luna
配置写对了也可能遇到:
Unknown model `gpt-5.6-luna` for spawn_agent.Available models: gpt-5.6-sol, gpt-5.6-terra原因是模型目录里 Sol / Terra 常见标 multi-agent v2,Luna 是 v1,V2 侧直接把 Luna 滤掉了。
仓库里有个脚本:
bash scripts/prepare-luna-catalog.sh "$(pwd)/.codex/models-v1.json"生成后把 model_catalog_json 指到这个文件的绝对路径,并保持 multi_agent_v2 = false。
更多说明:docs/sol-luna-catalog-fix.md。
我这边修完之后,Sol 才能正常 spawn luna_scout 并收回结果。
在这之前,只是「两个模型都能单独聊」,算不上 multi-agent。
Claude Code
子代理是 markdown,例如:
---name: luna-workerdescription: 范围明确时改代码、补测试、搜索model: opus---只做明确范围内的事。不要 commit。做完说明结果和不确定点。主会话用你账号里更强的模型就行。
注意:root 下某些高权限模式会直接拒绝,换普通用户。
Fable 5 输出按 $50/M 算的话,让它去全仓库乱翻不太合适,留给真难的设计和终审。
Pi(可选)
如果要在一个会话里同时叫 Codex 和 Claude,可以看 Pi + pi-flow:
pi install npm:@kky42/pi-flow仓库 templates/pi/ 有示例档案。
只做 Codex 项目的话,先把 Sol/Luna 跑顺再加 Pi,省得一次配三套。
一些习惯
- 给工人的说明写清楚:目标、能改哪些路径、不能碰什么、要交什么结果
- 并行,3~4 个够用;别多个 worker 抢同一个文件
- 探索和审查尽量只读;commit 留主会话
- 安全相关别只信便宜模型
- 项目配置进 git,密钥不要进 git
- spawn 列表里没有 Luna 就先修 catalog,再谈并行