AI 工程实践

给野马套上缰绳:Agent Harness 工程实践

从范式理论到钉钉 AI 招聘的真实落地 —— 瓶颈不在模型够不够聪明,而在我们有没有把它"装"好。

阿里云开发者 · 2026-06-30 · 阅读原文

本文解读一篇来自阿里云钉钉团队的工程实战长文。原文系统阐述了 Harness Engineering(驾驭工程)范式,并以悟空 AI 招聘 Agent 为案例,展示从"全能通才 Agent"到"2 Agent + N Skill 专才架构"的改造全过程。适合所有正在被 Agent 不可控行为困扰的开发者和工程管理者阅读。

Quick Read

最值得先知道的几件事

Agent = Model + Harness

这个公式是全文的基石。模型负责推理,Harness 负责"剩下的所有事情"——工具系统、上下文管理、权限控制、反馈回路、记忆与协作。优化 Agent 的真正杠杆在模型之外。

重要性:它彻底改变了优化方向——过去大量精力放在换更强模型,但真正的瓶颈在 Harness。

不换模型,排名 30 → 5

LangChain 在 Terminal Bench 2.0 实验中,仅通过优化 Harness(自我验证 + 追踪 + 文档),得分从 52.8 提升到 66.5,排行榜从第 30 位跃升至第 5 位。

重要性:一手可查的数据证明 Harness 的回报曲线比换模型陡得多。

四条反直觉铁律

上下文越少越好、专才 Agent 赢过通才、状态写文件不塞上下文、约束写成 Linter 别写文档。每一条都跟工程师直觉相反,但都是生产环境踩坑后的结论。

重要性:这是 Harness Engineering 的"心法",后文所有工程模式都从这四条衍生。

悟空 AI 招聘:真实落地案例

钉钉企业级 Agent "悟空" 从"全能招聘 Agent"(13 工具 + 600 行 Prompt)重构为"2 Agent + N Skill"专才架构,端到端准确率从达不到上线门槛到稳定超过上线门槛。

重要性:不是理论推演,而是生产环境实测——四条铁律在一个真实系统里逐条落地。

Agent 数量不超过 3 个

团队一度堆到 6 个 Agent,编排层开始"选错 Agent",错误率回升。把多余 Agent 下沉为 Skill 后问题立刻消失。Agent 是昂贵的,Skill 是廉价的。

重要性:来自血泪经验的实操阈值,直接可复用。

对外说话的 Agent 必须接硬护栏

招聘沟通 Agent 是唯一对外发消息的 Agent,团队给它套了三层硬护栏(白名单工具、Linter 拦截、另一个 Agent 审稿),事故率从"每周一两次"降到"记不清上一次是什么时候"。

重要性:企业级场景的底线——Prompt 可以漏、模型可以错,合规底线不能破。
Core Thread

文章核心脉络

文章的论证从开发者的共鸣痛点出发,经过范式理论和铁律心法,最终落到真实工程案例和未来趋势判断。以下是完整的推理链路:

痛点共鸣

凌晨两点 Agent "自信"完成任务却删掉了三个兼容分支、上下文爆炸、工具选择错误、死循环修复 —— 这是当下开发者最普遍的痛。瓶颈不在模型,在"装配"。

范式定义

引入 Agent = Model + Harness 公式和三代范式跃迁(Prompt → Context → Harness),提出四条反直觉铁律和六大工程模式作为 Harness 工程的核心方法论。

实战验证

以悟空 AI 招聘 Agent 为案例,先展示"全能 Agent"的失败(违反铁律一和二),再展示"2 Agent + N Skill"专才架构的成功改造,四维度对比全胜。

趋势判断

Agent 工程师取代 Prompt 工程师、A2A 协作协议、Agent OS 化、模型与 Harness 接口标准化 —— 每条趋势都标注了可证伪条件。

Deep Dive

深度解读

三代范式跃迁

从话术到环境 作者观点

文章将 AI 工程的进化划分为三代:第一代 Prompt Engineering 关注"怎么把话说清楚";第二代 Context Engineering 关注"怎么给 AI 喂对信息";第三代 Harness Engineering 关注"怎么让 Agent 可控地工作"。

作者用了一个生动类比:Prompt 是对马喊话的技巧,Context 是给马看的地图,Harness 是给马造高速公路并配护栏、限速牌和加油站。这个类比的核心洞察是——关注焦点完成了从"话术"到"环境"的彻底跃迁。

文章依据:Mitchell Hashimoto 博客 [1] 系统阐述 Harness Engineering 范式;LangChain 官方博客 [2] 将 Agent = Model + Harness 作为标题级论断。业内常被引用的类比:模型是 CPU,Harness 是操作系统。

影响:对于正在投入大量资源"换更强模型"的团队,这篇文章提供了一个认知转向——真正的杠杆位置一直在模型之外,在 Harness 的工程化程度上。

四条反直觉铁律

Harness 的心法 作者观点 + 实战总结

铁律一:上下文越少越好。工程师本能认为信息越多决策越准,但上下文是稀缺资源,会被污染、会相互干扰、会让模型在工具列表里"逛超市"。文章强调不存在放之四海皆准的"百分比阈值",但给出了明确方向:把上下文当 Code Review 一样精挑细选。

铁律二:专才 Agent 永远赢过通才 Agent。核心经验法则是"Agent 是昂贵的,Skill 是廉价的" [3]——能用 Skill 解决的就别新增 Agent。LangChain Terminal Bench 实验中,将任务拆给专门 Sub-Agent 并只装载必要工具,是排名跃升的关键改动之一。

铁律三:状态要写文件,不要塞上下文。上下文是易失存储,文件系统才是持久内存。Workspace 是真相,Context Window 只是当前工位。文章建议把 Workspace 当成"Agent 的 Git 仓库"。

铁律四:能写成 Linter 的约束,别写成文档。文档只是"建议",Linter/CI 才是"强制"。Mitchell Hashimoto 在 Ghostty 项目中的实践:AGENTS.md 每一条规则背后都对应一个真实失败案例,能写成静态检查的规则绝不停留在自然语言。

文章依据:铁律一引用了业内多团队实测方向(但承认具体阈值因模型差异很大);铁律二直接引用 LangChain 实验 [2] 和专家博客 [3];铁律四引用 Mitchell Hashimoto 的 Ghostty 实践 [1]。

影响:这四条铁律对所有使用 Agent 的团队都有直接指导意义。它们的核心共性是:把"靠模型自觉"替换为"靠工程强制"。

六大工程模式

从心法到招式 行业实践汇总

文章将铁律展开为六个可操作的"设计模式":

模式 1:双阶段架构(Init + Exec)。Initializer Agent 理解任务并写入 plan.md,Executor Agent 读取 plan.md 按步执行。两者不共享 Context Window,只通过 Workspace 文件接力——任务可以跨多次会话延续。

模式 2:工具签名即文档。工具名是动词短语(query_calendar 而非 tool_03),参数 schema 每个字段带 description 且说清何时用何时不用,返回值结构稳定。LangChain 实验证明仅改善工具描述就能带来可观准确率提升。

模式 3:Sub-Agent 隔离。每个 Sub-Agent 有独立 Context Window,只看到自己需要的工具,主 Agent 只接收结构化输出而非中间思考。

模式 4:上下游反压。Linter 的错误信息本身就是上下文工程——不只说"违反规则 X",而是解释"为什么这个规则存在、正确做法是什么",让 Agent 读到错误后能自我修正。

模式 5:智能体审智能体。Reviewer Sub-Agent 只看 git diff + rules,角色设定为"怀疑态度的 Senior Reviewer",对 Main Agent 产出一无所知以避免自我合理化污染。

模式 6:熵管理与文档园丁。后台 Agent 定期扫描过期文档、检测架构漂移、提交清理 PR,持续小额偿还技术债。

文章依据:模式 1 引用 Anthropic Claude Code 实践;模式 2 引用 LangChain [2];模式 4-5 引用 Cursor/Cline 内置反馈回路实践。六大模式均标注为"被多家团队在生产环境验证过"。

影响:这是一份可直接"抄"的设计模式手册。每个模式都对应明确的读者问题和解决路径。

悟空 AI 招聘实战

从全能 Agent 到专才架构 团队实测数据

第一版(失败):一个全能招聘 Agent,System Prompt 写了 600+ 行,挂载 13 个工具(fetch_resume、parse_pdf、score_match、send_dingtalk_msg、query_calendar、book_room 等)。结果:RPA 跑到一半 Agent "顺手"去回复候选人导致上下文爆炸;10+ 工具里选错工具概率显著偏高;Prompt 第 400 行模型已忘了开头"不要主动发 Offer"的约束;出错时回滚一次要查 2 小时日志。

第二版(成功):按"Agent 是昂贵的、Skill 是廉价的"原则重构为 2 Agent + N Skill 架构。悟空作为 Orchestrator 负责任务拆分和上下文调度;人岗匹配 Agent(RPA 专才,Prompt 80 行,4 个工具)负责 JD 匹配和批量打分;招聘沟通 Agent(聊天专才,Prompt 90 行,5 个工具)负责候选人对话和约面;N 个原子化 Skill(每个 = 一个函数 + 明确签名)负责具体操作;Workspace 文件作为真相之源。

文章依据:所有数字(准确率、上下文消耗、工具数量)均来自团队在内部环境下的实测,文章声明"仅代表本场景"。相对评价为"改造前 vs 改造后"对比,不代表行业基准。端到端准确率从"达不到上线门槛"变为"稳定超过上线门槛"。

影响:这个案例的价值在于它不是理论推演——四条铁律在一个真实的企业级系统里逐条对应、逐条验证。特别是"悟空只调派单这一个动作"的设计,把"50 选 1"拆成了三道"5 选 1"。

三条血泪经验

踩坑换来的教训 作者观点

经验一:Agent 数量不超过 3 个,Skill 可以无限加。团队一度堆到 6 个 Agent(日报 Agent、简历库 Agent、Offer Agent、超时预警 Agent 等),编排层开始"选错 Agent",错误率回升。把后面几个全部下沉为 Skill,问题立刻消失。Agent 数量本身也是上下文成本。

经验二:RPA + Agent 接缝处要做"事务边界"。引入强制性事务文件:RPA 开始时写 rpa_lock/{batch_id}.json(state: running),每完成一条追加进度,结束时标记 done。任何中断下次启动读 lock 文件从断点续传。对应铁律三。

经验三:聊天 Agent 必须接硬护栏。招聘沟通 Agent 是唯一对外发消息的 Agent,套了三层硬护栏:白名单工具(只能调 send_dingtalk_text/template)、Linter 拦截(敏感词/合规规则)、第二个 Agent 审稿(独立 Context 判断是否冒犯候选人/暴露薪资/暗示录用)。事故率从每周一两次降到"记不清上一次是什么时候"。

文章依据:三条经验均来自悟空 AI 招聘系统的数月运行沉淀,作者明确声明"不是理论推导,而是踩坑换来的"。事故率下降为团队自述数据。

影响:对任何对外交互的 Agent 系统,这三条经验直接可复用。特别是"对外说话和动用户数据的地方,硬护栏要早一步到位"。

未来趋势判断

四个方向 + 可证伪条件 趋势判断/推测

趋势一:从 Prompt 工程师到 Agent 工程师。Prompt 工程师卷的是话术(可替代性强),Harness 工程师卷的是系统(上下文设计、工具签名、反馈回路、状态管理)。可证伪条件:12 个月内 Prompt 工程师岗位数量重新增长且薪资中位数显著回升。

趋势二:从工具调用到 Agent 协作协议。MCP 标准化 Agent 与外部世界的接口,下一步是 A2A(Agent-to-Agent)协议,使多 Agent 系统像微服务一样工业化。可证伪条件:两年内无主流 SDK 采用的 A2A 草案。

趋势三:从单 Agent 到 Agent 操作系统。Agent 系统是一种新的计算操作系统——用户交互层是 Shell,编排层是 Scheduler,能力层是系统调用,Workspace 是文件系统,MCP 是设备驱动。可证伪条件未显式给出。

趋势四:模型与 Harness 接口标准化。工具 Schema 标准、上下文交换格式、Sub-Agent 调用协议将逐步建立,换模型可能像换数据库引擎一样简单。可证伪条件未显式给出。

文章依据:作者明确声明"基于当前趋势的一组判断,不是预言",并为前两个趋势提供了可证伪条件。趋势三引用了"Agent OS"类比,为行业常见论述。

影响:趋势一和二对职业规划和技术选型有直接参考价值。标注可证伪条件本身是"资深工程判断和预言式断言的分水岭"。

Concepts

关键概念解释

Harness(驾驭层)

Harness 直译是"马具"。在 Agent 系统中,它指围绕模型构建的所有工程基础设施:工具系统、上下文管理、权限控制、反馈回路、记忆与协作机制。Mitchell Hashormap 提出:每当 Agent 犯错,就工程化一个解让它不再犯同样的错——这就是 Harness Engineering 的全部精神。如果把模型比作一匹野马,Harness 就是缰绳、马鞍、护栏和高速公路。

Workspace(工作空间)

Workspace 是 Agent 系统中的持久化存储层,通常以文件系统形式存在。它不是"某一层",而是所有层次共享的状态基座。任务中间结果、Agent 间协作、跨会话延续、审计回放都通过 Workspace 进行。文章将其比作"Agent 的 Git 仓库"——每一步操作都可回放、可审计、可断点续传。在悟空 AI 招聘中,Workspace 存储候选人状态、RPA 进度、聊天历史和面试约定。

MCP(Model Context Protocol)

MCP 是模型上下文协议,用于标准化 Agent 与外部工具/数据源的接口。文章将 MCP 比作 Agent OS 的"设备驱动"层。它的崛起意味着 Agent 与外部世界的接口正在被标准化,下一步将是 Agent 之间的协作协议 A2A(Agent-to-Agent)。

Sub-Agent 隔离

一种 Harness 设计模式:将复杂任务拆分给专门的子 Agent,每个 Sub-Agent 拥有独立的 Context Window(不污染主上下文),只看到自己需要的工具(避免工具选择空间爆炸),主 Agent 只接收结构化输出(不接收中间思考)。核心理念是"隔离"而非仅仅"拆分"。

AGENTS.md

一个放在代码库根目录的 Markdown 文件,用来告诉 AI Agent 这个项目的约定、编码标准、架构规则和工作流偏好。Mitchell Hashimap 在 Ghostty 项目中的实践是:每一条规则背后都对应一个真实失败案例,且能写成静态检查的规则绝不停留在自然语言。文章将其比作"项目宪法"。

上下文污染

当 Agent 的 Context Window 中积累了过多不相关的信息(历史对话、无关工具调用日志、中间结果等),导致模型"注意力"被稀释、工具选择错误率上升、行为不可预测的现象。文章给出的解法是 Sub-Agent 隔离 + 状态写文件:让每个 Agent 只看到它需要的信息,把其余状态沉淀到 Workspace。

Visuals

关系可视化

AI 工程三代范式跃迁

阅读指引:从左到右代表时间演进,每一代不是替代关系而是层层递进——Harness Engineering 包含前两代的能力,同时增加了工程化的约束和反馈机制。

1

Prompt Engineering

核心问题:怎么把话说清楚

类比:对马喊话的技巧

关注话术、格式、few-shot 示例

2

Context Engineering

核心问题:怎么给 AI 喂对信息

类比:给马看的地图

关注 RAG、上下文窗口管理

3

Harness Engineering

核心问题:怎么让 Agent 可控工作

类比:给马造高速公路 + 护栏

关注工具、权限、反馈、状态管理

文字替代:三代范式的核心转变是从"优化话术"到"优化信息"再到"优化整个运行环境"。每一代包含前代能力,同时新增一层工程化约束。

悟空 AI 招聘:2 Agent + N Skill 架构

阅读指引:从上到下是调度层级。悟空(Orchestrator)不直接调工具,只调"派单"动作;两个专才 Agent 各自只看到 4-5 个工具;所有状态通过 Workspace 文件持久化。

悟空 Orchestrator
拆任务 · 分发 · 维护 Workspace · 跨会话记忆
人岗匹配 Agent
RPA 专才 · Prompt 80 行
工具 4 个 · JD 匹配/打分/排序
招聘沟通 Agent
聊天专才 · Prompt 90 行
工具 5 个 · 对话/约面/改期
N 个原子化 Skill
parse_resume / score_match / query_calendar / book_room / send_dingtalk / upload_file / ...
每个 Skill = 一个函数 + 明确签名
Workspace(真相之源)
/candidates/{id}/state.json · /candidates/{id}/chat_history.log
/jobs/{id}/jd.md · /rpa_lock/{batch_id}.json

文字替代:悟空不直接调 n 个工具,只调"派单"这一个动作。把"50 选 1"的选择题拆成三道"5 选 1",工具选择错率显著下降。

行业标杆:Harness 选择对比

阅读指引:每行代表一个被广泛讨论的团队,右列是其最有辨识度的 Harness 工程选择。

团队/产品
核心 Harness 选择
启示
Anthropic
Claude Code
Initializer + Executor 双阶段,Workspace 作为持久层
跨会话延续 = 真生产力
LangChain
Deep Agents
自我验证 + 追踪 + 工具签名优化,不换模型冲进 Top 5
Harness 回报曲线比换模型陡
Mitchell
Hashimap
AGENTS.md 作为"项目宪法",每条规则对应一个真实失败
文档写给 Agent 读,能机器化就别留在自然语言
Cursor
Cline
内置反馈回路(Linter / Type Check / Test)自动闭环
反馈回路本身就是上下文
悟空 AI
招聘
2 Agent + N Skill + Workspace 状态文件 + Linter 硬护栏
对外说话 + 动用户数据必须有硬护栏

文字替代:五家团队在"四根护栏 × 五层架构"的落点各不相同,但共性是把 Harness 当作产品而非附属品来建设。

Key Table

四条铁律落地对照表

下表将文章四条核心铁律与悟空 AI 招聘系统的工程落点逐条对应,展示从理论到实践的桥梁:

Harness 铁律 工程师本能 Harness 真相 悟空 AI 招聘落点 风险/限制
铁律一
上下文越少越好
信息越多决策越准 上下文是稀缺资源,会被污染、相互干扰 每个 Agent Prompt 严格 <100 行;只携带当前候选人状态摘要,不携带历史聊天全文 具体阈值因模型和任务差异很大,无放之四海皆准的百分比
铁律二
专才 > 通才
一个超级 Agent 全包 通才 Agent 在工具列表里"逛超市" 只允许 2 个 Agent(人岗匹配 + 招聘沟通),其余全部下沉为 Skill Agent 数量阈值因编排复杂度而异;文中实测 >3 个时出现选错 Agent
铁律三
状态写文件
让 Agent "记住"进展 上下文是易失存储,文件系统才是持久内存 候选人状态、RPA 进度、聊天历史全部写 Workspace;跨会话靠文件延续 文件 I/O 可能成为瓶颈,需设计好 Workspace 结构
铁律四
约束可执行
把规则写进 AGENTS.md 文档只是"建议",Linter/CI 才是"强制" 招聘合规规则(如"不许主动发 Offer"、"超时 72h 必须提醒 HR")写成 Linter,工具调用前先校验 不是所有规则都能编码为 Linter,需要权衡覆盖面和维护成本
改造前后对比

悟空 AI 招聘:全能 Agent vs 专才架构

下表为同一业务场景下的改造前后对比,所有相对评价均为团队内部实测:

维度 全能 Agent(改造前) 专才架构(改造后)
工具选择 n 工具混选,错率明显偏高 每 Agent 只看 4-5 工具,错率显著下降
端到端准确率 达不到上线门槛 稳定超过上线门槛,可生产运行
可调试性 "不知道哪步错了",回滚要查数小时日志 日志按 Agent 分桶,分钟级定位
可复用性 换场景就废 人岗匹配 Agent 已复用到内推系统;招聘沟通 Agent 已复用到候选人回访
上下文消耗 数量级偏高,长期接近模型上限 显著下降,长期处于安全区
新增需求成本 改 Prompt + 加工具,每次回归 2-3 天 新增 1 个 Skill 即可,半天上线

数据声明:以上所有相对评价均为团队在内部环境下的实测,仅代表本场景。不同业务、不同模型、不同流量下数字会有显著差异。

Takeaways

总结与启发

01 优化环境,而非优化模型

过去几年大量精力放在"换更强的模型"上,但真正的杠杆位置一直在模型之外。Agent = Model + Harness,Harness 才是工程团队能直接掌控的变量。每一次 Agent 的失败都不是模型的问题,而是环境设计的债。

02 工程能力正在成为新护城河

模型还在进步,但单靠等待更强的模型已经不够了。Harness Engineering 本质上是 AI 时代软件工程的重新发明——上下文设计、工具签名、反馈回路、状态管理,这些都是传统软件工程的核心能力在新范式下的延伸。

03 强制优于建议,文件优于记忆

能写成 Linter 的约束别写成文档,状态写在文件里别塞在上下文里。这两条看似简单的原则,是从"调 Prompt 的玄学"进入"调系统的工程"的关键分水岭。机器能强制的,永远比人能记住的可靠。

04 对外交互的 Agent 必须有硬护栏

Prompt 可以漏、模型可以错,但合规底线不能破。三层硬护栏(白名单工具 + Linter 拦截 + Agent 审稿)将对外消息事故率从每周一两次降到接近零。这是企业级 Agent 落地的底线工程。

05 从小处开始,今晚写第一个 Linter

不需要推翻现有系统重来。AGENTS.md 每一条规则背后对应一个真实失败案例,能编码为机器检查的就别让它在自然语言里。区别只是——你今晚回去,会不会先写第一个 Linter。

"每当你发现 Agent 犯了一个错,就花时间工程化一个解,让它将来不再犯同样的错。"

— Mitchell Hashimap,Ghostty 作者,Terraform/HashiCorp 联合创始人 [1]
Coverage

内容覆盖检查

已覆盖:核心观点(Agent = Model + Harness 及四条铁律)
已覆盖:关键事实(Terminal Bench 排名 30→5、得分 52.8→66.5)
已覆盖:重要案例(悟空 AI 招聘实战、Claude Code、LangChain Deep Agents)
已覆盖:影响分析(改造前后四维度对比、行业标杆地图)
已覆盖:风险/限制(数据声明"仅代表本场景"、可证伪条件、"小团队"数据未核实)
已覆盖:三代范式跃迁与六大工程模式
已覆盖:三条血泪经验与六句心法收尾
已覆盖:引用来源标注 [1][2][3]

作者观点/趋势判断:文章核心论点 Agent = Model + Harness 引用自 LangChain 官方博客 [2],为行业共识。四条铁律和六大模式为作者团队实践经验总结,标注为作者观点。悟空 AI 招聘的所有数字(准确率、上下文消耗、工具数量)均为团队内部实测,声明"仅代表本场景"。四个未来趋势为作者推测,前两个标注了可证伪条件,后两个未提供。"小团队 × 大代码量"案例明确标注"数字版本不一,本文不作为确定性引用"。

未提供字段:原文未提供具体模型名称(未说明使用了哪个 LLM)、悟空 AI 招聘的绝对准确率数字(仅给出相对评价)、Terminal Bench 2.0 实验的具体时间窗口。