这个 1100 星的开源项目,把 Agent 的工程化讲透了
Ryan Lopopolo 把 harness engineering 写成了选集+实战手册+Agent 上下文包,一周拿下 1139 星。它不是炫技,而是一套让 Agent 真正能落地的方法。

适合:需要让 Agent 稳定产出可验收结果的工程师和团队负责人。
先说结论
Harness engineering 不是新概念,但 Ryan Lopopolo 的 lopopolo/harness-engineering 第一次把它整理成了一份能直接喂给 Agent 的工程手册。1139 颗星说明一件事:大家缺的不是 Agent,而是让 Agent 不跑偏的“缰绳”。
这个仓库的本体是一份 anthro-harness 风格的选集,加上配套的实战手册和 Agent 上下文包。它不教你写花哨 prompt,而是告诉你,怎么把任务、约束、工具、验证绑成一套可复用的工程结构。
真正的问题
多数团队用 Agent 写代码、改文档、做分析时,会反复掉进同一个坑:模型很聪明,但它不知道你这次到底要什么。给它一份 README,它能洋洋洒洒写三千字;可你要的那条边界、那个测试、那个返回值,没人告诉它,它就默认瞎猜。
这就是 harness 的意义。Lopopolo 把这件事拆得很直白:
- 任务边界:Agent 在哪一步停下、哪些动作禁止
- 工具契约:哪些函数可调、参数怎么传、副作用是什么
- 验证回路:跑通什么算成功,失败时如何回退
- 上下文边界:哪些事实必须带进去,哪些只会让它分心
这套结构不是写给人看的散文,是写给 Agent 看的合同。
怎么做更省力
上手这个仓库不用从零搭脚手架。三步就够:
第一步,clone 仓库,把里面的 anthology 和 field guide 读一遍。别跳着读,作者把每一节的来龙去脉都写清楚了,跨过就容易踩坑。
第二步,挑一个你最近让 Agent 干过的真实任务,照着仓库里的模板改写成结构化上下文。这里有个小窍门:先把你对 Agent 的口述要求拆成“目标—约束—验收”三段,再对应填进模板。Lopopolo 反复强调,harness 的价值在于把模糊期望翻译成可验证条款。
第三步,把改写好的上下文当作 Agent 的 system prompt 或者首条 user message 喂进去,跑两轮看效果。如果跑出来和你预期差太远,问题大概率出在验证回路——也就是你没告诉它“成”长什么样。
如果团队已经在维护多套 prompt 模板,可以用需求拆解专家把任务先拆成场景、决策、风险和验收清单,再交给 Agent,省掉反复返工的成本。
哪些坑要避开
| 常见误用 | 实际后果 | 修正方向 |
|---|---|---|
| 把 harness 当成 prompt 美化 | 输出变长但不收敛 | 只补齐缺失的约束和验证条件 |
| 一上来堆几十条规则 | Agent 选择困难,开始挑软柿子捏 | 优先级排序,硬约束放最前 |
| 只写“要做什么”,不写“别做什么” | Agent 越权调用工具或写出测试外内容 | 显式列出禁止动作和越界处理 |
| 验证只靠肉眼 | 一次能看,十次就开始漏 | 至少加一条可机器执行的断言 |
最后一条尤其关键。Harness 写得再漂亮,没有一条机器能跑的检查,它就只是文档,不是工程件。
现在就能动手
今晚就能做的三件事:
1。 去 GitHub 搜 lopopolo/harness-engineering,star 之后花 20 分钟通读 README 和 docs/ 目录,记录下你最想复用的一段结构。 2。 选一个你最近失败的 Agent 任务,按“目标—约束—验收”重写一遍上下文,再跑一次,对比结果。 3。 把这次重写前后的 prompt 整理成两份对照,丢进团队的 prompt 库,下次直接套用,别再从零开始想措辞。
判断标准很简单:Agent 第一次执行就能命中验收条件,这条 harness 就值得复用;跑三轮还在原地打转,就回去补验证回路,别在 prompt 上继续堆形容词。