第 16 章 工程实践与未来:agent-first 团队、控熵、造你自己的 harness¶
我们从最内圈的循环,一层层拆到了最外层的运行时。这一章,把所有层装回去——谈三件"全局"的事:一个 agent-first 团队到底怎么运转、怎么对抗代码熵、以及你该怎么造自己的 harness。最后,诚实地聊聊这件事的未来与局限。
一、agent-first 团队:人掌舵,agent 执行¶
回到第 1 章那句 OpenAI 的话:"Humans steer. Agents execute." 用一个 3–7 人小团队、0 行手写代码、产出百万行的产品,他们的工作方式到底变成了什么样?
变化的核心是:人不再在"写代码"这一层工作,而是上移到了"设计环境、明确意图、验收结果"这一层。 具体说,人干三件事:
- 定优先级:决定先做什么、什么重要。
- 翻译意图:把模糊的需求翻成 agent 能执行的、可验收的标准。
- 验收结果:判断做出来的东西对不对、好不好。
而当 agent 卡住时,他们的反应特别值得学。不是"再试一次""换个 prompt",而是问一句:"缺了什么能力,怎么把它对 agent 变得既可见又可强制?" 然后——让 agent 自己把这个能力补上(写那个缺的工具、那条 lint、那份文档)。
这就是 harness engineering 的日常:把每一次 agent 的失败,当成"环境还缺一块"的信号,去补环境,而不是去骂模型。 第 1 章讲的 Harness Engineer、Agent 全栈、FDE 这些新岗位,干的正是这个——工程师的价值,从"写得快"变成了"把环境设计得让 agent 干得好"。
〔配图 1:人与 agent 的分层〕——上层"人":三个动作图标(定优先级 / 翻译意图 / 验收结果)+ 一句"agent 卡住 = 缺能力的信号 → 补环境"。下层"agent 群":在人设计好的环境里大量执行(写代码/测试/文档)。一条粗线分隔两层,标"人掌舵,agent 执行"。底部:"把失败当成'环境缺一块',让 agent 自己补上。"
二、吞吐量改变工程哲学¶
当 agent 的产出速度远超人的审查速度,很多天经地义的工程规矩会反过来。OpenAI 的实践里有几条很反直觉:
- 最小化阻塞式合并门禁:PR 短命、快进快出,不设一堆"必须人工审批才能合"的卡点。
- flake 用重跑而非长期阻塞:测试偶发失败?多跑一次,而不是停下整条线去查。
- 因为在高吞吐环境里,纠正是廉价的,等待是昂贵的——错了大不了再让 agent 改一版,但卡住整个流水线去等人,代价高得多。
但作者也诚实地加了一句重要的警告:这套做法在低吞吐环境里是不负责任的。它成立的前提,是 agent 产出快、纠正成本低。你不能不分场景照抄"少设门禁"——先看你的纠正成本是不是真的够低。 这本身又是一次"反教条":好的实践都是有前提的。
三、控熵与垃圾回收:让品味自动复制¶
全自动也带来一个新麻烦:agent 会复制仓库里已有的模式——包括不好的那些。 久而久之,代码就会"漂移"、长出一堆 AI 味的重复与凑合。OpenAI 一开始靠人工每周五花 20% 时间清"AI slop",结果——不可持续。
他们的解法很有启发性,分两步:
- 把"品味"编码成机械规则(golden principles):把"该怎么写才算好"写成明确、可机械检查的规则(比如"优先用共享工具包而不是手搓 helper""不靠猜数据形状、在边界处校验")。
- 用周期性的后台 agent 做"垃圾回收":定时扫描偏离这些规则的地方,自动开小的重构 PR,大多数一分钟内就能审完自动合。
这背后是一个很美的类比:技术债像高息贷款——持续小额偿还,远比攒着集中爆还划算。 人的品味只被捕捉一次(写成规则),然后被持续地强制在每一行代码上。这正是第 2 章那几十条 deny 级 lint、第 4 章 AGENTS.md 的 doc-gardening agent 在干的事——把"对 agent 可见的才存在"用到极致:连"好品味"都要写下来、机械执行,否则它就会在熵增里被冲散。
〔配图 2:熵 vs 垃圾回收〕——左"放任":一个小雪球(技术债)滚下坡越滚越大,最后变成压垮房子的巨石,标"攒着集中还 = 高息爆雷"。右"持续 GC":一个后台 agent 拿扫帚每天扫一点、开小 PR,雪球始终很小,标"品味写成规则,每日小额偿还"。底部:"人的品味捕捉一次,机器持续强制。" 中文清晰。
四、造你自己的 harness:一份分层检查清单¶
把全书拆过的层装回去,就是一份"自建 harness"的清单。每一层给"最小可用"和"进阶"两档——你可以照着自查现有 agent 缺哪一层:
| 层 | 最小可用 | 进阶 |
|---|---|---|
| 循环(3) | 调模型→执行工具→回灌的 while | 提交/事件解耦、可中断、token 记账 |
| 上下文(4) | 一段系统提示 + 历史 | 片段化拼装、AGENTS.md 当目录、按需注入 |
| 工具(5–6) | 几个手写工具 | 注册表/路由、好规格、补丁式编辑、code mode |
| 能力(7–8) | 内置工具 | 技能渐进加载、MCP 接外部工具、延迟加载 |
| 安全(9) | 一个沙箱开关 | 执行策略 + 三平台沙箱 + 审批分档 + 独立 guardian |
| 长程(10) | 不丢历史 | 压缩/重置、目标、记忆、进度工件交接 |
| 多代理(11) | 单 agent | 按需 spawn、orchestrator、共享状态图 |
| 评估(12) | 跑测试 | 独立 evaluator、评审标准成 skill、做判分离 |
| 观测(13) | 打日志 | 遥测回喂 agent、可观测栈、用完即焚 |
| 运行时(14) | 一个 CLI | app-server 协议、headless、MCP 服务端 |
关键不是一次性全做满,而是——回到第 3 章那句 Anthropic 的话——"先找最简单的方案,需要时才加复杂度":你的 agent 现在栽在哪一层的跟头上,就先补那一层。
〔配图 3:自建 harness 装备清单(可打印)〕——把上面这张表画成一张"装备清单/技能树":从内到外十层,每层一个勾选框,旁边标"最小 / 进阶"两档。顶部一行字:"你的 agent 现在栽在哪层,就先补哪层——别一上来全做满。" 适合打印贴墙。中文清晰。
五、反框架:harness 会随模型一起变¶
最后,必须讲一条贯穿全书的"反教条",否则你会把这本书读成一套要照抄的银弹——那就南辕北辙了。
Anthropic 把它说得最透:harness 里的每一个组件,都编码了一条关于"模型当下做不到什么"的假设。 上下文重置,是因为模型当时有上下文焦虑;evaluator,是因为模型当时不会自查;某个细致的工具说明,是因为模型当时容易用错。模型一变强,这些假设就可能过期。 所以:
- 新模型来了,先做减法:把不再承重的组件拆掉(Opus 4.6 让 Anthropic 删了上下文重置、让很多 evaluator 变多余)。
- 但同时,更强的模型也打开了新的可能:能让你去够以前够不着的、更复杂的任务。
于是 Anthropic 那句话成了全书最好的结尾之一:"有趣的组合空间不会随模型变强而缩小,它只是移动。" harness engineering 不会因为模型变强而消失——它只会不断变换战场。OpenAI 也坦承还在学:一个全 agent 生成的系统,架构如何在数年尺度上保持连贯、人的判断在哪里加杠杆最大,都还是开放问题。
〔配图 4:组合空间在移动,不在缩小〕——一条横轴"模型能力",一片"有趣的 harness 组合空间"的云。左(弱模型)云在偏左;右(强模型)云整体右移(不是缩小)——左边一些旧组件(重置/evaluator)淡出,右边一些新组件(更复杂的自治任务)浮现。底部:"模型变强,先做减法;战场只是移动,不会消失。" 中文清晰。
六、回到开篇¶
绕了十五章,我们回到第 1 章那句话:
模型是商品,harness 是杠杆。
当所有人都能用上同样的模型,真正拉开差距的,是你给模型搭的那套挽具——它能用什么工具、被什么约束、记得住多少、跑飞了怎么纠、跨天怎么接力、做错了谁来判、出了问题你看不看得见、又怎么被调用起来。这十五层,就是那套挽具的全部。
而你刚刚做完的事——逐行读懂一个生产级 harness(Codex)——正是第 1 章那份 DeepSeek JD 写在任职要求里的能力。你不只是读完了一本书,你具备了一项正在被一线团队抢着要的工程能力。
剩下的,是去造你自己的那一套。Humans steer. Now go build your harness.
本章小结¶
- agent-first 团队:人上移到"定优先级 / 翻译意图 / 验收结果",把 agent 的失败当成"环境缺一块"的信号去补环境(且让 agent 自己补)。
- 吞吐量改变哲学:高吞吐下"纠正廉价、等待昂贵",少设阻塞门禁、flake 重跑——但低吞吐环境别照抄,前提是纠正成本足够低。
- 控熵 = 把品味自动复制:把好品味编码成机械规则 + 后台 agent 周期性"垃圾回收";技术债是高息贷款,持续小额偿还。
- 自建 harness:按十层清单自查,先补你现在栽跟头的那层;先简单、需要时才加复杂度。
- 反框架:每个组件都编码了"模型当下的短板",模型变强先做减法;"组合空间只移动、不缩小"——harness engineering 不会消失,只会换战场。
- 回到开篇:模型是商品、harness 是杠杆;读懂一个真实 harness,就是一线团队抢着要的能力。去造你自己的那套。
——全书完。
参考来源¶
方法论与外部观点(本章主源)
- OpenAI《Harness engineering》 — "Humans steer, agents execute"、卡住=补能力、垃圾回收、技术债=高息贷款
- Anthropic《Harness design for long-running application development》 — 每个组件编码模型短板、新模型先做减法、组合空间只移动不缩小
- Thoughtworks / Birgitta Böckeler《Harness engineering for coding agent users》 — guides/sensors、对抗熵的垃圾回收
全书回扣
- 第 2 章 — deny 级 lint 与架构纪律
- 第 4 章 — doc-gardening 与"对 agent 可见"
- 第 10 章 — 纵深防御
- 第 11 章 — 长程接力
- 第 13 章 — evaluator 随模型能力进退
- 第 1 章 — DeepSeek「AI Harness Engineer」JD
注:本章为综述与方法论收束,不依赖单一源码文件;实践建议需按你自己项目的吞吐量、风险与团队规模裁剪。