学习Harness Engineering 概念与实践经验

Harness Engineering:AI Agent 时代的工程范式革命

"人类掌舵,智能体执行。" ------ Ryan Lopopolo, OpenAI


1. 背景介绍

1.1 一个震撼性的实验

2026 年 2 月,OpenAI 工程师 Ryan Lopopolo 发布了一篇技术博客,披露了一个令人震惊的内部实验:

3 名工程师,历时 5 个月,构建了一个超过 100 万行代码的生产级应用,其中零行代码由人类手动编写。

这不是概念验证,而是一个有真实内测用户、经历过交付、部署、故障和修复完整生命周期的产品。整个过程中,每一行代码------从应用逻辑、测试、CI 配置、文档到内部工具------全部由 Codex Agent 编写。开发速度约为传统方式的 10 倍。

这个实验提出了一个根本性的问题:当 AI 可以写代码,工程师的工作是什么?

答案就是 Harness Engineering。

1.2 AI 工程的三次范式跃迁

要理解 Harness Engineering 为什么重要,需要先看清楚我们是如何一步步走到这里的。

阶段 时间 核心问题 交互模式 人与 AI 关系
Prompt Engineering 2023-2024 怎么把话说清楚 一问一答 出题者与答题者
Context Engineering 2025 怎么给够信息 给信息,生成内容 信息提供者与内容生成者
Harness Engineering 2026- 怎么约束和验证自主行为 人造环境,AI 在里面跑 系统设计师与自主执行者

Prompt Engineering 阶段,核心焦虑是"怎么把话说清楚"。写好一个 Prompt,AI 就能给出好答案。解决的是单次对话的质量问题。

Context Engineering 阶段,人们发现光靠 Prompt 不够。AI 需要看到相关文档、代码片段、历史对话------Shopify CEO Tobi Lutke 在 2025 年将这个概念推到了风口浪尖。它解决的是信息输入的质量问题,但交互模式本质没变:你给信息,AI 生成内容。

Harness Engineering 阶段 ,发生了质的跃迁。我们不再优化"跟 AI 怎么说话"或"给 AI 什么信息",而是构建一整套系统来约束、引导和验证 AI Agent 的自主行为。交互模式从"人给输入,AI 给输出"变成了"人造环境,AI 在里面跑"。

1.3 为什么旧范式不够用了

当 AI Agent 一天能生成几百个 PR 时,"人写代码"时代的所有工程实践都开始崩塌:

  • 人工 Code Review 变成瓶颈:吞吐量远超人类注意力上限
  • 靠人记住架构规范不现实:Agent 会复现代码库中已有的坏模式,技术债以 10 倍速度累积
  • 文档更新跟不上代码变化:知识腐烂,Agent 基于过时信息做决策
  • 上下文窗口限制:复杂项目无法在单个会话内完成,Agent 像失忆了一样

Cassie Kozyrkov(前 Google 首席决策科学家)将这个问题命名为**"信任债务"(Trust Debt)**:

"AI 就像一个极其听话但缺乏背景知识的实习生。它倾向于填补你指令中的空白,进行'自信的即兴发挥'。如果你不审计它的假设,这些假设就会变成信任债务------目前看起来没问题,但在未来某个时刻会爆发。"

Harness Engineering 就是为填补这个空白而生的。


2. 核心概念

2.1 什么是 Harness

"Harness" 的原义是马具------缰绳、鞍具、嚼子------一整套将强大但不可预测的动物导向正确方向的装备。

在软件工程中,Harness 指的是:一套用于引导、约束和赋能 AI Agent 的工程化框架和工具集

这个概念最早由 Mitchell Hashimoto(HashiCorp 创始人)在其博客中推广,核心理念是:

"每当 Agent 犯一次错,就工程化地修复一次,让它永远不再犯同类错误。"

Birgitta Böckeler 在 Martin Fowler 网站上对此做了精准的定义:

"Harness Engineering 是对模型智能的'塑形'------模型的能力参差不齐,Harness 的工作就是把这些能力塑造成适合具体任务的形状。"

2.2 核心哲学:约束换自主

Harness Engineering 最反直觉也最深刻的洞察是:

复制代码
规矩越明确 → Agent 独立做的事越多
约束越严格 → 信任越高 → 自主权越大

这和人类社会的运转逻辑完全一致:法律越完善的社会,个人自由度越高;高速公路有护栏,你才敢踩到 120 码。

2.3 工程师角色的根本转变

范式跃迁
Harness 时代工程师
价值 = 设计系统的能力
核心技能 = 约束设计、反馈回路设计
产出 = Agent 可靠运行的环境
关注 = 支撑结构:工具、抽象、反馈回路
传统工程师
价值 = 写代码的速度和质量
核心技能 = 编码
产出 = 代码
关注 = 代码本身

工程师的主要工作变成三件事:

  1. 设计环境:让 Agent 能够可靠工作
  2. 明确意图:让 Agent 知道目标是什么
  3. 构建反馈回路:让 Agent 能够自我修正

3. 体系架构

Harness Engineering 的完整框架由三大支柱构成,共同服务于"人类掌舵,智能体执行"这一核心理念。
核心理念

人类掌舵,智能体执行
支柱一

上下文工程

Context Engineering
支柱二

架构约束

Architectural Constraints
支柱三

熵管理

Entropy Management
地图式 AGENTS.md
结构化 docs/ 体系
文档园丁 Agent
可观测性注入
层级依赖模型
自定义 Linter 规则
CI 强制执行
品味不变式编码
黄金标准定义
垃圾回收 Agent
自动重构 PR
AI 互审机制

3.1 支柱一:上下文工程(Context Engineering)

核心问题:让 Agent 知道"在哪里"和"该做什么"。

Agent 在运行时无法访问的信息,对它来说就不存在。存储在 Google Docs、Slack 消息或人们头脑中的知识,都无法被系统访问。

地图式渐进披露

错误做法是把所有信息塞进一个巨大的 AGENTS.md 文件。这会导致:

  • 上下文是稀缺资源,巨大的指令文件会挤掉任务和代码
  • 过多的指导反而无效,当一切都"重要"时,一切都不重要
  • 文件会立即腐烂,成为陈旧规则的坟场

正确做法是渐进式披露

复制代码
repo/
├── AGENTS.md          ← 约100行,只做目录/地图
├── ARCHITECTURE.md    ← 顶层架构地图
└── docs/
    ├── design-docs/   ← 架构设计文档
    ├── exec-plans/    ← 执行计划(版本控制的一等工件)
    │   ├── active/
    │   └── completed/
    ├── product-specs/ ← 产品规格
    ├── references/    ← 外部参考文档
    ├── DESIGN.md
    ├── FRONTEND.md
    ├── PLANS.md
    └── SECURITY.md

Agent 像新员工一样,从小入口逐步探索,按需深入,不会被信息淹没。

可观测性注入

传统可观测性是给人看的(仪表盘、报警)。在 Harness Engineering 中,观测是给 AI 看的

OpenAI 的做法:

  • 通过 git worktree 为每个 Agent 启动独立的应用实例
  • 接入 Chrome DevTools Protocol,让 Agent 像人一样操作浏览器
  • 用 LogQL 查询日志,用 PromQL 查询指标

这使得"确保服务在 800ms 内启动"或"关键用户旅程的任何跨度都不得超过两秒"这样的提示变得可行。

文档园丁 Agent

一个后台运行的专职 Agent,自动扫描文档与代码之间的不一致,发现过时内容就自动提交 PR 修复。主动对抗知识腐烂。

3.2 支柱二:架构约束(Architectural Constraints)

核心问题:让 Agent 知道"不能做什么"。

Böckeler 的核心洞察:

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

层级依赖模型

Types
Config
Repo
Service
Runtime
UI

下层不能反向依赖上层。所有架构规则被编码为自定义 Linter 规则,违反即 CI 阻止合并------无论代码是人写的还是 AI 写的。

品味不变式编码

人类的工程品位------日志记录规范、命名约定、代码风格------一旦被编码为机械可执行的规则,就会被持续自动应用到每一行代码中。

关键细节:Linter 的错误信息本身也是上下文工程。它不只说"你违反了规则 X",而是解释"为什么这个规则存在、正确做法是什么"。这样 Agent 读到错误后能自我理解并修正,无需人类介入。

3.3 支柱三:熵管理(Entropy Management)

核心问题:让系统不随时间腐烂。

AI 写代码有一个容易被忽视的问题:它会复现代码库中已有的坏模式。一个不好的设计模式,人类可能写了 3 处,AI 看到后认为这是"项目惯例",于是在 30 个地方都用了同样的坏模式。

垃圾回收机制

主分支 CI 系统 代码仓库 垃圾回收 Agent 主分支 CI 系统 代码仓库 垃圾回收 Agent loop [定期运行] 扫描偏离黄金标准的代码 扫描文档与代码不一致 提交重构 PR 触发 CI 验证 验证通过,自动合并

技术债就像高息贷款:不断以小额贷款的方式偿还,总比让债务累积再痛苦地一次解决要好得多。

AI 互审机制(Ralph Wiggum Loop)

当一天产出几百个 PR 时,传统人工 Code Review 成为严重瓶颈。解法是引入 AI Reviewer:
Pull Request Agent B 审查者 Agent A 编写者 人类工程师 Pull Request Agent B 审查者 Agent A 编写者 人类工程师 loop [直到通过] 描述任务 提交代码 请求审查 发现问题,返回反馈 修改并更新 再次审查 继续反馈 继续修改 审查通过 仅在架构决策时介入

人类的角色缩减到只介入架构层面的重大决策。


4. 落地方案

4.1 OpenAI 的五层实施架构

OpenAI 的百万行代码实验揭示了一套完整的五层 Harness 实施架构:
第五层:AI 互审协作流程

Agent A 写代码 → Agent B 审代码

Ralph Wiggum Loop
第四层:自修复闭环

垃圾回收 Agent / 自动重构 PR / 技术债持续偿还
第三层:运行时验证与可观测性

Chrome DevTools 接入 / LogQL/PromQL 查询 / 截图验证
第二层:架构约束与品味

层级依赖 Linter / 品味不变式 / CI 强制执行
第一层:结构化知识体系

地图式 AGENTS.md / docs/ 文档体系 / 文档园丁 Agent

第一层:结构化知识体系

代码仓库即唯一真理源。所有决策依据------架构原则、业务规范、团队约定------以 Agent 可读的形式存入代码仓库,版本控制,机械可验证。

第二层:架构约束与品味

把"人类品味"编码为机械可执行的检查。自定义 Linter 强制层级依赖,违反即 CI 阻断合并。Linter 错误信息本身就是教学材料。

第三层:运行时验证与可观测性

让 Agent 能够"看见"应用的运行状态。接入 Chrome DevTools Protocol,让 Agent 像真实用户一样操作应用,截图与预期结果对比。日志、指标、UI 状态都设计成"机器可读"的格式。

第四层:自修复闭环

后台定期运行清洁 Agent,扫描偏离黄金标准的代码,自动提交重构 PR,CI 验证后自动合并。

第五层:AI 互审机制

Agent A 写代码,Agent B 审代码,循环直到通过。人类只介入架构层面的重大决策。

4.2 Anthropic 的长期运行方案

Anthropic 解决了一个更底层的问题:如何跨越上下文窗口的限制,实现真正的长期运行。

双层 Agent 架构

外部持久化存储
执行层 Workers
编排层 Orchestrator
任务分解 / 状态管理 / 进度追踪
Worker 1

功能 A
Worker 2

功能 B
Worker 3

功能 C
claude-progress.txt

功能状态列表 / git log

三个精妙设计

全标失败策略:所有功能的初始状态标记为"失败"。Agent 只能通过修改状态字段来标记完成,不允许删除或编辑测试用例。这堵死了 Agent 通过"降低标准"来"完成"任务的路。

每次只做一件事:强制单任务执行,避免上下文耗尽留下半成品。与其让 Agent 试图一次吃完蛋糕但半途而废,不如让它一块一块地吃,每块都吃完。

进度文件作为跨会话记忆:每个新会话的第一件事是读进度文件 + git log,搞清楚"上一个自己"做了什么,从断点继续,而非从零开始。

4.3 LangChain 的迭代优化方案

LangChain 提供了一套可重复的 Harness 改进循环,适用于在已有 Agent 上做定向优化。

改进循环

运行 Agent

收集 Trace
Trace 分析 Skill

并行错误诊断
主 Agent 汇总

提出改进建议
人类验证(可选)
修改 Harness

四个关键改造

改造一:强制自验证闭环

在系统提示词中强制四步工作流:

复制代码
规划(Planning)→ 构建(Build)→ 验证(Verify)→ 修复(Fix)

配合 PreCompletionChecklistMiddleware:Agent 宣告"完成"之前,强制拦截,要求先跑验证。不验证,不让退出。

改造二:环境上下文注入

LocalContextMiddleware 在 Agent 启动时自动注入:当前目录结构、已安装工具、时间预算限制、评分标准。省去 Agent 自己摸索环境的时间。

改造三:死循环检测

LoopDetectionMiddleware 跟踪每个文件的编辑次数。对同一文件编辑超过 N 次时,自动注入提示:"考虑重新审视你的方案"。

改造四:推理三明治策略
规划阶段

xhigh 推理

充分理解问题
执行阶段

high 推理

节省时间
验证阶段

xhigh 推理

精确抓 bug

全程最高推理模式反而因超时导致得分下降。在正确的阶段投入正确量级的推理,比全程最高推理效果更好。


5. 实际应用

5.1 LangChain Deep Agents 框架

LangChain 将 Harness Engineering 的理念直接落地成了开源框架 Deep Agents,把核心能力预置好,开箱即用。
Deep Agents Harness 框架
规划能力

write_todos 工具 / 结构化任务列表 / 状态持久化
虚拟文件系统

ls / read_file / write_file / edit_file / glob / grep / execute
上下文管理

输入上下文塑形 / 自动压缩摘要 / 子 Agent 隔离
子 Agent 委派

上下文隔离 / 并行执行 / 结果压缩返回
Skills & Memory

AGENTS.md 始终加载 / Skills 按需加载 / 渐进式披露
Human-in-the-loop

指定工具调用前暂停 / 人类审批或修改 / 安全门控

框架与 Harness Engineering 三大支柱的对应关系:

Harness Engineering 支柱 Deep Agents 框架能力
上下文工程 Memory(AGENTS.md)+ Skills(渐进式披露)+ 上下文管理
架构约束 Human-in-the-loop(关键操作门控)
熵管理 子 Agent 隔离 + 上下文压缩

5.2 从零开始的实施路径

对于希望在自己项目中落地 Harness Engineering 的团队,可以按以下路径逐步推进:
需要持续投入
让日志和指标对 Agent 可查

关键日志输出到文件
定期跑清洁 Agent 任务

检查文档-代码一致性
建立 Trace 分析机制

用数据驱动 Harness 迭代
一周内能做
给 AI 工具加完成前必须验证规则

系统提示中强制 Plan-Build-Verify-Fix
建立进度追踪文件

解决上下文断裂问题
今天就能做
AGENTS.md 写成地图

列出项目结构、核心模块、关键约定
把反复出现的 Review 意见

变成 Linter 规则


6. 效果对比

6.1 LangChain 的定量验证

LangChain 提供了整个 Harness Engineering 讨论中最有说服力的定量数据:

指标 优化前 优化后 提升
Terminal Bench 2.0 得分 52.8% 66.5% +13.7%
排名 30 名开外 前 5 名 大幅跃升
模型 gpt-5.2-codex gpt-5.2-codex 未变

关键结论:模型完全没变,纯靠 Harness 优化,排名从 30 名开外跃升至前 5。

各项改造的贡献分解:

改造项 解决的问题 效果
Plan-Build-Verify-Fix 强制循环 模型写完就停、不做测试 显著提升验证覆盖率
推理三明治策略 全程高推理反而超时 性能与成本最优平衡
环境上下文注入 Agent 浪费时间搞清楚自己在哪 减少环境误判错误
死循环检测 Agent 反复改同一文件陷入 doom loop 提升任务完成率

6.2 OpenAI 的规模验证

指标 数据
团队规模 3 名工程师(后扩展至 7 名)
开发周期 5 个月
代码规模 约 100 万行
PR 数量 约 1,500 个
人均日均 PR 3.5 个(扩展后吞吐量还增加了)
人工编写代码 零行
速度提升 约 10 倍

6.3 三家公司实践的互补关系

公司 核心贡献 解决的问题
OpenAI Harness 全貌(五层架构) 从 0 到 1 搭建完整驾驭系统
Anthropic 长期运行设计 跨越上下文窗口的底层限制
LangChain 定量验证 + 迭代方法论 从 1 到 100 优化现有系统性能

7. 思考展望

7.1 尚未解决的核心问题

Birgitta Böckeler 在 Martin Fowler 网站上提出了一个被刻意回避的关键问题:

"所有描述的措施都聚焦于提高长期内部质量和可维护性。我在文章中缺少的是对功能和行为的验证。"

代码能跑、测试能过,不等于功能是正确的。这是整个 Harness Engineering 方法论目前最大的空白。OpenAI 自己也在文章末尾承认:

"我们尚不清楚的是,在一个完全由智能体生成的系统中,架构连贯性会如何随着时间的推移而演变。"

7.2 行业大辩论:Big Model vs Big Harness

随着模型能力不断提升,一个自然的问题是:Harness 的价值会被更强的模型所取代吗?
Big Harness 阵营
Big Model 阵营
更强的模型能自己解决问题
短期简单任务

模型直接搞定
长期复杂项目

Harness 不可或缺
熵增、上下文丢失

模式漂移不会消失
任务复杂度和持续时间

合理的分析框架是:这不是非此即彼的问题,而是任务复杂度和持续时间的函数。短期简单任务,更强的模型确实能直接解决;但长期复杂项目中,熵增、上下文丢失、模式漂移、信任债务累积这些问题不会因为模型更强而消失,Harness 的价值随任务复杂度和持续时间指数增长。

7.3 行业分裂的隐忧

Böckeler 指出了一个被低估的长远问题:

新项目世界:从零开始用 Harness Engineering,高度 AI 自治,工程师是系统设计师。

旧项目世界:遗留代码库,给它改造 Harness "就像在一个从未运行过 static analysis 的代码库上突然开启全部规则------你会被警报淹没"。

两个世界需要截然不同的技能组合,行业可能因此产生越来越深的鸿沟。

7.4 技术栈选择标准的变化

未来的项目模板可能不只包含代码脚手架,还包含自定义 Linter、结构化测试、基础文档和架构约束规则。技术栈的选择标准将新增一个维度:

"AI 友好性"------这个技术栈有没有好的 Harness 支持?训练数据中的表现如何?API 稳定性如何?

7.5 自适应 Harness:用 Agent 优化 Agent

LangChain 的 Trace Analyzer Skill 展示了一个令人兴奋的方向:用 Agent 来优化 Agent 的 Harness

这是 meta 层面的自动化------Harness 本身也可以被自动迭代改进,而不只是靠人工分析。随着这个方向的成熟,Harness Engineering 的迭代速度将大幅提升。

7.6 对工程师职业的深远影响

Harness Engineering 正在重新定义"工程师"这个职业的价值所在。

软件开发的未来,可能不再是关于"我们能写多快多好的代码",而是关于"我们能设计多聪明多鲁棒的系统来驾驭 AI Agent 的巨大能量"。

我们正在从构建产品 转向构建能够构建产品的工厂


8. 参考资料

  1. Ryan Lopopolo --- Harness Engineering: Working with Codex in an Agent-First World , OpenAI, 2026-02-11
    https://openai.com/index/harness-engineering/

  2. Birgitta Böckeler --- Harness Engineering , MartinFowler.com, 2026-02-17
    https://martinfowler.com/articles/exploring-gen-ai/harness-engineering.html

  3. LangChain Team --- Improving Deep Agents with Harness Engineering , LangChain Blog, 2026-03
    https://blog.langchain.com/improving-deep-agents-with-harness-engineering/

  4. Justin Young --- Effective Harnesses for Long-Running Agents, Anthropic Engineering, 2025-11-26

  5. Cassie Kozyrkov --- Harness Engineering: How to Supervise Code You Can't Read, Decision Intelligence, 2026-03-03

  6. Mitchell Hashimoto --- My AI Adoption Journey , mitchellh.com
    https://mitchellh.com/writing/my-ai-adoption-journey

  7. LangChain Docs --- Deep Agents: Harness Capabilities
    https://docs.langchain.com/oss/python/deepagents/harness

  8. Latent Space --- Is Harness Engineering Real?, 2026-03-05

相关推荐
Westward-sun.2 小时前
NLP 词向量实战:PyTorch 从零实现 CBOW(Word2Vec)全流程拆解
人工智能·pytorch·python·深度学习·自然语言处理·word2vec
AIArchivist2 小时前
AI医院智联中枢:智慧医疗的核心大脑,重构医疗服务底层逻辑
人工智能·百度·重构
开开心心就好2 小时前
禁止指定软件运行的小工具仅1M
人工智能·pdf·音视频·语音识别·big data·媒体·consul
君科程序定做2 小时前
多源遥感与深度学习驱动的耕地识别与监测:概念重构、方法演进与研究议程
人工智能·深度学习·重构
梦梦代码精2 小时前
Dify + 扣子 + n8n + BuildingAI:从零搭建写作自动化平台,踩坑与实战全记录
运维·人工智能·架构·gitee·开源·自动化
16Miku2 小时前
飞书 lark-cli 深度解读:当办公软件遇上 AI Agent
人工智能·ai·飞书·agent·claudecode
蔚天灿雨2 小时前
AI Agent 生产踩坑实录:8 个案例与防御模式
人工智能·ai·agent·ai编程
运营小白2 小时前
2026年,我如何用AI自动化构建一个持续增长的博客矩阵
人工智能·经验分享·搜索引擎·自动化·ai自动写作
badhope2 小时前
2025年3月AI领域纪录:从模型开源到智能体价值重估——风云变幻DLC
人工智能·python·深度学习·计算机视觉·数据挖掘