Harness Engineering

AI Agent / Harness Engineering

Harness Engineering:从写 Prompt 到驾驭 Agent

AI Agent 的核心挑战,正在从“让模型写得更好”转向“让 Agent 在真实工程系统里稳定、可靠、不失控地工作”。

来源整理:菜鸟教程:Harness Engineering(驾驭工程)。本文完整覆盖原文结构和要点,但采用改写整理,不逐字转载。

一、什么是 Harness Engineering?

Harness Engineering(驾驭工程)是一种围绕 AI Agent 构建约束、反馈、工作流控制和持续改进循环的系统工程实践。

它不直接优化模型权重,也不只是调整提示词,而是优化模型运行和执行任务的环境。它的核心哲学可以概括为:人类掌舵,智能体执行。

Human Steer

人类负责目标、方向、边界和最终验收。

Agent Execute

Agent 负责执行、调用工具、迭代和修正。

Harness Govern

Harness 负责权限、约束、反馈和长期沉淀。

原文把 Harness 类比为马具:不是削弱马的力量,而是通过缰绳、马鞍和护具,让强大的力量能被安全地引导。

按照原文脉络,这个概念的重点不是“更换更强模型”,而是:每当 Agent 犯错时,工程师都应该把这次错误转化为环境改进,让它未来更难犯同类错误。

二、为什么需要驾驭工程?真实数据说话

原文用几组数据说明:Agent 已经进入真实工程流程,瓶颈开始从模型能力转向外部基础设施。

100 万行

OpenAI 团队实验中 5 个月产出的代码规模。

0 行

实验叙述中强调的工程师手写代码量。

3-7 人

小团队规模,人均每日多个 PR 的协作节奏。

30 → 5

LangChain 通过改进 Harness 后,Terminal Bench 排名提升。

LangChain 的案例尤其能说明问题:底层模型不变,只调整外部环境,例如文档结构、验证回路和追踪系统,编码 Agent 的表现就能明显提升。这说明 Agent 表现不只取决于模型本身,也取决于它所处的工程系统。

变化表现没有 Harness 的风险
规模扩大Agent 高频生成代码、文档和配置技术债以更快速度累积
工具增强Agent 可以读写文件、运行命令、提交改动权限、边界、回滚不清晰
任务变长Agent 跨多轮、多文件、多会话执行上下文丢失、误判完成、遗漏验证
协作复杂多个 Agent 或人与 Agent 并行工作状态分裂、重复实现、审查困难

三、AI 工程范式的三次跃迁

理解 Harness Engineering,需要先区分三种工程范式。

范式核心问题优化对象交互模式
提示词工程怎么把话说清楚Prompt 的措辞、格式、示例一问一答
上下文工程怎么给 AI 喂信息文档、代码片段、历史对话信息注入后生成
驾驭工程怎么让 Agent 可靠工作约束、反馈回路、控制系统人类掌舵,Agent 执行
Prompt Engineering

像对马喊话,重点是指令表达。

Context Engineering

像给马地图,重点是信息供给。

Harness Engineering

像造道路、护栏、限速牌和补给站,重点是可控运行。

Prompt 解决单次交互质量;Context 解决背景和知识边界;Harness 解决 Agent 长期执行、可靠交付和系统可持续性。

四、Agent 常见失败模式

原文将长时间运行 Agent 的典型问题归纳为三类,并补充了一个更隐蔽的风险:Agent 会复制并放大代码库中的坏模式。

失败模式 1:试图一步到位(One-shotting)

Agent 倾向于在一个会话里把所有功能做完。结果是上下文窗口逐渐耗尽,后续状态、未完成事项和设计理由没有被结构化记录,下一个会话只能重新猜测之前发生了什么。

更好的 Harness 设计应该把长任务拆成阶段、检查点和可恢复状态,而不是期待 Agent 一次性完成所有事情。

失败模式 2:过早宣布胜利

任务进行到后期时,Agent 可能看到部分功能已经完成,就直接宣布任务完成。但真实项目中,剩余功能、边界条件、验收标准和集成行为可能还没有被覆盖。

解决方式不是简单提醒“不要太早结束”,而是把完成条件变成清单、测试、审查和外部状态。

失败模式 3:过早标记功能完成

Agent 写完代码后,如果没有明确要求端到端验证,可能只跑单元测试、curl 或局部检查就标记完成。局部命令通过不代表真实功能可用。

Harness 需要把“完成”定义为可验证状态,例如构建通过、关键测试通过、端到端路径可用、风险被记录。

隐藏风险:模式复制

Agent 很擅长模仿已有代码。如果仓库里存在架构漂移、坏抽象、陈旧文档或脆弱测试,它也会把这些模式继续复制和放大。不加约束的 Agent 不只会产生代码,也会高速产生技术债。

五、驾驭工程的四大护栏

综合原文提到的 OpenAI、Anthropic、LangChain 和 Martin Fowler 等实践,可以把 Harness 归纳为四根护栏。

上下文工程

动态知识注入、AGENTS.md、按需检索、活文档机制。

架构约束

分层依赖模型、自动 Linter、CI 阻断、类型系统。

反馈循环

Agent-to-Agent Review、自动测试、CI 验证、错误信号回传。

熵管理

定期清理、文档园丁、持续小额偿还技术债。

护栏一:上下文工程(Context Engineering)

上下文工程相当于给新员工准备工作手册。AGENTS.md 可以作为 Agent 进入仓库后的第一份指南,但它不能无限膨胀。

上下文窗口是稀缺资源。一个越来越长、越来越旧的说明文件,会挤占任务、代码和相关文档的空间。更合理的做法是提供稳定、小巧的入口,然后让 Agent 根据任务按需检索更多上下文。

原文提到 Ghostty 项目的经验:AGENTS.md 中的规则来自历史 Agent 失败案例。也就是说,文档不是静态制品,而是反馈循环的一部分。

护栏二:架构约束(Architecture Constraints)

架构约束是 Harness 中的“缰绳”。原文举例提到一种分层依赖模型:

Types Config Repo Service Runtime UI

核心规则是:下层不能反向依赖上层。规则不能只写在文档里,而要编码成 Linter、CI、类型系统或其他自动检查。这样无论代码是人写的还是 AI 写的,违规都会被阻断。

关键细节是:错误信息本身也是上下文工程。好的 Linter 不只是说“违反规则”,还会说明规则为什么存在、正确做法是什么,让 Agent 能读懂错误并自我修正。

护栏三:反馈循环(Feedback Loop)

传统代码审查主要依赖人类工程师。Harness 中可以加入 Agent-to-Agent Review:一个 Agent 写代码,另一个 Agent 审查行为、边界、测试和风险。

生成 验证 审查 修正 沉淀

反馈循环不只是跑测试。它还包括把失败信息回传给模型、让模型独立评估自己的代码、检查测试是否真正覆盖 Bug。如果 AI 写出的测试能通过带 Bug 的代码,那么 Harness 应该把测试本身判定为无效,要求重新思考边界。

护栏四:熵管理(Entropy Management)

软件系统会自然熵增:重复代码、临时方案、过期文档和架构漂移会不断积累。Agent 让产出速度变快,也会让熵增速度变快。

原文强调的策略是持续小额偿还,而不是等问题严重后集中处理。可以让后台 Agent 定期扫描偏差、更新质量等级、发起重构 PR;也可以设置文档园丁 Agent,自动发现文档和代码不一致并提交修复。

六、六大行业共识

原文综合多个独立信息源,总结了六个共识。

#共识核心观点
1瓶颈在基础设施,不只在模型智能多个团队得到类似结论:只改变 Harness 和工具格式,也能显著提高 Agent 表现。
2文档必须是活的反馈循环静态文档容易过时,动态文档要从失败案例和后台维护中持续更新。
3思考与执行需要分离复杂任务难以塞进单个上下文窗口,需要 Orchestrator + Worker 分层和外部状态。
4上下文不是越多越好上下文是稀缺资源,巨大指令文件会挤掉真正任务空间,应按需检索。
5约束必须自动化人工 Review 是瓶颈,护栏应编码为 Linter、CI 和类型系统。
6工程师角色正在变化工程师从代码编写者转向环境建筑师,重点是设计可靠控制系统。

七、Harness 与传统框架的关系

Harness 不是 SDK、脚手架或 Agent 框架的替代品,而是位于它们之上的一层。

层级解决的问题示例
Harness Layer约束、反馈循环、上下文工程、熵管理、生命周期管理CI、Linter、活文档、权限、审查系统
Agent Frameworks智能体定义、消息路由、任务生命周期、依赖管理LangGraph、AutoGen、CrewAI
SDK / API模型调用、工具注册、流式输出OpenAI、Anthropic、Gemini SDK
Foundation Model语言理解、推理、生成GPT、Claude、Gemini、DeepSeek

传统框架解决“如何构建智能体”,Harness 解决“智能体如何可靠运行”。原文还指出,模型可能逐渐吸收框架中的一部分能力,例如智能体定义、消息路由和生命周期管理;但持久化、确定性重放、成本控制、可观测性、错误恢复等问题,仍然是 Harness 层的重要价值。

总结

Harness Engineering 不是某一家公司的实验,而是 AI Agent 进入工程实践后自然出现的范式转移。

它的核心不是给 Agent 更少自由,而是在更强自主性外面配套更严格的运行约束。正因为有护栏,工程团队才敢让 Agent 跑得更快。

核心组件解决的问题代表实践
上下文工程Agent 不知道该看什么、怎么找AGENTS.md、活文档、按需检索
架构约束Agent 复制并放大坏模式分层依赖、自定义 Linter、CI 阻断
反馈循环Agent 不知道自己做错了Agent-to-Agent Review、自动测试套件
熵管理技术债务和文档腐烂Doc-gardening Agent、持续垃圾回收

软件开发的未来,可能不只取决于我们能写多快的代码,而取决于我们能否设计出足够鲁棒的系统,来驾驭 AI Agent 的巨大执行能力。工程师的价值也会从单纯执行,转向构建“能够构建产品的工厂”。

收录于 合集・Ai 1