码森林 - AI 赋以翼,赋 AI 以魂

别卷模型了!OpenAI 工程师都在偷偷用的"Harness Engineering",才是 AI 编程的终极杀器

2026/03/27
2
0

当你在纠结选哪个模型时,人家已经用这套方法让 AI 自主开发了 100 万行代码


01 一个颠覆认知的事实

2026 年初,OpenAI 内部完成了一个疯狂的项目:

  • 100 万 + 行代码,全部由 AI 生成

  • 3 个工程师,5 个月时间

  • 0 行人工编写的代码(注意,是故意的)

  • 平均每个工程师每天产出 3.5 个 PR

  • 产品现在每天有内部用户,还在持续迭代

02-OpenAI 案例

最离谱的是什么?这个项目不是 demo,不是玩具,是正儿八经在生产环境跑的系统。

而工程师的工作不再是写代码,而是设计一个让 AI 能可靠写代码的系统

这个系统,就是今天要讲的 Harness Engineering(驾驭工程)


02 什么是 Harness Engineering?

一个绝妙的比喻

想象一下你有一匹千里马(AI 模型):

  • 它跑得快、力量大、天赋异禀

  • 但它不知道要去哪儿,也不知道怎么拉车

Harness(马具) 就是缰绳、马鞍、车辕这一整套装备:

  • 把马的力量引导到正确的方向

  • 让它能拉车、能耕田、能送货

  • 没有马具,马再厉害也只能在草原上瞎跑

03-马具比喻

Harness Engineering 就是设计和制造这套马具的学问。

正式定义

Harness Engineering 是设计和实现以下系统的学科:

  1. 约束系统:规定 AI 能做什么,不能做什么

  2. 信息系统:确保 AI 知道该知道的一切

  3. 验证系统:检查 AI 做得对不对

  4. 修正系统:当 AI 犯错时能自动纠正

用 Martin Fowler 的话说:"这是在 AI 时代保持代码质量的新型工程实践。"


03 为什么现在必须关注 Harness Engineering?

残酷的现实:模型已经卷不动了

2025-2026 年,各大模型的编程能力差距越来越小。

GPT-4.5、Claude 3.5、Gemini 2.0...在编程任务上的表现已经趋同。模型本身成了大宗商品。

那什么才是核心竞争力?Harness。

真实案例:LangChain 的逆袭

LangChain 的编程 Agent 在 Terminal Bench 2.0 排行榜上发生过一次惊天逆袭:

  • 之前:52.8% 得分,排名 Top 30

  • 之后:66.5% 得分,排名 Top 5

他们做了什么惊天地泣鬼神的事吗?

没有。他们连模型都没换。

只是优化了 Harness:

  • 加了个"完成前检查清单"中间件

  • 启动时自动映射目录结构

  • 实现了"死循环检测"机制

  • 优化了推理资源的分配策略

同样的模型,不同的 Harness,天壤之别的结果。


04 Harness Engineering 的三大支柱(核心干货)

根据 OpenAI 的官方框架,Harness Engineering 由三大支柱支撑:

04-三大支柱

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

核心原则:Agent 应当恰好获得当前任务所需的上下文,不多不少。

05-上下文工程

静态上下文(写进代码库的)

  • AGENTS.mdCLAUDE.md 文件(类似 README,但专门给 AI 看的)

  • 架构规范文档

  • API 契约

  • 代码风格指南

动态上下文(运行时提供的)

  • 启动时自动扫描并映射目录结构

  • 实时日志、指标、链路追踪数据

  • CI/CD 流水线状态和测试结果

  • 其他 Agent 的工作进度

关键洞察

从 Agent 的视角看:任何它在上下文中访问不到的信息,就等于不存在。

写在 Confluence 里的文档?不存在。 Slack 里的讨论?不存在。 某个工程师脑子里的知识?不存在。

代码库必须是唯一的真相源(Single Source of Truth)。


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

这是 Harness Engineering 最反直觉的部分:

限制越多,效率越高。

典型的分层架构

Types → Config → Repo → Service → Runtime → UI

06-架构约束

规则:

  • 每一层只能 import 左边的层

  • 绝对不能跨层调用

  • 不能循环依赖

这不是建议,是机械性强制执行

怎么执行?

  • 确定性 Linter:自定义规则,自动检查违规

  • LLM 审计员:专门有个 Agent 审查其他 Agent 的代码

  • 结构性测试:类似 ArchUnit,但针对 AI 生成的代码

  • Pre-commit Hook:代码提交前自动检查

为什么约束反而提高效率?

想象一下:

场景 A(无约束):Agent 接到任务"实现一个用户服务"

  • 它要思考:放哪个目录?依赖哪些模块?用什么命名规范?

  • 花了 30% 的 token 在探索可能性上

场景 B(强约束):同样的任务

  • 架构明确规定:Service 层,依赖 Repo 和 Config,遵循 XX 命名规范

  • 100% 的 token 都用在解决问题上

约束不是限制创造力,是消除决策疲劳。


支柱三:熵管理(Entropy Management / Garbage Collection)

这是最容易被忽视,但最重要的部分。

什么是熵?

AI 生成的代码库会随着时间积累"混乱":

  • 文档和代码不一致

  • 命名风格越来越不统一

  • 死代码越积越多

  • 架构约束被悄悄打破

这就是熵增。如果不管理,代码库会迅速变成屎山。

怎么管理?

定期运行专门的"清理 Agent":

  • 文档一致性 Agent:每天凌晨 2 点扫描,检查文档是否匹配当前代码

  • 约束违规扫描 Agent:找出绕过检查的漏网之鱼

  • 模式执行 Agent:发现并修复不符合设计模式的代码

  • 依赖审计 Agent:追踪并清理循环依赖和多余依赖

这些 Agent 按调度运行:每天、每周,或在特定事件触发时。

就像定期做大扫除,保持代码库宜居。

07-熵管理


05 大公司都在怎么实践?

OpenAI:零人工代码模式

工程师的日常:

传统工程师

Harness 工程师

写代码

从不写代码

偶尔设计架构

主要工作就是设计架构

最后补文档

文档是核心基础设施

审查代码

审查 Agent 输出 + 评估 Harness 效果

调试代码

分析 Agent 行为模式

写测试

设计测试策略,Agent 执行

工作重心完全转移。

Stripe:规模化"小跟班"

Stripe 内部的编程 Agent 叫 Minions,每周产生 1000+ 合并的 PR

工作流程:

  1. 开发者在 Slack 发任务

  2. Minion 写代码

  3. Minion 跑 CI

  4. Minion 开 PR

  5. 人类审查并合并

第 1 步和第 5 步之间,完全不需要人类参与。

Harness 处理了一切:测试、CI、代码风格、文档更新。

LangChain:中间件优先

LangChain 把 Harness 设计成可组合的中间件层:

Agent 请求
→ LocalContextMiddleware(映射代码库)
→ LoopDetectionMiddleware(防止死循环)
→ ReasoningSandwichMiddleware(优化计算资源)
→ PreCompletionChecklistMiddleware(强制执行验证)
→ Agent 响应

每个中间件层添加特定能力,不修改核心 Agent 逻辑

模块化的好处:Harness 本身可测试、可演进。


06 普通人怎么开始?(实操指南)

别被大厂案例吓到。Harness Engineering 可以循序渐进。

08-实操指南

Level 1:单人 Harness(1-2 小时搭建)

适合:个人开发者,用 Cursor、Claude Code 等工具

最小配置:

  1. 项目规则文件.cursorrulesCLAUDE.md

    # 项目约定
    - 用 TypeScript
    - 遵循 Airbnb 风格指南
    - 测试用 Jest
    - 目录结构:src/components, src/hooks, src/utils
  2. Pre-commit Hook

    # 自动格式化和 linting
    npm run lint && npm run format
  3. 测试套件

    • 确保 Agent 能自己跑测试验证

  4. 清晰的目录结构

    • 一致的命名规范

效果:防止最常见的 Agent 错误


Level 2:团队 Harness(1-2 天搭建)

适合:3-10 人团队

在 Level 1 基础上增加:

  1. AGENTS.md 文件(团队级约定)

    # 团队开发规范
    - 所有 API 必须带错误处理
    - 数据库操作必须用事务
    - PR 描述必须包含测试覆盖范围
  2. CI 强制执行的架构约束

    • madge 检查循环依赖

    • 用自定义脚本检查分层规则

  3. 共享的 Prompt 模板

    • "实现一个新 API"

    • "修复一个 bug"

    • "重构一个模块"

  4. 文档即代码

    • 文档用 Markdown 写进代码库

    • Linter 检查文档是否过期

  5. Agent 生成 PR 的审查清单

    • 代码通过 linting

    • 测试覆盖率不下降

    • 文档已更新

    • 符合架构约束

效果:团队内 Agent 行为一致


Level 3:生产级 Harness(1-2 周搭建)

适合:工程组织,数十个并发 Agent

在 Level 2 基础上增加:

  1. 自定义中间件层

    • 死循环检测

    • 推理资源优化

  2. 可观测性集成

    • Agent 能读取日志和指标

    • Dashboard 监控 Agent 性能

  3. 熵管理 Agent 调度

    • 每天凌晨运行文档检查

    • 每周运行架构审计

  4. Harness 版本化和 A/B 测试

    • 不同项目用不同版本的 Harness

    • 对比效果持续优化

  5. 升级策略

    • Agent 卡住时自动通知人类

    • 定义清晰的 escalation policy

效果:Agent 成为自主贡献者


07 血泪教训:这些坑别踩

坑一:过度设计控制流

"如果你把控制流设计得太复杂,下一个模型更新就会让你的系统报废。"

2024 年需要复杂 pipeline 实现的功能,2025 年模型一个 prompt 就能搞定。

建议:Harness 要设计成"可拆卸"的。当模型变聪明后,能轻松移除不必要的控制逻辑。


坑二:把 Harness 当成静态系统

Harness 需要持续演进

  • 模型能力提升了 → Harness 要简化

  • 团队规模扩大了 → Harness 要加强

  • 代码库变复杂了 → Harness 要增加约束

建议:每周回顾 Harness 的效果,持续迭代。


坑三:忽视文档的"基础设施"属性

很多人把 AGENTS.md 当成普通文档,写完就忘。

大错特错。

AGENTS.md 是 Harness 的核心组件,是 Agent 的"入职培训手册"。

建议

  • 每次 Agent 犯错,都要更新 AGENTS.md

  • AGENTS.md 当成代码一样维护

  • 用 Linter 检查文档是否过期


坑四:约束不足或约束过度

约束不足:Agent 漫无目的,产出混乱 约束过度:Agent 束手束脚,无法创新

建议

  • 从最小约束集开始

  • 根据 Agent 的实际表现逐步调整

  • 定期问:"这个约束还有必要吗?"


08 Harness Engineering 的底层思维

思维转变一:从"写代码"到"设计环境"

09-思维转变

传统工程师:

"这个功能我要怎么写?"

Harness 工程师:

"我要设计什么样的环境,才能让 Agent reliably 写出这个功能?"

关注点从实现转移到赋能。


思维转变二:从"审查代码"到"审查系统"

传统工程师:

"这段代码有没有 bug?"

Harness 工程师:

"为什么 Harness 没有防止这个 bug?需要增加什么约束?"

关注点从单点错误转移到系统缺陷。


思维转变三:从"人适应工具"到"工具适应人"

传统模式:

工程师学习怎么用 AI 工具

Harness 模式:

AI 工具学习怎么在工程师的环境里工作

关注点从学习成本转移到环境设计。


09 未来已来:工程师会被取代吗?

回到最初的问题:

Harness Engineering 会让工程师失业吗?

答案是:不会,但会重新定义"工程师"。

不会被取代的能力

  • 系统设计能力:设计 Harness 比写代码更难

  • 问题拆解能力:把模糊需求变成清晰任务

  • 质量判断能力:评估 Agent 输出的优劣

  • 架构演进能力:随着业务发展调整 Harness

会被淘汰的能力

  • 纯体力型的 CRUD 代码

  • 没有创造力的重复劳动

  • 依赖记忆力的 API 调用

未来的工程师画像

更像是:

  • 产品经理(定义要做什么)

  • 架构师(设计怎么做)

  • 教练(训练 Agent 做得更好)

  • 质检员(确保输出质量)

写代码的手速不重要了,设计系统的眼界变得重要。


10 行动起来:你的第一个 Harness

别等了。今天就可以开始。

10-开始构建

第一步(30 分钟)

在你的项目根目录创建 AGENTS.md

# 项目概述
这个项目是做什么的
​
# 技术栈
- 语言:TypeScript
- 框架:React + Node.js
- 数据库:PostgreSQL
​
# 开发规范
- 用 ESLint + Prettier
- 测试用 Jest
- 所有函数必须有 JSDoc
​
# 架构约束
- 前端:src/components, src/hooks, src/utils
- 后端:src/controllers, src/services, src/repositories
- 禁止跨层 import
​
# 常用命令
- npm run test:运行测试
- npm run lint:代码检查
- npm run build:构建

第二步(1 小时)

设置 Pre-commit Hook:

#!/bin/bash
npm run lint
npm run test

第三步(持续进行)

每次 Agent 犯错,就更新 AGENTS.md

一个月后,你会拥有一个越来越聪明的 Harness。


最后说两句

Harness Engineering 不是银弹。

但它代表了一个范式转移

从"让人适应 AI"到"让 AI 适应人"。

从"怎么用好工具"到"怎么设计环境"。

从"写代码"到"设计让代码能可靠生成的系统"。

2026 年了,别再只关注哪个模型更强。

真正拉开差距的,是谁的 Harness 更聪明。


参考资料:

  • OpenAI: Harness engineering: leveraging Codex in an agent-first world

  • Martin Fowler: Harness Engineering

  • The Emerging "Harness Engineering" Playbook - Artificial Ignorance

  • Harness Engineering: The Complete Guide - NxCode


互动话题:

你开始尝试 Harness Engineering 了吗? 在评论区分享你的实践经验或困惑!

如果觉得有用,欢迎点赞、在看、转发三连!