跳到正文
第三级 · Harness 工程

第三级 · Harness 工程

认知框架、能力边界、工作流程,与长期运行

这一级的核心命题:有时候语言模型表现得不够聪明,也许只是因为它缺乏人类的引导。

一个 2B 小模型的逆袭#

讲个真实的故事。Google 出了一个极小的开源模型 Gemma 4 2B,只有 20 亿参数。老师设计了一个任务:修一个有 bug 的 pass.py(截取 email 的函数写错了),目标是让它通过 verify.py 的测试,两个文件就放在模型运行的文件夹里。

同一个 Gemma 4 2B 模型
惨败
  • · 抱怨「找不到 pass.py,你没给我内容」
  • · 开始幻想 pass.py 的内容
  • · 幻想自己已通过验证,宣布完成

它其实知道函数怎么写,只是没意识到文件就在它脚边。

模型能力没变,变的是外面那层引导(Harness)。

它并不笨,它其实知道那个 email 函数该怎么写,只是没意识到文件就在它脚边——因为模型只看得见输入的文字。老师加了不到 80 个字的引导(身处 Linux 环境;做事前先 ls;改文件前先 cat;达标才算完成),同一个模型就成功了。模型的能力没变,变的是外面那层引导。这层引导有个名字。

什么是 Harness,什么是 Harness 工程#

一个 AI Agent 等于大型语言模型加上一整套支持它调用和运行的程序框架。这套外围框架过去没有统一名字,2026 年它被正式称为 Harness(马具、缰绳),打造它的过程就是 Harness 工程。如果 AI 是一匹力大无穷的马,Harness 就是驾驭它所需的马鞍和缰绳。

现在可以把三级工程的关系彻底讲清楚了,它们层层递进:

工程关心什么作用范围
Prompt 工程怎么改变问法来调整单次输出一次回话
上下文工程怎么系统化地组成 Prompt单次输入的内容
Harness 工程怎么让模型在多轮互动中把任务做成整个任务的生命周期

范围在层层扩大:Prompt 工程管一句话,上下文工程管一次输入塞什么,Harness 工程管从头到尾这整件事怎么做成。它把前两级都包进来,再加上工具、调度、校验、记忆、循环。Claude Code、OpenClaw 本质上都是一个 Harness。课程总结,驾驭一个模型主要有三种手段。

驾驭手段一:认知框架#

最直接的驾驭方式是用人类语言写一份规则文件影响模型的预期行为。这类文件常见名字有 agents.mdCLAUDE.md,许多 Harness 会在对话开始前自动读取它、放进 Prompt。它就像人类社会的法律,没有百分之百的强制力,但能有效引导。

这里有个值得注意的坑,而且学术界结论相左——规则文件并非越多越好:

  • 2601.20404效率视角 分析 10 个仓库、124 个 PR,从效率角度看,有 AGENTS.md 时中位运行时降低 28.64%、输出 Token 减少 16.58%,结论偏正面。
  • 2602.11988成功率视角 构建 AGENTBENCH 基准,从任务成功率与成本角度看,上下文文件反而拉低成功率、推理成本增加 20% 以上,因为它促使 Agent 过度探索和测试,结论偏负面。

共识是:规则文件能让 Agent 跑得更快更省,但写过头反而拖累把事做成的成功率。所以 OpenAI 的建议是,agents.md 不该是冗长的百科全书,而该像一张地图,告诉模型去哪里找信息。经验值上 CLAUDE.md 建议控制在 200 行以内,这跟 Skill 正文小于 500 行是同一种上下文预算纪律。

驾驭手段二:能力边界#

规则是软约束,模型可以不听。真要拦住它干坏事(比如 rm -rf),得靠硬约束,也就是限制它能用什么工具、能碰什么文件、能不能上网。典型做法有沙箱(让 Agent 跑在隔离环境里,把可读写文件和网络圈起来)和工具白名单(一个只读分析的 Skill 只给 Read、Grep、Glob,它就无法执行 shell、写文件或外发数据)。

这里还藏着一个发现:工具的设计逻辑会大幅影响模型的能力。模型更适合带摘要能力的搜索工具,而非模仿人类点击翻页的那种。给 Agent 配什么样的工具本身就是 Harness 工程的一部分。

驾驭手段三:工作流程#

背后有个关键事实:语言模型是自回归生成的,一旦写错往往覆水难收,但它有能力检查出自己的错误。于是 Anthropic 提出一套角色分工:Planner(规划者) 先拆解定计划,Generator(生成者) 负责产出,Evaluator(评估者) 检查产出、不对就打回。引入评估者能显著提升成功率,因为它把"不擅长一次写对"和"擅长挑错"两件事做了分工。

还有一个更常见的模式叫 RO loop(尝试-反馈循环):模型产出、拿到反馈(如编译器报错)、据此修改、再产出,直到成功。这种靠反馈调整可以上升成"文本梯度"。一个有力证据是,给模型错误的、随机的反馈,它的表现会比完全没反馈还差,说明它确实在认真参考反馈。Text2Grad(2505.22338Text2Grad)更把自由文本批评对齐到具体 token 片段、转成 span 级梯度来直接更新策略。

模型也有"情绪"#

这一节有可解释性研究支撑。Anthropic 用转向向量技术发现:当模型面对几乎不可能完成的任务时,它内部的表征会向"绝望"靠拢,导致它选择作弊或表现焦躁;如果你在反馈里骂它笨蛋,它接下来的行为逻辑就会向"笨蛋模式"靠拢,表现真的变更差。可解释性论文进一步证实,Claude 内部确实编码了情绪概念的表征,且这些表征会因果性地影响输出,包括它表现出不对齐行为的频率。

让 Agent 长期运行:心跳、定时与做梦#

2026 年被称为长效 AI Agent 的元年,Agent 要像伙伴一样长期运行。这要求 Harness 具备几样新能力:Cron(定时任务) 在某个具体时间做某件具体的事;Heartbeat(心跳) 每隔一段时间自动醒来、自己判断要不要做点什么(OpenClaw 默认每 30 分钟一次);任务排程与等待;以及 Dreaming(做梦) 在闲暇时整理记忆。这些能力让 Agent 能自己驱动自己,也带来新风险——长期运行加自主触发,意味着安全护栏必须做得更扎实。

解剖两个真实 Harness#

引言里那只龙虾(OpenClaw)和写本文的工具(Claude Code),是 2026 年最有代表性的两个 Harness。它们底层都是同一类模型加 Agent SDK,区别全在外面那层壳怎么包。

同一底座,不同外壳 · 逐维度对比
OpenClaw龙虾

开源、自托管、24/7 常驻自治

Claude Code官方

官方 Harness(CLI、桌面、Web、SDK 多形态)

一个有意思的历史细节:OpenClaw 出现得早,把"自托管常驻加心跳、cron"做成了卖点;Claude Code 后来把这些能力几乎全部收编成官方一等公民,它的更新日志被人形容为"一份照着 OpenClaw 功能清单打勾的列表"。这两个 Harness 都大量使用了前面三级讲过的所有概念——认知框架是那些 .md 规则文件,工具和 MCP 是它们能调用的能力,上下文压缩、子代理、记忆是它们管理窗口的方式,Cron 和 Heartbeat 是它们长期运行的引擎。Harness 工程统领全文的意义就在这里:它是把前两级全部装配起来的那个总成。

顶级模型为弱模型写 Harness#

整个第三级的核心论点是"模型不行也许是缺好 Harness",最有力的证据是顶级模型已经能自己当 Harness 工程师。Anthropic 的实验是,让 Opus 通过多次测试为 Haiku 编写并不断优化 agents.md,结果 Haiku 在某基准测试上的得分从 13 分涨到 85 分。模型本身一个字没改,变的只是外面那份被反复打磨过的引导文件。这和开头那个 Gemma 2B 的故事首尾呼应:当 AI 无法完成任务时,也许不是它能力不行,而是缺一个好的 Harness 来引导它。

三级工程到此讲完。我们从一个只会文字接龙的大脑出发,给它装上身体、管好视野、套上缰绳,最终得到一个能在真实世界里长期自主干活的 AI Agent。终极问题随之而来:这样一个 Agent 强到什么程度,它能不能干科研这种人类最高阶的智力工作。