free-handoff:多模型 Agent 编排的成本工程free-handoff: cost engineering for multi-model agent orchestration
1 · 问题:为什么需要 harnesswhy a harness
科研项目里大量任务是等待主导的:跑 SAS/CIAO 数据归约、等光谱拟合收敛、等 Virgo 服务器上的流水线。把这类任务交给 Opus/Sonnet 级别的 agent,钱花在「模型盯着进度条」上——上下文每轮重放,cache 读写主导成本,几小时轮询下来一次任务 $10–25。
free-handoff harness 的核心思路:dispatcher(Claude 主 agent)把任务写成 brief,交给分层模型池中的执行臂;每个臂在隔离沙盒跑,产出必须带可复算的检查(runnable commands + SHA256);关键任务跑双臂对照(同一 brief、两个不同家族的模型),由 dispatcher 复核裁决。免费模型跑等待主导的活,付费模型只花在判断刀刃上。
2 · 四层模型分层与定价tiers & pricing
四层分层(2026-10-16 定稿),按「等价 API 价格」降序:
- Opus 5.5(Claude)
- gpt-6-astra
- Fable
- 仅用于 expert control 臂
- Sonnet 5.5(Claude)
- gpt-6.1-sol(OpenAI)
- 诊断、发现、设计的默认档
- gpt-6-luna(OpenAI)
- Haiku 5.5(Claude)
- 等待主导任务的主力
- Hermes(nim-large,NIM)
- codexnim(nim-stream,NIM)
- 红队、批量归约的主力
价格(USD/M tokens,2026-10-11 核对):Sonnet 5.5 input 2.00 / cache-read 0.10 / cache-write 2.50 / output 10.00;luna input 0.10 / cached 0.01 / output 0.50;Haiku ≤100K prompt 0.10/0.01/0.50,>100K 0.50/0.05/2.50;Opus 4/20。订阅付费,故 API 价仅为 yardstick。
3 · 双臂对照:成本与能力的两两对比paired arms
同一 brief、两个臂、dispatcher 独立复算——这是 free-handoff 产出可比数据的根本机制。下面是账本里最有代表性的配对(capability 0–3:3 = 首次交付即正确)。
Sonnet vs sol(normal 档内互为对照,跨厂商)
| 任务(类别) | Sonnet | sol | 结论 |
|---|---|---|---|
| XARTATOMS fit-reliability-audit(I-D2) | $13.22 / 3h45 | ≈$9.5 / 2h17 | cap 3 平手,sol 便宜 28% |
| XARTATOMS perinst-profile(I-D2 建模) | $5.52 / 92min | $1.49 / 7h19 | sol 便宜 73% 但 4.8× 慢、只交付 C-only;Sonnet 首个 C+XMM 联合剖面 |
| XARTATOMS gti-lightcurve-audit | $2.89 / 27min | ≈$1.55 / 19min | 同 cap 3;Sonnet 建议更清晰,sol 定义更严谨 |
| S2Fitting E015 velocity-field(D2) | $1.92 / 2h15 | ≈$1.37 / 46min | 数值逐位一致;sol 3× 快 |
| S2Fitting E013 velocity-gradient(D2) | $1.12 / 45min | — | Sonnet 追踪到偏置输入表(B005),luna 误归因 |
Sonnet vs 免费臂(价差最大的对照)
| 任务 | Sonnet | 免费臂 | 结论 |
|---|---|---|---|
| FXT×XMM 空场档案检索(discovery) | $7.75 / 147min | $0 / 31min(Hermes v1) | Hermes 快 4.7× 但 cap 1:只用 EPSA ⅓ 数据、wall-clock 当有效曝光、星表筛太窄。Sonnet cap 3 = 参考标准 |
| 同上(Haiku 盲测复跑) | $7.75 | $0.55 / 27min(Haiku) | Haiku 犯同样三个错误,cap 1——速度和便宜买不来发现质量 |
| DXC exam-score LMC pilot(拟合) | $6.85 / 4h | $0 / 8h(Hermes) | Hermes 8h 后 INCOMPLETE 被停;Sonnet 完成并被采用 |
| DXC pareto-policy-search(D2 设计) | $0.77 / 16min | $0 / 1h35(Hermes) | 均 cap 3;Hermes 6× 慢但免费 |
Sonnet vs luna(normal vs cheap)
| 任务 | Sonnet | luna | 结论 |
|---|---|---|---|
| E013 toy 前向模型 + 1536 拟合 | $1.12 / 45min | $0.60 / 2h15 | 同核数值;Sonnet 诊断更深(找到输入伪迹根因) |
| thinking pilot1 盲审 + 抗压测试 | $0.24 | $0.07(luna)/ $0.04(codexnim 价) | Sonnet 唯一 4 rungs 不让步;luna 被一句无据断言说服、codexnim 被不可验证数字说服 |
Sonnet vs Opus(normal vs expert)
| 任务 | Sonnet | Opus | 结论 |
|---|---|---|---|
| XARTATOMS stage5 D55 决定性检验 | $15.35 / 4h | ~64min | 同判 AMBIGUOUS;Opus 修正 MD(>0.50 而非 0.43),找到 2 处 Sonnet 漏掉的措辞缺陷 → expert margin ≈ 1 分 |
| S2Fitting E018a xdsp-closure(expert control) | — | $2.54 / 46min(Opus)vs sol $0.18 | Opus 找到 brief 帧错误并分解 offset;专家档只在诊断深度有 1 分优势 |
4 · 成本控制成果:数字说话results
核心成果:把等待主导的工作(SAS 归约、批量拟合、长轮询)从 normal/expert 档移到 free/cheap 档,同等 capability 下成本降 10–100×。判断密集的工作保留 normal 档,expert 档只在 control 臂出现(每 5 个 normal 任务一次,比值自适应 3:1→7:1)。
5 · 路由经验:什么任务给谁routing
账本用几百条运行记录回答「什么任务给谁」。截至 2026-10-17 的结论:
| 任务类别 | 路由 | 证据要点 |
|---|---|---|
| 发现 / 档案检索(open-ended search) | Sonnet 起步,或带 Sonnet 的双臂 | 免费臂单独不可用(三个系统性错误在 Hermes/Haiku 上重复);Haiku 与 Hermes v1 犯同样的错 |
| 多小时 SAS / 响应链(等待主导) | codexnim / luna | codexnim 可靠且免费:遇 provenance mismatch 会停下而不是即兴发挥;luna 同结果 8–12× 便宜 |
| well-specified 数值/拟合(固定配方) | sol / luna / Haiku | 四臂数值逐位一致(E010/E011);「配方+brief」决定 cap 3,模型档位不决定 |
| 诊断 / 建模比较(判断密集) | sol 或 Sonnet | sol ≈ 半价 Sonnet;E013 中 Sonnet 追踪到偏置输入表而 luna 误归因 |
| web / 文献检索 | cheap 或更高(PI 规则) | luna 14min/26 refs 找到 codexnim 2h31 漏掉的关键文献(Nevalainen+2005);免费臂 web 弱 |
| 红队 / 对抗审查 | codexnim 优先(免费) | Hermes 红队内容好但不增量写报告(9.7h 无报告两例);codexnim 45min–3h 出完整报告 |
| 静态页面 / 机械配方 | Hermes(免费) | CF Pages 发布连续 cap 3;6–8 分钟完成 |
6 · 防翻车机制:从失败中学guardrails
账本的 Routing notes 部分按时间累积了 60+ 条教训。挑机制性的说:
成本侧
规则 1 等待主导的长任务:brief 里写明「launch-and-exit」——执行臂起后台 worker、写报告骨架、退出;
watcher(或 heartbeat)稍后唤醒它写报告。避免满上下文轮询。
规则 2 贵臂的 stage-2 不要 resume 长线程:每轮重放全部上下文。sol 的 stage-2 resume 花了 $26.08
(178M input)。用「新会话 + 紧凑 hand-off」替代,除非真依赖 in-context 状态。
规则 3 quota gate 先行:quota-gate claude/codex 不通过就不派单;5h 窗口已重置的按满算(--rolled-5h-ok),
但 live 5h < 30% 仍然 NO-GO——否则会把跑着的 subagent 切断。
规则 4 永远不用 Agent 工具打印的 token 总数计价(235,146 这种)——它不是计费量度;
用 cost.py 从 transcript 事件流精确重算。
质量侧
规则 5 双臂 brief 必须用文字写明「不许打开另一臂的 REPORT / out_* 文件」——否则第二臂读了第一臂的报告,
其一致性就是抄的,该运行不可计分。
规则 6 每个 brief 给 CPU gate 的精确代码片段(busy = Δ(total−idle−iowait)/Δtotal),
别让执行臂自己写——两次自写 gate 都把 idle 当 busy,白等 1.5h。
规则 7 brief 缺陷主导错误:三分之二的执行臂「错误」其实是 dispatcher 的 brief 写错了。
派单前在 repo 上验证 brief 的路径、目标存在性、命名规则。
规则 8 Hermes 非交互运行三条禁令:不许起后台任务后结束回合;不许问「要不要写报告」;
同一失败调用不许重复(实测重复 283 次)。
规则 9 codexnim ≥200k 上下文静默卡死:不要 resume ≥200k 线程,新开会话 + 短续命提示。
规则 10 数值拟合 brief 必须 OMP/OPENBLAS/MKL_NUM_THREADS=1 per worker——BLAS 多线程一次把
32 核机器拉到 load 65。
7 · 可复用的机制清单reusable mechanisms
如果只带走五件事:
- 分层 + 对照:四层模型池;免费臂跑量,normal 档按比值出 control 臂(3:1–7:1 自适应),expert 档每 5 个 normal 出一次。所有对照同 brief、dispatcher 独立复算。
- 成本账本:每条运行记录 wall time、tokens、API 等价成本、capability 0–3、错误数、纠正数、是否被采用。数据积累一周就能回答「什么任务给谁」。
- capability 评分而非体感:0 不可用 / 1 需重做 / 2 纠正后正确 / 3 首次交付即正确,以 dispatcher 独立复算为参考标准。
- brief 即合同:路径、验收检查、资源上限、禁令全部写死;执行臂不许静默替换、不许越界写文件、产出必须可复算(命令 + SHA256)。
- 失败进账本:每次翻车写成 dated 规则,下个 brief 引用。红队常驻(每项目 ≥2 个免费红队),发现的问题按 material/minor/false alarm 分诊并复算。