OpenAI用AI写了100万行代码烂芒
TL;DR(极简版):
OpenAI 已经做到:
AI 自己写、测、改代码,人类一行不写
核心不是 AI 变强,而是方法变了:
人负责定规则,AI 负责执行
关键只有一句话:
不会写规则的人,会被会写规则的人淘汰
以前:你写代码
现在:你定义“什么是好代码”
OpenAI 有一个团队的顶级程序员基本不写代码。
这是 OpenAI 工程师 Ryan Lopopolo 在今年二月发的一篇工程博客里记录的真实经历。三名工程师,从空仓库开始,五个月时间,一百万行代码,1500 个 PR,产品已经有真实用户在日常使用。整个过程,人类没有手动写过一行代码。
这套方法论有个名字,叫 Harness Engineering——驾驭式工程。
1784年的一个工人,和2026年的一个工程师
1784年,英国某座工厂里,有个工人每天的工作就是站在蒸汽机旁边,盯着转速,手动调节阀门。转快了拧小,转慢了拧大。一整天,就干这一件事。
后来詹姆斯·瓦特发明了离心调速器——一个会随转速自动张开或收拢的飞球装置,直接接在阀门上。转速高了,飞球张开,阀门自动收小;转速低了,飞球收拢,阀门自动开大。机器自己管自己,不再需要人盯着。
那个工人没有消失,但他的工作彻底变了。他不再转阀门。他开始设计调速器。
两百多年后,2026年的 OpenAI,一个三人工程团队用五个月时间,让 AI 写了一百万行代码,发布了一个有真实用户的产品。整个过程,人类没有手动写过一行代码。
这两件事,本质上是同一件事。
Norbert Wiener 在1948年给它起了个名字:控制论(Cybernetics),来自古希腊语 κυβερνήτης,意思是"舵手"。你不再转阀门,你来掌舵。Kubernetes 这个名字,也来自同一个词根。
OpenAI 把这套做法叫做 Harness Engineering——驾驭式工程。
先说清楚,这不是"AI 辅助编程"的升级版
很多人听到"AI 写代码"会条件反射地联想到 Copilot,联想到 Tab 键自动补全,联想到"省点打字力气"。
这是两件性质完全不同的事。
AI 辅助编程,人类还是主角。你决定写什么、怎么写,AI 帮你快一点。
推荐阅读:斯坦福CS146S:AI辅助、多智能体、AI原生,一次说清楚三者关系仅仅离上篇多agent和ai原生概念的文章发布过去 12 天,技术路线就已经发展出新的脉络。有一句话怎么说:”躺平的速度约等于ai进化的速度,过段时间再学“不无道理。harness 概念是 7 天前发的,我在脑子里面基本上每天都有30-60min在想这个概念,或者在看别的博主都解释、内部培训文档,卷疯了。
驾驭式工程,AI 智能体是主角。人类退到幕后,扮演架构师、规则制定者和裁判员。AI 自己决定怎么实现、自己跑测试、自己提 PR、自己回应审查意见、自己合并代码。
更关键的区别在于:AI 能力不是瓶颈,环境设计才是。
绝大多数人抱怨"AI 老是做错事,不理解我们的代码库"——这个诊断几乎都是错的。不是 AI 没有能力,而是你没有把它需要的知识外化出来。它不会通过"感受团队气氛"来学习规范,你不写下来,它就永远不知道。
这是驾驭式工程最反直觉的地方:问题不在 AI,在你自己有没有把判断力变成机器可读的东西。
真正的工作,发生在这五个地方
1、关闭高层的反馈回路
代码库其实一直有反馈回路,只是层次太低。
编译器负责语法,测试套件负责行为,Linter 负责风格——这些都是真实的控制系统,但它们只能检查"可以机械验证的属性":能不能编译?测试过不过?格式对不对?
更高层的问题——这个改动符不符合系统的整体架构?这个抽象三个月后会不会变成麻烦?——从来没有传感器,也没有执行器。只有人类能在这个层面做判断,也只有人类能动手修。
LLM 同时改变了这两端。它可以在人类曾经独占的层面上感知问题,也可以在同一层面上执行修复——重构一个模块,重新设计一个不一致的接口,围绕真正重要的契约重写测试套件。反馈回路第一次可以在真正重要的决策层面闭合。
这是整个驾驭式工程的理论基础。其余的一切,都是在回答同一个问题:怎么把这个回路调好。
2、把判断力变成机器可读的东西
这是最难的部分,也是大多数人卡住的地方。
工程师最宝贵的东西——什么是好代码、哪些模式这个架构鼓励、哪些模式要避免——通常只存在于脑子里,或者散落在 Slack 记录和会议纪要里。对人类来说,这些东西通过"感受"传递,新同事会慢慢被"熏陶"出来。
AI 没有这个能力。它在第一百次运行里犯的错和第一次完全一样,除非你把规则写下来。
OpenAI 的解法是三层结构:架构文档描述真实的分层关系和依赖方向;自定义 Linter 把规则变成自动检查,报错信息直接写给 AI 看,告诉它"你应该这样改";"黄金原则"把团队的品味编码成可执行的规范。
他们花了每周五一整天清理"AI 残渣"——直到把自己的标准编码进工具里,这个工作才消失。这不是 AI 变聪明了,是他们把聪明变成了规则。
3、给 AI 一张地图,不是一本百科全书
上下文窗口是稀缺资源。往 AI 的上下文里塞越多,真正有用的信息就越少。
OpenAI 踩过这个坑——他们试过一个巨大的 AGENTS.md,把所有规则和注意事项全装进去。结果 AI 要么漏掉关键约束,要么对着已经过时的规则反复优化,越跑越歪。更麻烦的是,没有人愿意维护这个文件,它慢慢变成了陈旧规则的坟场。
他们后来的做法极其克制:AGENTS.md 只保留大约 100 行,作用是一张索引地图,告诉 AI"遇到什么问题去看哪个文件"。真正的知识按领域分散存放,有专门的 CI 作业检查文档是否过期、是否有交叉链接。
你要给 AI 的是导航系统,不是城市全图。 关键是渐进式披露:从一个小而稳定的入口开始,指向更深层的信息,而不是一开始就把所有东西倾泻进去。
4、让应用对 AI 直接可见
有一个细节,比什么理论都直观:OpenAI 把 Chrome DevTools 协议接进了 AI 的运行时。


