Harness Engineering:2026 年,写代码的人正在被"驾驭层"取代
当你凌晨三点还在和 Claude Code 死磕一个 PR,改了半天 CLAUDE.md 规则, 却发现它还是会偷偷在
main.go里加上一行fmt.Println("debug")……你有没有突然觉得:“我到底是在写代码,还是在写一个让 AI 能正确写代码的系统?”
2026 年初,OpenAI 的一篇低调但炸裂的文章《Harness Engineering: Leveraging Codex in an Agent-First World》把这个答案直接甩在了所有人脸上:
真正的高价值工作已经不是写代码,而是设计 Harness——那个让 Agent 能长期稳定、高质量产出的"控制外壳"。
今天我们就来系统拆一拆这条正在发生的代际跃迁,看看 Harness 到底是什么、为什么它比模型升级更重要,以及你现在该怎么立刻在项目里用起来。
一、先说痛点:为什么 2025 年的你用 AI 写代码越写越累?
几乎所有深度使用 Cursor / Claude Code / Windsurf / Devin 的开发者,都踩过这三个相同的深坑:
🔴 痛点一:上下文永远不够,Agent 像失忆的新人
你明明在 README 里写了"本项目禁止使用 global variables",它下一秒就在 service layer 里 new 一个全局 cache。
🔴 痛点二:改提示词比写业务逻辑还花时间
CLAUDE.md / AGENTS.md 动辄几千行,迭代一次规则就要重跑几十个 PR,人类成了"提示词农民工"。
🔴 痛点三:没有闭环,Agent 以机器的速度重复犯错
生成 → review → 骂街 → 改提示 → 再生成…… 无限循环,生产力不但没提升,反而被拖进地狱。
💡 一句话总结 2025 年的 AI 辅助编程:模型能力已经很强,但缺少一个像样的"工厂流水线"。
二、Harness Engineering 的核心跃迁
从"写代码" → “设计让 AI 写代码的系统”
OpenAI 用 3 个工程师、5 个月、从零开始,产出了 >100 万行代码、1500+ PR,全部 AI 生成,没有一行手写。
他们早期为什么失败?不是模型不够聪明,而是缺少 Harness。
Harness 到底是什么?
用最直白的话说:
Harness = 一套可持续让 Agent 正确工作的完整运行环境
它包括:
- ✅ 架构规则编码化
- ✅ 约束机械化执行
- ✅ 地图式精简知识
- ✅ 独立试错空间
- ✅ 秒级反馈闭环
- ✅ 可观测性
📊 代际变化对比表
| 维度 | 传统 Prompt / Context Engineering | Harness Engineering (2026 主流) |
|---|---|---|
| 核心工作 | 写好提示词、喂足上下文 | 设计规则、约束、验证、试错环境的完整闭环 |
| 反馈延迟 | 分钟 ~ 小时(人工 review) | 秒级(Linter / CI / 自测自动打回) |
| Agent 角色 | 能力很强的实习生 | 受严格约束的资深员工 |
| 生产力提升 | 1.5–3×(视项目) | 5–20×(OpenAI 实验级数据) |
| 长期可维护性 | 差(提示词漂移、上下文遗忘) | 强(规则写进 repo,随 git 版本控制) |
🎯 一句话概括:Agent = Model + Harness。Model 是引擎,Harness 是整辆车。没有车,再好的引擎也只能原地空转。
三、Harness 的 6 大经典设计模式(直接抄作业)
OpenAI + Stripe + Cursor 等一线玩家的真实做法,总结成这几条最有复用价值的模式:
1️⃣ 渐进式信息披露
不要一次把整个仓库文档塞给 Agent,按需加载:
- 先给架构图 →
- 再给当前 package 规范 →
- 最后给相关历史 PR
2️⃣ 独立 git worktree / sandbox
每个 Agent task 都开一个干净的 worktree,坏了直接 rm -rf,不会污染主分支。
3️⃣ Repo as Single Source of Truth
所有约束、规范、禁忌、架构决策 → 全部写进仓库的 md / yaml 文件,随代码一起 review & 版本控制,而不是散落在 Slack / Notion。
4️⃣ 机械化约束执行
- “禁止使用全局变量”
- “接口必须加 OpenTelemetry”
- “错误必须 wrap”
全部用 linter / CI 硬卡,死不了就过不了流水线。
5️⃣ 把验证嵌入循环
生成 → 跑单元测试 / e2e / lint → 不通过自动让 Agent 再修
反馈延迟从 小时 → 秒。
6️⃣ 本地可观测性
给 Agent 提供 DevTools,让它自己截图看 UI、对齐日志、验证指标,而不是靠人类描述"不对劲"。
📈 实测数据:这些模式组合后,即使相同模型,SWE-agent / LangChain 任务成功率可提升 20–60%。
四、历史视角:Harness 是控制论的第三次降临
作者把 Harness 放到了更大的时间尺度上看,**控制论(Cybernetics)**其实已经出现了三次:
| 次数 | 时代 | 核心变革 | 人的角色跃迁 |
|---|---|---|---|
| 第一次 | 瓦特蒸汽机 | 离心调速器(物理反馈闭环) | 工人从烧火工 → 设计调速器的人 |
| 第二次 | Kubernetes | 声明式 + 控制器 | 运维从手动重启 pod → 写 spec 让系统自己对齐 |
| 第三次 | Harness Engineering | Agent 约束、验证、执行闭环 | 工程师从手写每一行 → 设计 Agent 的"掌舵者" |
🔑 共同规律:当传感器 + 执行器足够强,反馈回路能在更高抽象层闭合时,人的角色就上移到"掌舵"。
五、两派之争:厚 Harness vs 薄 Harness
目前业界明显分成两派:
🏗️ Build Heavy Harness 派
代表:OpenAI、Stripe、Cursor、LangChain 等
- 用大量工程把 Agent 生产力拉满
- 市场用估值投票
🤖 Trust the Model 派
代表:Anthropic 主推
- 模型足够强后,很多 Harness 工作会被自动吃掉
- 倾向薄包装
作者判断
Harness 不会消失,但厚度会动态演化。
就像 Makefile → CI/CD → GitOps,验证和约束的需求永恒,只是实现形式一直在变。
六、现在就能落地的 3 个小行动(从今天开始)
✅ Action 1:固化你的"AI 错题本"
把你现在最头疼的 **5 条"AI 老是犯的错"**写进项目根目录的 AGENTS.md 或 CLAUDE.md,用 markdown 表格格式:
|
|
✅ Action 2:硬编码架构约束
给项目加一个 pre-commit hook + CI lint,硬编码至少 3 条架构约束:
- 禁止直接 new DB connection
- 禁止全局变量
- 接口必须加 tracing
✅ Action 3:隔离试错空间
下次让 Agent 改代码时,先强制它开一个新的 git worktree,别直接在当前分支上搞。
💪 做完这三件事,你会明显感觉到:骂 AI 的次数少了,真正能合并的 PR 变多了。
写在最后
2026 年的代码工厂里,人类工程师正在完成一次身份升级:
|
|
写代码这件事,正在被彻底重新定义。
真正拉开差距的,已经不是你会不会 prompt,而是你会不会设计 Harness。
🎤 你现在是在继续手动修 AI 的 bug,还是已经在悄悄建自己的"驾驭层"了?
欢迎留言区分享你当前的
CLAUDE.md/AGENTS.md有多长,或者你踩过的最离谱的 Agent 黑历史,我们下篇可以一起继续深挖生产级 Harness 工程实践。
祝我们都能赶上这条从"写代码"到"设计代码工厂"的红利。 🚀
本文基于 OpenAI《Harness Engineering: Leveraging Codex in an Agent-First World》及行业实践整理