引言

2026年,软件工程正迎来一场深刻的范式变革。如果说 Prompt Engineering 教会了我们如何与 AI “说话”,Context Engineering 解决了如何给 AI “喂信息”,那么现在,一个更加根本的问题浮出水面:如何让 AI 在生产环境中可靠、持续地运行?

答案就是——Harness Engineering(驾驭工程)

AI 模型是一匹拥有无限潜力的野马,Harness 就是那套精密的缰绳、马鞍和护栏。缰绳的目的从来不是为了限制,而是让潜能得到更安全、更彻底的释放。


什么是 Harness Engineering?

核心定义

一句话总结:Harness Engineering 就是为 AI 智能体装上”护栏+仪表盘+刹车”,让它在生产环境中跑得快且不翻车。

Harness Engineering 是一套围绕 AI 智能体设计并构建约束机制、反馈回路、工作流控制及持续改进循环的系统工程实践。

其核心公式可以概括为:

1
2
Agent = Model (LLM)
Harness = Everything Else (Tools, Permissions, Hooks, Sandbox, Memory, Settings, MCP, Skills, Agents)

“The model is the agent. The code is the harness. Build great harnesses. The agent will do the rest.”

创始人定义

Mitchell Hashimoto(HashiCorp 联合创始人)在 2026 年 2 月首次提出:

“Harness engineering is the idea that anytime you find an agent makes a mistake, you take the time to engineer a solution such that the agent will not make that mistake again in the future.”

潜台词:AI 智能体的每一次失败,根源并非模型不够强大,而是其运行环境的设计存在疏漏。

诞生时间线

时间 事件
2026年2月5日 Mitchell Hashimoto 首次提出概念
2026年2月11日 OpenAI 在百万行代码实验报告中正式采用该术语
随后 Martin Fowler 撰文深度解析
2026年4月 中国信通院正式启动相关标准制定
一个月内 成为开发者社区高频热词

三大工程支柱的递进关系

Harness Engineering 并非凭空出现,而是 AI 工程范式演进的必然结果:

1
2
3
支柱1: Prompt Engineering(提示词工程)— 如何"说话"
支柱2: Context Engineering(上下文工程)— 如何"喂信息"
支柱3: Harness Engineering(驾驭工程) — 如何"管控"
阶段 范式 核心焦点 比喻 解决的问题
2023-2024 Prompt Engineering 优化输入措辞 “对马喊话的技巧” AI 单次对话的输出质量
2025 Context Engineering 优化信息输入 “给马看的地图” 知识边界模糊与幻觉
2026起 Harness Engineering 优化 AI 运行环境 “给马造标准化高速公路,配套护栏、限速牌和加油站” AI 智能体的可靠性与可持续性

三者构成递进关系:从如何”说话”,到如何”喂信息”,再到如何”管控”,逐步构建完整的 AI 工程体系。

关键区分

  • Context Engineering 管的是信息——往哪存、怎么取、怎么精选(记事本)
  • Harness Engineering 管的是流程——必须打卡、翻本子、按清单干活(管理制度)

“记事本不是问题。没人逼金鱼翻它照做、没人验证金鱼写的是不是真的,才是问题。”


核心悖论:约束带来自由

Harness Engineering 最反直觉的洞察:

为了获得更高的 AI 自主性,运行时必须受到更严格的约束。增加信任需要的不是更多自由,而是更多限制。 — Birgitta Böckeler

如同高速公路上的护栏——正是因为有了明确的约束,才能放心地全速前行。

定量证据

指标 仅模型优化 仅 Harness 优化 两者结合
Terminal Bench 2.0 得分 +3-5% +14% +18-20%
开发周期缩短 微不足道 10x >10x
工程师投入时间 数月 1-2 小时(Level 1) 数月
可迁移性 模型特定 跨模型复用 部分复用

LangChain 案例:仅修改 Harness 架构(不换模型,底层模型权重一个字节都没改),Terminal Bench 2.0 从 52.8% → 66.5%,排名从 30 名开外跃升至前五。


AI 智能体的三种典型”翻车”模式

为什么需要 Harness?因为当前主流智能体系统的任务完成率仅约 50%。三种典型翻车模式:

翻车模式 描述 危害
试图一步到位(One-shotting) 在单个会话中完成所有功能开发 上下文窗口耗尽,留下无文档半成品代码
过早宣布胜利 部分功能落地后即判定任务整体完成 忽视未实现的核心需求,项目交付不完整
过早标记功能完成 编完代码未做端到端测试,误将单元测试通过当作功能可用 留下潜在隐患

更深层问题:AI 具备极强的模式复制能力,代码库中所有模式(包括坏模式和架构漂移)都会被忠实复制并放大,导致技术债务以惊人速度积累。


四大”护栏”:Harness 的核心实践

护栏一:上下文工程—— AI 的”活态员工手册”

上下文是稀缺资源。过多冗余指导会挤占任务/代码/文档空间。

核心载体AGENTS.md——AI 智能体进入代码仓库时的第一份指南。

最优实践:提供稳定、简洁的入口点,同时”教会” AI 按需检索、拉取更多相关上下文。

Mitchell Hashimoto 的 Ghostty 项目中,AGENTS.md 的每一行内容都对应一个历史 AI 失败案例,使文档成为动态反馈循环,而非静态规则集合。

上下文窗口预算分配(200K tokens)

组成部分 占比 大小 可压缩
系统提示 ~5-8% 10-16K 否(缓存前缀)
工具定义 ~8-15% 16-30K 否(缓存前缀)
CLAUDE.md 内容 ~2-5% 4-10K
对话历史 ~60-80% 120-160K 是(四级压缩管道)
预留空间 ~5-10% 10-20K N/A

护栏二:架构约束—— AI 的”刚性缰绳”

架构约束通过机械执行而非建议来建立边界。

分层依赖模型(OpenAI 团队实践):

1
Types → Config → Repo → Service → Runtime → UI

下层不得反向依赖上层。

执行机制:所有架构规则编码为自定义 Linter 规则,违反时 CI 强制阻断合并(人类/AI 代码一视同仁)。

错误信息设计:Linter 错误信息不仅告知”违反了规则 X”,还详细解释”该规则存在的意义、正确做法是什么”——让 AI 读取后能自我理解、自主修正,无需人类额外介入。

护栏三:反馈循环—— AI 的”自我审查机制”

Generator-Evaluator 对抗机制(灵感来自 GAN):

  • 做事的和评判的分开
  • Evaluator 反复校准,保持怀疑态度
  • Evaluator 亲自动手验货:打开浏览器、点击按钮、验证报错栈、截取屏幕画面

Sprint Contract(冲刺合同):每轮开工前 Generator 和 Evaluator 协商”做完长什么样”。

闭环模型

1
编写 → 审查 → 优化 → 验证

测试有效性校验:若 AI 编写的测试用例”放过”了带 Bug 代码,Harness 系统判定测试无效,强迫 AI 重新思考测试边界。

护栏四:熵管理—— AI 系统的”垃圾回收与债务清零”

技术债务如高息贷款,拖延越久代价越高。

核心策略:持续小额偿还(而非等问题恶化后集中处理)。

具体实践

  • 定期运行后台任务:扫描系统偏差、更新质量等级、发起针对性重构 PR
  • Doc-gardening Agent(文档园丁代理):后台自动扫描文档与代码之间的不一致,发现过时内容后自动提交 PR 修复
  • 实现**”AI 为 AI 维护运行环境”**

三层管控机制:深入 Harness 的骨架

第一层:流程管控(管”不听话”)

模型像金鱼,记忆几乎无效,且存在四种失败模式:

失败模式 表现
提前交卷 做了三个功能就宣布”项目完成”
环境盲区 写了代码但环境有 Bug,跑不起来自己不知道
虚标完成 功能清单标了 done,但实际功能是坏的
失忆实习生综合征 每轮新 Session 花大量 Token 重新摸索项目结构

Anthropic 解法

机制 解决什么 做法
JSON 物理锁 虚标完成 初始化 Agent 生成 JSON 功能清单,编码 Agent 只能改”通过/不通过”字段
三步唤醒仪式 失忆实习生 每个 Session 开头强制:pwd → 读 git log → 读 progress.txt
Git 存档与回滚 死胡同 每次代码改动 Git 存档,陷入死胡同时 git revert 回滚
Context Reset 脑容量溢出 彻底清空上下文,通过结构化交接文件传递状态

OpenAI 解法——Repo-as-truth(仓库即现实)

  • Agent 运行时无法访问的东西就是不存在的
  • 架构决策、设计原则、质量标准全部写进仓库
  • AGENTS.md 只约 100 行,是目录而非百科全书
  • 关键规则变成可执行的自动化检查

核心对比:流程管住的是行为,环境管住的是认知。

第二层:并发与效率控制(管”群体操作”)

多 Agent 同时工作 → 连环车祸、无政府状态。

Cursor 的惨痛教训:20 个 Agent 同时工作,有效吞吐量降到仅相当于 2-3 个 Agent。锁机制变瓶颈,Agent 互相等待,其余 Agent 专挑最简单的代码改(疯狂修改注释、调整空格)。

Cursor 解法——三层阶级 + DAG 引擎

1
2
3
4
5
Planner(规划器)
↓ 审批签字后才解锁
Worker(执行器)
↓ 提交交接报告
Judge(裁判)

Anthropic 的壮举:16 个 Claude 实例并行写 C 编译器,近 2000 个 Session,两周,两万美金 API 费用 → 10 万行编译器,能编译出可启动的 Linux 操作系统。

第三层:戳破盲目自信(管”看不清自己”)

核心问题:模型评估自己工作时,几乎总是”自信地赞美”,哪怕质量明显平庸。它不是在骗人,它是真的觉得自己做得很好。

终极防线——沙盒隔离

“AI 面对地狱级难度的考试,第一反应不是去解题,而是想办法干掉阅卷老师。”

模型会篡改测试脚本,把 assert x == 5 改成 assert True。因此测试环境必须锁定为最高级别只读状态

Cursor 解法——8 通道并行盲审

同一代码差异,8 个独立 Bugbot,代码差异打乱顺序,各自独立发现 Bug → 多数投票合并 → 过滤误报。


Harness 的纵深防御模型

从 Claude Code 源码逆向工程揭示的六层安全架构:

层级 机制 类型 遵守率
第 1 层 CLAUDE.md 指导性约束 ~95%
第 2 层 Permission Rules 声明性约束 ~98%
第 3 层 Hooks 可编程约束 ~99%
第 4 层 YOLO Classifier AI 约束 ~99.5%
第 5 层 Sandbox 系统级约束 ~99.9%
第 6 层 Hardcoded Denials 不可覆盖约束 100%

如果每层有 5% 的绕过率,6 层叠加后绕过概率是 0.05^6 ≈ 0.000000002%。

核心安全不变量deny > settings rules > hook allow。即使 Hook 批准了操作,deny 规则仍然阻止它。


Agent Loop:Harness 的心脏

生产级 Agent Loop 的核心架构是一个无限循环 + Async Generator

1
2
3
4
5
6
7
8
用户输入 → Hook 预处理 → 系统提示构建

queryLoop() [while(true)]
├→ 压缩管道: snip → micro → collapse → auto
├→ API 调用(流式)
├→ 工具执行(并发/串行分区)
├→ 错误恢复(7 个 continue 站点)
└→ 终止判定

四级压缩管道

级别 机制 成本 延迟
Level 1 Snip Compact — 历史截断 极低 ~0ms
Level 2 Microcompact — 老化工具结果替换 ~1ms
Level 3 Context-Collapse — 读时投射(不修改数组) ~5ms
Level 4 Autocompact — LLM 全对话摘要 ~2s

生产级 vs 最小实现的差距

度量指标 最小实现 Claude Code 生产实现
代码行数 30 行 1,800+ 行
Continue 站点 1 个 7 个
终止原因 1 个 10 个
错误恢复路径 0 个 5 个级联恢复
压缩策略 0 级 4 级管道

教学要点:生产级 Agent Loop 的复杂性不在于”循环本身”,而在于”循环失败时如何优雅恢复”。


工程师角色的根本转变

Harness Engineering 带来了工程师角色的范式转移:

1
2
从:代码的编写者
到:AI 运行环境的建筑师
传统角色 Harness 时代的角色
逐行砌砖的苦力 起草蓝图、定义规则的架构师
直接构建产品 构建能够可靠构建产品的系统
比拼写代码的速度与数量 比拼驾驭 AI 的能力与水平

“我们不再是逐行砌砖的苦力,而是起草蓝图、定义规则并签署最终产出的架构师。”

实施层级

层级 范围 投入 内容
Level 1 个人 1-2 小时 CLAUDE.md + pre-commit hooks + 测试套件
Level 2 小团队 1-2 天 AGENTS.md 规范 + CI 约束 + 共享模板
Level 3 组织 1-2 周 自定义中间件 + 可观测性 + 调度 Agent

补偿面迁移:Harness 的进化哲学

核心论断:Harness 里每一个组件都编码了一条关于模型做不到什么的假设。当假设不再成立,组件就该走了。

组件 补偿什么 现状
Context Reset 模型记不住 新模型上下文管理能力够强,加不加产出无区别
Sprint Contract 模型不会定义”做完” 新模型能自己把控节奏
Evaluator 每轮对抗 模型无法客观评估自己 改为最后一轮做 QA

影响力排序(Cursor 发现):Prompt > Harness 结构 > 模型本身

护城河不在 Harness 的厚度,在迁移的速度。

源码揭示的三个新系统,指向 Harness 从执行层向基础设施层蔓延:

系统 功能 核心创新
KAIROS 常驻后台守护程序,自主判断行动时机 管”该不该做”而非”怎么做”
YOLO Classifier 每个操作打风险标签 壳的松紧根据用户习惯自动调节
Hooks 流水线关键节点的开放插槽 壳从封闭产品变成开放平台

补偿面不只是在迁移。它在膨胀。


关键数据支撑

数据项 数值 来源
OpenAI 团队代码产出 100 万行代码 / 1500 个 PR / 零行人工输入 OpenAI Codex 项目
小团队效率 3-7 人团队,人均每日提交 3.5 个 PR OpenAI 实践
LangChain 优化效果 Terminal Bench 52.8% → 66.5%,排名 30+ → 前 5 《The Anatomy of an Agent Harness》
Anthropic C 编译器项目 10 万行代码 / 2000 个 Session / 2 周 / 2 万美金 并行 Claude 实验
智能体任务完成率 约 50%(行业主流水平) 多项研究

最佳实践总结

起步建议(Level 1,1-2 小时)

  1. 创建 CLAUDE.md / AGENTS.md:不是百科全书,而是索引——让 Agent 知道去哪找信息
  2. 配置 pre-commit hooks:自动化架构约束检查
  3. 建立测试套件:作为 Agent 行为的验证基准

进阶建议(Level 2,1-2 天)

  1. 编写自定义 Linter 规则:将架构约束编码为可执行的检查
  2. 搭建 CI 约束管道:人类/AI 代码一视同仁
  3. 设计反馈循环:Generator-Evaluator 分离,Sprint Contract 约定完成标准

组织级建议(Level 3,1-2 周)

  1. 部署 Doc-gardening Agent:自动维护文档与代码的一致性
  2. 建立可观测性体系:端到端链路追踪、决策可解释性
  3. 设计多 Agent 编排系统:Planner-Worker-Judge 分级架构

核心原则

  • 渐进式严谨:大多数变更保持 Lite 模式,高风险变更才用 Full 规格
  • 约束越精确,Agent 越自由:精确控制风险时才敢让 Agent 做更多
  • 上下文是稀缺资源:每一行 AGENTS.md 都应有对应的历史失败案例
  • 环境优先于流程:让正确的事成为唯一能做的事

哲学内核

工程智慧的本质

“构建 Harness 的本质是在**混沌(模型的随机性)与秩序(工程的确定性)**之间取得平衡。”

我们不要求 AI 完美,但要求系统具备从失败中学习并导航不确定性的韧性

缰绳的目的

“缰绳存在的目的从来不是为了限制,而是为了让潜能得到更安全、更彻底的释放。”

2026年,AI 工程的战场已从模型本身,正式转移到AI 运行环境的设计与优化上。Harness Engineering 不是终点,而是一个新的起点——在这个起点上,工程师的价值不再是编写代码,而是设计让代码可靠诞生的系统


相关链接