Harness 的真相:落地不是框架,是一份 800 字的 AGENTS.md(36 次受控实验)
基于 Hermes v0.20.0 实测(2026-08-24,deepseek-v4-flash)。
📖 摘要:Harness 是 2026 年 AI 圈最热的词——「模型是大脑,harness 是手和脚」。但概念人人听过,落地长什么样却很少人见过。这篇文章用 36 次受控实验(3 种写法 × 4 个任务 × 3 轮)揭开真相:harness 落地的最小单元,就是一份 AGENTS.md。对比无约束、精简铁律、结构化三种写法,结构化写法达标率 100%、成本 1.44 倍,而看似稳妥的「精简铁律」反而触发过度验证、成本飙到 2.28 倍。附可复用的写法模板。
导读
- 目标读者:用 AI Agent(Claude Code / Codex / Hermes / Cursor 等)做交付、写过但觉得「约束文件没什么用」的开发者
- 你会得到:AGENTS.md 三种写法的实测对比数据、为什么「铁律」会失效、一套 800-1500 字的可复用写法模板
- 环境声明:实验在 Hermes v0.20.0 + deepseek-v4-flash 上执行,结论对其他 Agent 平台方向性适用
一、业务场景:Harness 概念满天飞,落地没人见过
2026 年,Harness Engineering 成了 AI 圈最热的概念。OpenAI 说「如果推理模型是大脑,harness 就是手和脚」;Terraform 作者 Mitchell Hashimoto 说「每次 agent 犯错,就工程化一个方案,让它再也犯不了同样的错」。概念一套套,人人都能聊两句。
但我们做 Agent 交付时发现一个尴尬的事实:概念好懂,落地难寻。你说 harness 是「环境」「约束」「工具壳」——那它到底长什么样?是一套框架?一个平台?还是别的什么?
很多人以为 harness 是什么高深的基础设施,但 OpenAI Codex 团队和 Hashimoto 的实践都指向一个朴素到近乎反高潮的答案:harness 落地的最小单元,就是一份 AGENTS.md——一个几百字的 Markdown 文件。Hashimoto 给 Ghostty 写的 AGENTS.md,每一行都对应 agent 过去犯过的一次错。
我们决定用实验验证这个「真相」:如果 AGENTS.md 真的是 harness 的落地形态,那「怎么写」就直接决定 harness 好不好用。于是有了这次 36 次受控实验。
二、场景痛点:约束文件写了,为什么没用
我们观察到三个典型失效模式:
- 裸铁律被字面执行。写了「测试要全面」,agent 就真的把每个文件都翻出来测一遍——过度验证,耗时成本翻倍,产出反而变差。
- 约束太长被稀释。几百条规则塞进一个大文件,agent 上下文有限,真正重要的纪律淹没在噪音里。
- 只有要求、没有禁止。告诉 agent「要自测」,但没说「不许跳过编译直接交付」——它照样能在最该拦的地方漏掉。
写约束不是「写得多」,是「写得对」。这促使我们做了一次受控实验,用数据回答:到底什么写法有效?
三、解决方案:落地真相——AGENTS.md 就是 harness 的最小单元
在讲实验前,先建立框架:AGENTS.md 为什么是 harness 的最小单元?
Hashimoto 给 harness 下过一个朴素定义:「每次 agent 犯错,就工程化一个方案,让它再也犯不了同样的错。」 他给 Ghostty 写的 AGENTS.md,每一行都对应 agent 过去犯过的一次错。OpenAI 的 100 行地图哲学同理:AGENTS.md 只当目录和指针,把关键约束钉在顶层。
所以 AGENTS.md 不是「项目说明书」,是错误经验的固化载体——agent 犯过的错,写进约束文件,变成它下次的行为边界。
四、实验设计:36 次受控实验怎么做的
为了排除「感觉」,我们做了对照实验:
| 实验项 | 设计 |
|---|---|
| 环境 | WSL Ubuntu-26.04,Hermes v0.20.0,deepseek-v4-flash |
| 规模 | 3 种写法 × 4 个任务 × 3 轮 = 36 次独立会话 |
| 考卷 | 4 个约束敏感型任务:T1 格式转换 / T2 技能纪律 / T3 写作约束 / T4 代码自测 |
| 三种写法 | A 基线(无约束)/ B 精简铁律(<500 字)/ C 结构化(分节+表格) |
| 评估 | 六维:一次成功率 / 达标率 / 自我修正 / token 成本 / 耗时 / 稳定性 |
五、运行验证:实测结果
5.1 核心对比(36 次实测)
| 写法 | 一次成功率 | 平均达标率 | 平均 token/轮 | 耗时/轮 | 稳定性 |
|---|---|---|---|---|---|
| A 基线(无约束) | 75% | 88.2% | 48.3k(1.00×) | 53s | 高(稳定缺技能纪律) |
| B 精简铁律(<500 字) | 91.7% | 96.1% | 110.1k(2.28×) | 83s | 中(轮次间不一致) |
| C 结构化(分节表格) | 100% | 100% | 69.8k(1.44×) | 64s | 高(三轮全一致) |
5.2 关键发现
- 技能纪律梯度清晰:A 0/3 → B 2/3 → C 3/3 次加载技能。C 写法下 agent 每次都先加载技能再动手——「先加载技能」的铁律真正被内化。
- B 的裸铁律触发过度验证:T2 任务平均消耗 766k tokens(A 的 3 倍!)——写了「测试要全面」它就把全项目翻出来测。C 用「要求+禁止」成对写法,成本可控。
- 事实完整性差异:B 有一次从局部日志推断整体(把「3 变体 36 轮」说成「双变体 24 轮」);C 每次都读完整方案文件、说对。「禁止从局部推断整体」从此写进我们的纪律。
- C 的约束直接体现在输出格式:表格化、来源标注、汇报三要素逐项出现——约束文件管什么,产出就长什么样。
六、落地建议:约束文件写法要素(可直接复用)
实验结论收敛成一套可复用写法(800-1500 字,超过 3000 字稀释上下文):
- 分节:角色 / 执行纪律 / 输出格式 / 禁忌——四节各管一摊
- 纪律表格:要求与禁止成对(
| 纪律 | 要求 | 禁止 |)——只有要求没有禁止,agent 会字面执行成过度行为(B 变体的教训) - 「事实完整」纪律必带:涉及范围/数量/结论的事实必须核对完整来源,禁止从局部信息推断整体
- 分层:项目级约束(AGENTS.md)管输出形态;全局级约束(SOUL/USER/MEMORY)管行为纪律——同样一句话,放 SOUL.md 内化执行(成本 1.59×),放 AGENTS.md 字面执行(成本 2.28×)
- 记忆是信息不是纪律:行为纪律进身份层(触发强),信息(偏好/环境)进记忆层(触发弱)
一个 AGENTS.md 模板片段(真实模板节选):
## 执行纪律
| 纪律 | 要求 | 禁止 |
|------|------|------|
| 技能 | 动手前先加载对应技能 | 禁止凭记忆硬写 |
| 自测 | 写完代码立即执行验证 | 禁止跳过测试直接交付 |
| 事实完整 | 结论核对完整来源 | 禁止从局部日志推断整体 |
## 输出格式
- 中文标题,关键信息用表格呈现
- 汇报三要素:做了什么 / 实测结果 / 遗留问题七、实战坑(实测踩出来的)
| 坑 | 现象 | 修复 |
|---|---|---|
| 铁律被字面执行 | 「测试要全面」→ 全项目翻查,成本 2.28× | 要求+禁止成对;约束聚焦「别做什么」 |
| 约束过长稀释 | 几百条规则,agent 只看开头 | 800-1500 字;每行问自己「删掉会导致犯错吗?」 |
| 行为纪律放错层 | 纪律写进项目文件 → 字面执行而非内化 | 行为纪律放 SOUL/USER(全局),格式要求放 AGENTS.md(项目级) |
| 记忆当纪律写 | MEMORY 写「先加载技能」→ 不触发(0/3) | 纪律进身份层,MEMORY 只写信息(偏好/环境) |
八、启示
回到开头那个问题:harness 落地到底长什么样?36 次实验给出的真相是:落地不是一套框架,是一份 800 字的 AGENTS.md——它的本质不是「写要求」,是把 agent 犯过的错固化成行为边界。而这份文件的写法,直接决定 harness 是可靠的缰绳还是勒脖子的死结:结构化、成对、分层,缺一不可。
概念听得再多,不如亲手写一份。下次 agent 反复犯同一个错时,别急着骂模型,也别急着搜什么 harness 框架。问自己一句:这个错,值得写进 AGENTS.md 吗?如果值得,怎么让它在 800 字内、以「要求+禁止」的形式出现?
这就是 harness 的落地——不在 PPT 里,在你项目根目录那份几百字的 Markdown 文件里。
本文基于真实实测记录撰写(Hermes v0.20.0 + deepseek-v4-flash 环境,101/101b 受控实验数据)。实验环境为 WSL,结论对其他 Agent 平台方向性适用,不构成任何平台的官方结论。
- Hermes Agent 技能治理实录:关掉自动审查,改用 git 审计 + 变更快照 + 每周自检三道防线(v0.20.4 实测)
- Hermes Agent 调教实录(零):AI Agent 靠不靠谱?我用 200 次对照实验告诉你
- Harness 的真相:落地不是框架,是一份 800 字的 AGENTS.md(36 次受控实验)
- Hermes Agent 调教实录(一):AGENTS.md 怎么写,AI Agent 才真的听话?
- Hermes Agent 调教实录(二):给 AI Agent 写记忆的学问——粒度、归属与时机实测
- Hermes Agent 调教实录(三):Agent 技能怎么写才不会被无视?——触发词与体积实测
- Hermes Agent 调教实录(四):AI Agent 交付包怎么配不翻车?——约束叠加的边界实测
- Hermes Agent 调教实录(五):和 AI Agent 多轮对话怎么不跑偏?——8 轮对话链实测
- Hermes Agent 调教实录(六):怎么验收一个 AI Agent?——考卷 + 六维评估实战
- Hermes Agent 调教实录(七):AI Agent 配置七条铁律——200 次实验的结论汇总