游乐游手机版
首页/AI教程/文章详情

OpenAI Harness工程实验:3人用AI生成百万行代码

时间:2026-07-17 15:01
OpenAI内部团队进行了一项实验,3名工程师不写一行代码,仅由AI编码智能体Codex生成约100万行代码,五个月内完成传统手工编写十分之一的工作量。该实践被命名为HarnessEngineering,核心是让人类设计约束,智能体执行代码编写。

一切的起点

今天要聊的这个实验,起点很特别。

2025年8月,OpenAI内部一个小团队做了一个堪称疯狂的尝试:从零开始构建一款软件产品,但规则是——一行代码都不能由人来写。

所有代码,包括应用逻辑、测试、CI配置、文档、监控、内部工具,全都交给Codex——OpenAI自家的AI编码智能体来生成。

五个月后,结果出炉。这份实验报告的数字,看起来震撼得有点不真实:

  • 生成约100万行代码
  • 提交约1500个Pull Request
  • 最初只有3名工程师(后来扩充到7名)推动这一切
  • 人均每天处理3.5个PR,而且速度还在加快
  • 整体完成时间大约是传统手工编写的十分之一

这可不是什么实验室里的概念验证。这个产品有内部日常活跃用户,有外部Alpha测试者,经历过完整的上线、故障、修bug的生命周期。

OpenAI把这次实验总结出的工程范式,命名为:Harness Engineering(驭缰工程)。

一个令人震惊的数据

LangChain在分析中引用了Terminal Bench 2.0的基准测试数据。这个数据简单直接,却极具冲击力:

纯harness优化,就能把模型的整体排名从Top 30直接拉到Top 5。

这意味着什么?你不一定需要一个更强的模型。很多时候,你只是需要一个更好的harness。

这就好比同一匹马,换上一副更合适的缰绳、换一个经验更丰富的骑手,最终的成绩可能天差地别。

核心转变:从写代码到设计约束

传统软件工程的流程,一条线就能概括:

人类写代码 → 机器执行代码

而Harness Engineering的流程,变成了两条线:

人类设计约束 → 智能体写代码 → 机器执行代码

工程师的产出,不再是代码本身。它变成了——约束系统。

那么,这个约束系统具体包含什么?

  • AGENTS.md —— 一份导航文件,告诉智能体“这个仓库长什么样、怎么工作”
  • 架构规则 —— 依赖方向、分层约束、边界定义
  • 自定义Linter —— 把编码规范变成可被机械执行的检查
  • 反馈回路 —— 让智能体能自己验证它的工作成果
  • 结构化文档 —— 设计决策、执行计划、技术债追踪

核心一句话:人类掌舵,智能体执行。

Copilot时代是“用AI辅助写代码”。而Harness Engineering直接翻篇:让AI完全写代码,人类负责让AI写对

六大核心概念

OpenAI在这次实践中总结了六条关键经验。每一条都碘伏了传统认知。

1. 仓库即记录系统

Slack讨论里形成的决策?不存在。Google Docs里的设计文档?不存在。你脑子里的经验?那更不存在。

对于智能体来说,它唯一能看见的,就是仓库里的文件。所以一切决策、规范、计划,都必须以版本化工件的形式提交到仓库。

这就像团队来了一个超级聪明但每次都“失忆”的新同事——他看不到你脑子里在想什么,只能看你写在文件里的东西。区别在于,这个同事每次对话都是全新的,没有记忆延续。

2. 地图而非手册

OpenAI一开始尝试了“一个超大号的AGENTS.md”,结果惨败。原因很典型:

  • 挤占上下文 —— 巨大的指令文件,把任务相关的代码和文档挤出视野
  • 等于没说 —— 当一切都标注“重要”,一切就都不重要了
  • 立即腐烂 —— 庞杂的手册很快变成陈旧规则的坟场
  • 无法验证 —— 单个大blob不适合做机械检查

解决方案是什么?让AGENTS.md保持在约100行,就像博物馆入口的导览图。它只做方向指引,指向更深层、更具体的文档。

这个策略叫“渐进式披露”——智能体从小入口进入,被引导着下一步该看什么,而不是一次性把所有信息砸给它。

3. 机械化执行

OpenAI把编码规范直接写成了自定义linter。更妙的是,他们在linter的错误信息里嵌入了修复指令。智能体看到报错提示,同时也知道了该怎么修复。

Martin Fowler在文章中也提到,有团队已经开始用AI来生成自定义linter——让智能体来写约束智能体的规则。

核心原则很简单:能用代码表达的约束,绝不只写在文档里。

4. 智能体可读性

一个反直觉的观点:为智能体优化代码的可读性,有时候优先级要高于为人类优化。

具体做法包括:选择“无聊”的技术——API稳定、训练集覆盖好、行为可预测。有时候,重新实现一个子集,比包装一个复杂的第三方库更划算。目标是让应用可以按git worktree的方式启动运行,这样智能体每次任务都能在一个独立实例上工作。甚至把Chrome DevTools协议接入智能体,让它能直接看到UI、复现bug、验证修复。

5. 吞吐量改变合并理念

传统工程里,PR审查是件严肃的事。测试失败?那必须老老实实修好了才能合并。

但在这个新世界里,智能体的吞吐量已经远超人类的注意力能覆盖的范围。PR生命周期极短。对于偶发的测试失败,靠后续重跑来解决。纠错成本很低,但等待成本很高。

在低吞吐量的环境里,这种做法确实显得不负责任。但在智能体高速运转的系统里,这反而是正确的策略。

6. 熵管理 = 垃圾回收

智能体会不自觉地复现仓库里已有的模式——包括坏的模式。如果不主动清理,代码质量会像滚雪球一样越来越差。

OpenAI的做法很务实:把“黄金原则”编码到仓库中;定期运行后台Codex任务,扫描偏差、更新质量评分、发起重构PR。这些重构PR大多可以在一分钟内审查并自动合并。

对待技术债,就应该像对待信用卡——每天小额还款,别让它滚雪球。

精确定义:Agent = Model + Harness

来自LangChain、Martin Fowler和HumanLayer的综合定义,给出了一个清晰的公式:

Harness(缰绳/驾驭系统)= 模型之外的一切代码、配置和执行逻辑。

组件作用
System PromptsAGENTS.md、CLAUDE.md — 智能体的“入职手册”
Tools & MCP扩展智能体能力的工具和协议
Skills渐进式加载的知识包
沙箱基础设施文件系统、浏览器、隔离执行环境
编排逻辑子智能体生成、任务分发、模型路由
Hooks/中间件compaction、续接、lint检查
背压机制测试/构建/类型检查 = 自我验证回路

Martin Fowler用了一个2×2矩阵来描述这些组件如何协同工作:

确定性(CPU)语义性(LLM)
前馈(引导)bootstrap脚本、LSP、OpenRewriteAGENTS.md、Skills、architecture.md
反馈(感知)linter、类型检查、覆盖率AI code review、LLM-as-judge

前馈在智能体行动之前引导它,反馈在行动之后观察和纠正它。两者缺一不可。

工程师的角色变了

在Harness Engineering的世界里,工程师的工作清单发生了根本性的变化。

不再做这些:

  • ❌ 手写代码
  • ❌ 逐行code review
  • ❌ 手动调试
  • ❌ 维护文档

转而做这些:

  • ✅ 设计环境和架构约束
  • ✅ 编写和维护AGENTS.md
  • ✅ 把规范转化为可执行的linter规则
  • ✅ 构建反馈回路(测试、CI、自动化验证)
  • ✅ 管理智能体的上下文和工具
  • ✅ 在智能体卡住时识别“缺了什么”,并补充进去

一句话概括:工程师的工作重心,从“执行”真正变成了“设计让执行可靠的系统”。

Ralph Wiggum 循环:Harness Engineering 的核心实现

OpenAI在实践过程中采用的是“Ralph Wiggum循环”模式,这个名字来自LangChain。这个循环的核心特征很鲜明:

  • Fresh Context —— 每次迭代重新读取上下文,不会积累错误
  • Backpressure —— 不规定具体怎么做,但用门控机制拒绝坏结果
  • The Plan Is Disposable —— 计划随时可以重来,成本很低
  • Disk Is State, Git Is Memory —— 文件是交接的机制,git是记忆的载体
  • Let Ralph Ralph —— 坐在循环上观察,而不是陷在循环里执行

单次运行经常持续6小时以上。大多数时候,是在人类睡觉的时候跑,第二天早上起来看结果。

这场范式转移已经在发生

OpenAI的这个实验可不是实验室里的演示。它是一个正在为真实用户交付真实产品的生产系统。

更重要的是,这个范式正在以惊人的速度扩散:

  • Martin Fowler(ThoughtWorks)发布了专题文章,用控制论框架分析Harness Engineering
  • LangChain从Agent架构角度,重新定义了Harness
  • Anthropic分享了Scaling Managed Agents的实践经验
  • 张汉东写了《驾驭工程》(别名《马书》),从Claude Code源码中提炼AI编码最佳实践,共30章7篇
  • deusyu建了harness-engineering学习指南,包含19篇文章的深度摘要,以及12篇专业翻译

它已经从一个公司的内部实践,快速扩散成软件工程范式的一次根本性转变。

写在最后

如果你是一位工程师,读到这篇文章,第一反应可能是焦虑—— “AI要取代我了”。

但OpenAI的实验恰恰说明了一个相反的事实:工程师变得更重要了,只是做的事情变得不一样了。

100万行代码,3个人,不写一行代码。他们做的事比写代码更高级——设计一个能让AI可靠工作的系统。

这就是Harness Engineering。

人类掌舵,智能体执行。

这个实验完成于2026年初,产品已经在运行。这不是预言,这是正在发生的事实。

这是Harness Engineering系列的第一篇。下一篇我们聊:AGENTS.md到底怎么写——给智能体的“入职手册”该怎么设计。

来源:https://juejin.cn/post/7648995774527012899
上一篇万星开源Agent Skills,让AI写代码不再敷衍 下一篇大学生AI工具选择攻略 腾讯频道实战找搭子
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Firecrawl NAS私有化安装教程:AI网页抓取工具部署步骤
AI教程 · 2026-07-18

Firecrawl NAS私有化安装教程:AI网页抓取工具部署步骤

Firecrawl适合把网页内容整理成AI可用数据,NAS私有化部署可降低外部依赖。安装前需确认硬件、Docker、端口与合规边界,再按目录、配置、启动、测试、维护流程执行。

Tabula安装失败解决:自动启动服务与中文界面设置指南
AI教程 · 2026-07-18

Tabula安装失败解决:自动启动服务与中文界面设置指南

Tabula安装失败多与Java环境、端口占用、权限不足和文件路径有关。可按系统检查依赖、改用本地启动脚本,并通过任务计划、launchd或systemd配置开机运行,中文界面建议采用浏览器翻译或本地化封装方案。

Camelot私有化部署实战教程图文详解配置参数测试
AI教程 · 2026-07-18

Camelot私有化部署实战教程图文详解配置参数测试

Camelot适合在内网环境中部署PDF表格抽取能力,重点关注系统依赖、Python环境、Ghostscript配置、参数调优、批量测试与权限隔离,避免把扫描件或复杂版式直接当作结构化结果使用。

MinerU安装教程:小白也能学会多账号配置与工作流模板导入
AI教程 · 2026-07-18

MinerU安装教程:小白也能学会多账号配置与工作流模板导入

MinerU适合将PDF、图片等资料转为结构化文本。安装前需准备Python环境、模型与密钥,多账号配置建议隔离目录和环境变量,导入AI工作流模板后可批量处理文档并降低误操作风险。

TrOCR安装配置及API调用测试全攻略
AI教程 · 2026-07-18

TrOCR安装配置及API调用测试全攻略

TrOCR适合票据、表格截图、扫描件等文字识别场景,可通过Python环境安装、模型加载、本地API封装和接口测试完成部署,需关注显存、隐私与识别质量边界。