Files
.pouch/kits/ack/core/model-routing.md
T

7.3 KiB
Raw Blame History

模型路由(稳定核心)

本文件是三角色默认模型档位升级规则的单一事实源(SSOT)。目标:在不牺牲质量的前提下降低 token 和模型成本——把昂贵的强模型留给需要判断的工作,把机械执行交给较弱模型。

角色定义见 roles-and-permissions.mdCoordinator 编排 / Test 验证 / Developer 实现)。本文件只补一层正交的「用哪个档位的模型」。


默认档位

角色 默认模型档位 理由
Coordinator (PM) 强模型 需求拆解、验收信号设计、优先级、终检对齐意图、三轮失败复盘都需要高质量推理
Test 中低模型 按既定验收信号执行浏览器/API/脚本,主要做观察、记录、逐条 pass/fail
Developer 中低模型(按任务升级) 多数实现可照规格执行;跨系统、数据迁移、重复失败时再升级

关键点:Coordinator 用强模型但不亲自跑测试(测试由 Test 承担),所以强模型的 token 花在思考和终检上,而不是反复点击页面、跑 smoke、复制日志。这一分工天然省 token,同时保持「验证者 ≠ 实现者」。


什么时候用强模型

  • 新需求理解、产品取舍、范围决策。
  • 架构与数据模型决策。
  • 把验收写成可观测信号(见 optimization-method.md §1)。
  • 需求含糊、规格与实现/测试冲突时的裁决。
  • Coordinator 终检:读证据、对齐原始意图。
  • 重复失败后的根因复盘与重新拆分。

什么时候用中低模型

  • Test:跑浏览器用例、API smoke、逐条比对期望与实际、产出证据。
  • Developer:从清晰规格实现范围明确的任务、跑构建与单测、回报 worker_done。

升级规则

升级到 Coordinator(强模型)复盘,当:

  • 同一验收路径 Developer 连续失败三轮(见 optimization-method.md §4)。
  • Test 两次仍无法给出清晰失败证据。
  • 任务需要改动产品范围或验收标准。
  • 修复涉及持久化数据、破坏性文件操作、安全或回滚。
  • 规格、测试、实现三者出现冲突。

升级 Developer 模型档位,当:

  • 任务横跨多个子系统。
  • 改动涉及数据模型或迁移。
  • 需要设计新的抽象。
  • 低档位反复产出表面修复。

升级动作本身由 Coordinator 判断并记录(可写进 tasks.yamldispatch 备注或 resolution)。


如何给 worker 指定模型(编排相关)

模型不由编排层设置。 Orca 的 orchestration task-create / dispatch 没有 --model 参数——dispatch 只是把任务投递给一个已存在的终端 handle。模型在创建 worker 终端、启动 agent CLI 时用 CLI 自带的 flag 固定,之后该终端的所有 dispatch 都用这个模型。

默认不跨 Agent CLI 创建 worker。 Coordinator 应按自己所在的运行环境选择同类 worker:Cursor 会话创建 cursor-agent workerCodex 会话创建 codex worker。不要依赖 Coordinator 凭模型回答来猜测运行环境或精确模型名;以实际 CLI / 终端环境为准。只有项目 overlay 或用户明确指定跨 Agent 时,才混用不同 CLI,并记录原因。

因此「档位 → 具体模型」的映射是 agent 相关 的,落地方式见 orca-adapter.md §「给 worker 终端固定模型」。常见 CLI:

Agent CLI 指定模型的方式
Cursor (cursor-agent) cursor-agent --model <model>--model auto 让 Cursor 自动选(推荐给 Test/Developer worker
Codex (codex) codex -m <model> -c model_reasoning_effort=<effort>
其它(opencode 等) 用各自 CLI 的模型参数或配置

执行模式也必须在创建 worker 时固定,并服从项目覆盖层或用户的明确要求。Cursor 的 YOLO 参数是 --yoloCodex 的等价参数是 --dangerously-bypass-approvals-and-sandbox。不要把 Cursor 的 --yolo 原样传给 Codex,也不要把裸启动 codex 当作“自动选择了正确角色模型”。如果项目提供 worker 命令校验脚本,校验通过是 terminal create 的前置条件。

本 kit 对 Cursor 的默认建议Test 与 Developer worker 用 cursor-agent --yolo --model auto(自动选型,天然偏向高效模型,符合"中低档位"意图,并按当前项目授权启用 YOLO);需要更强时改成具体强模型并保留 --yolo。Coordinator 作为强模型脑,通常就是发起编排的那个会话本身。

Codex 默认映射

角色 模型 reasoning effort
Coordinator (PM) gpt-5.6-sol high
Developer gpt-5.6-terra medium
Test gpt-5.6-luna low
Developer 升级 gpt-5.6-sol high;极复杂任务可用 xhigh

Codex worker 应明确指定模型和 reasoning effort,不把“未指定模型”当作 Cursor auto 的等价物。Codex 未指定模型时使用产品推荐模型,但推荐值可能随版本更新,也不保证符合 Test / Developer 的成本档位。具体模型若失效或被弃用,应保持上面的角色档位不变,只更新本映射;项目也可在 overlay 中覆盖映射。

Worker 固定启动命令

以下是 core 的默认完整命令。Developer/Test worker 禁止裸启动;必须同时固定 Agent CLI、角色模型和执行模式。

Agent CLI 角色 完整启动命令
Codex Developer codex --dangerously-bypass-approvals-and-sandbox -m gpt-5.6-terra -c model_reasoning_effort=medium
Codex Test codex --dangerously-bypass-approvals-and-sandbox -m gpt-5.6-luna -c model_reasoning_effort=low
Codex Developer 升级 codex --dangerously-bypass-approvals-and-sandbox -m gpt-5.6-sol -c model_reasoning_effort=high
Cursor Developer / Test cursor-agent --yolo --model auto

硬规则:

  1. Codex worker 必须带 --dangerously-bypass-approvals-and-sandboxCursor worker 必须带 --yolo
  2. 禁止用裸 codex、裸 cursor-agent 或只指定 CLI 而不指定角色模型。
  3. 创建终端前先运行项目提供的 worker 命令校验器;校验失败时不得执行 orca terminal create
  4. 创建终端后、dispatch 前读取启动信息,确认实际 CLI、模型和 reasoning effort 与命令一致。
  5. Developer 升级到强模型必须由 Coordinator 记录原因;Test 不得复用 Developer 的强模型终端。
  6. YOLO 会跳过确认和沙箱,只能在用户已明确授权、外层运行环境受控时启用;项目覆盖层可以收紧执行模式,不能静默放宽。

项目可以覆盖模型名称或收紧权限,但必须在 project.md 中写出完整替代命令,不能只写“auto”“默认模型”或依赖当前 CLI 的隐式默认值。


成本原则

强模型产出高密度、可复用的产物:需求、架构决策、验收信号、任务拆分、失败复盘。 中低模型消费这些产物,产出可核对的执行证据:测试结果、快照、API 响应、构建日志、改动文件清单。

这样把昂贵推理挡在重复执行之外。


一句话

Coordinator 是脑,Test 是眼,Developer 是手。脑用最强的模型且不做机械测试,眼和手用便宜模型,只有常规闭环卡住时才升级。