时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

OpenAI 的“编程”新范式?其实是瀑布模型的回魂:“听 PM 的话、写需求文档”

  • 2025-07-23
    北京
  • 本文字数:6258 字

    阅读完需:约 21 分钟

大小:2.90M时长:16:54
OpenAI 的“编程”新范式?其实是瀑布模型的回魂:“听 PM 的话、写需求文档”

结构化沟通是瓶颈。谁沟通得最好,谁就成为最有价值的程序员。

 

在今年的 AI 工程师大会上,OpenAI 的研究员 Sean Grove 发表了题为《新代码》(The New Code)的演讲,有人认为“这是一个革命性的概念”:在 AI 驱动的时代,清晰、具有人类可读性的规范(spec)将取代传统代码,成为软件开发的核心产物。

 

“编程的本质就是沟通,” Grove 认为软件开发从来不只是写代码那么简单,其核心是一种结构化的沟通:先理解需求,再明确目标,最后将这些想法清晰地传递给团队成员和计算机。

 

Grove 强调,这种从代码到规范的转变,不只是方法论的更新,而是工程实践的未来方向。他指出,代码本身只是人类意图的一种“失真反映”,在将想法转化为现实的过程中难免信息丢失或扭曲。而真正稀缺的能力,不再是写代码,而是如何把人类的意图精确转化为清晰的规范与提示词。

 

Grove 的这番话,在技术社区也引发了不小的讨论。

 

一位网友犀利地评论:这套思路本质上就是“多听产品经理的话”,通过写更好的规范文档来驱动开发流程,并且从 Grove 的描述来看这种模式其实是把工程师变成“维护需求文档的产品经理”。

 


简而言之,他想让你多听产品经理的话,反复完善需求文档。

 

规范就是需求文档,他并不主张直接用“氛围编程”或结对编程,而是提倡通过不断更新需求文档来与智能代理进行“氛围编程”。提示词工程并没有过时,这个标题说得不好(小编注:这是视频最开始发布时的原始标题“Prompt Engineering is Dead”),他只是希望它能在更高的抽象层次上得到应用并具备复用性。

 

理想状态是让写代码的人转变为维护需求文档的产品经理,但他并没有给出这种方式目前能自动运行的证据,还提到这些需求文档更多是为了协调人际工作。他确实描述了他们在 4o 项目中使用的基本更新流程,但并没有特别创新的地方(规范文档变化时,会新增或更新评分器)。

 

其他网友也表示认同,认为 Grove 的潜台词是:所有人的角色正在趋同,每个人都在向产品经理的方向靠拢。

 


nomad_manhattan:这正是产品经理一直在做的事情——收集用户需求和要求,起草产品需求文档(规范),并与各方利益相关者就关键绩效指标(KPI)和成功衡量标准达成一致,同时与数据科学家和工程师协商可行性和工作量估算。演讲者没有明确指出的是,角色正在趋同;每个人都在成为产品经理。

 

natenoonen2235:敏捷宣言之所以被写成,是因为开发者们一直把自己看作程序员,而不是管理者。AI 并没有带来什么新玩法,它只是对那些一直倡导敏捷开发、测试驱动开发、行为驱动开发以及注重结果胜过过程的人们的一种验证。不过,和任何工具一样,关键在于使用者,而不是工具本身。

 

还有网友调侃:这一套说辞听起来,像极了软件工程圈正缓慢地“重新发明”瀑布开发模型和 ASPICE(汽车软件开发规范)

 


当然也有人站出来明确反对“规范就是新的代码”这个说法:“你的应用凌晨三点崩溃,那时你调试的还是实际代码,而不是 Markdown 文档。当 AI 生成了有问题的代码(这迟早会发生),你猜我们要修的是什么?答案很简单:不是规范。代码才是最终的可执行真相,其他的都只是美好愿景。”

 


不过,不可否认的是,Sean Grove 所描绘的“规范驱动开发”路线,确实代表了当下 AI 编程的一种重要转折:当模型越来越强、代码越来越好写,人类程序员的价值,或许正从“造轮子”转向“定方向”

 

以下是根据 Grove 演讲整理出的几个核心观点,非常值得思考:

  • 软件开发的瓶颈,正在从写代码上移到写规范(spec)这一流程上 ;

  • 规范就是“新代码”;

  • 代码只是规范的一种有损投影;

  • 代码本身并不包含最初的意图,更像是意图的“编译产物”;

  • 扔掉 prompt 只保留代码,就像扔掉源代码只保留二进制文件一样;

  • 一个好的规范文档应该能:发现意图冲突、提供策略示例、标注歧义,并表达“意图”而不是语法;

  • 把规范当成代码来编写,意味着每个人都能参与贡献;

  • 新一代 IDE 将类似现有 IDE,但功能重点从类型管理、语法逻辑、自动补全等,转向帮助生成清晰的意图文档、管理意图冲突、突出歧义、测试预期结果与人类意图是否一致等;

 

为了更深入了解 Grove 的完整思考,我们翻译了他的演讲内容:

 

“新代码”革命:从传统代码到清晰规范

 

今天我想跟大家聊聊自己眼中的编程新未来——特别是新规范。这也代表着整个行业长久以来的期望:通过表达意图一次性编写代码,之后即可随处运行。

 

简单介绍一下,我叫 Sean,在 OpenAI 工作,专门负责对齐研究。今天我想聊聊代码与沟通的价值,以及为什么要用新规范来达成这个目标。

 

下面我会以模型规范为例,讨论如何跟其他合作者沟通意图,包括“4.0 版本过于讨好”的问题。

讨论过程将涉及如何施行规范,如何将意图传递给杠,以及如何将规范转化为代码来处理。最后我还会分享几个开放问题。首先,咱们从代码和沟通开始。

 

代码只占 10%,另外 90%的价值在哪里?

 

如果你是一位程序员,那么你会觉得自己写出的代码,就是最有价值的专业成果吧?

 

这听着像是废话,毕竟我们都在用代码努力解决问题。我们跟其他人沟通、收集需求、思考实现细节,再融合不同来源的信息。而最终得出的成果,就是代码。

 

代码就是我们可以操作、衡量和讨论的对象。然而,这种思维方式在一定程度上也低估了大家做出的工作。代码其实只占整个价值创造过程的 10%到 20%,余下的部分则体现在结构化的沟通当中。

 


具体情况可能各有不同,但常规的流程应该是这样:先跟用户沟通,了解他们面临的挑战。我们从叙事中提取结论,然后构思如何解决这些问题。需要实现的目标是什么?接下来是规划达成目标的方法,再跟同事们做进一步讨论。

 

之后就是把这些计划转化成代码,这个过程当然很重要。再就是进行测试和验证——这就跟代码本身无关了,对吧?换言之,我们关注的是代码运行时能否实现目标,能否缓解用户的难题。

 

我们关注的是代码对真实世界的影响,所以沟通、理解、提炼、构思、规划、分享、翻译、测试和验证都是工作的重要环节。这些就是我说的结构化沟通,也是工作中最大的瓶颈所在。明确要构建什么、与他人沟通并收集需求,知晓如何构建、为什么构建,最终还要判断构建是否正确、是否实现了最初的目标。

 

而 AI 模型越先进,这个瓶颈的约束性越严重。

 

下面我们以氛围编程为例进行说明。氛围编程的体验不错,因为它从沟通起步,而代码反而是沟通之后自然生成的产物。

 

我们只需要描述自己的意图和想要的结果,之后就由模型帮我们处理繁琐的工作。我们通过提示词跟模型沟通,表达我们的意图和价值取向,最后得到代码工件。之后提示词就没用了。

 

如果大家写过 TypeScript 或者 Rust,那么代码总会经过编译器被编译或转换成二进制文件。这个二进制文件不重要,源规范才是核心所在、才是真正有价值的部分。

 

但在使用提示词模型时,我们做的恰恰相反。我们保留生成的代码,并删去提示词。这类似于把源代码撕碎,之后非常仔细地对二进制文件进行版本控制。

 


正因为如此,我们才需要通过规范明确指定意图和价值主张。

 

明确的规范有助于高效协同,让团队成员朝着共同的目标迈进,确保每个人保持一致。这是我们讨论、辩论、参考和同步的结果。这一点非常重要,所以我想再次强调:明确的规范能够实现高效协同,代表着沟通、讨论、辩论、参考和同步的结果。如果没有规范,那每个人脑子里就只有一个模糊的概念。

 

规范往往比代码更有力量

 

下面咱们聊聊为什么规范往往比代码更有力量,因为代码实际上是对规范的有损投射。

 

这就像我们把一个编译好的 C 二进制文件反编译后,一定会失去清晰的注释和拥有良好命名的变量。这时候我们就得推断当时的开发者想做什么? 这段代码为什么要这样写?这是一种有损翻译。同样的,即使是再优秀的代码,往往也无法直接体现所有初始意图和价值取向。阅读代码时,我们得推断开发团队当初想要实现什么目标。

 


因此在书面规范中体现的沟通过程,在这方面就比代码好用。它实际上汇总了编写代码所需要的全部必要条件。这就像把源代码传递给编译器,再针对各种不同架构进行编译,源文档中的信息可以充分描述整个转换过程。

 

同样的,一份足够健壮的模型规范也能生成优秀的 TypeScript 代码、Rust 代码、服务器、客户端、文档、教程、博文乃至播客。

 


对于以开发者为主要客户的公司而言,不妨思考一个问题:如果把整个代码库、所有文档,也就是整个业务运营代码,都塞进播客生成器里,能产出有趣且引人入胜的内容,告诉用户要如何成功实现他们的目标吗?或者说代码里的信息并不够,还需要额外的补充?

 

所以展望未来,新的稀缺技能将是如何编写能够全面捕捉意图和价值取向的规范。谁能掌握这项技能,谁就会成为最具价值的程序员。

 

其实今天的程序员很多也在做这件事,包括产品经理和立法者,都在做类似的工作。

 

这实际上是一种普遍原则。

 

“新代码”是一堆 Markdown?

 

说到这里,咱们看看真实的规范是个什么样子。这里以 OpenAI 模型规范为例。去年 OpenAI 发布了自己的规范,这是一份动态文档,旨在明确介绍 OpenAI 公布的模型具有怎样的意图和价值取向。

 


这份规范在今年二月完成了更新和开源,现在大家可以访问 GitHub 查看模型规范的具体实现(https://github.com/openai/model_spec)。但意外的是,我看到的只是一大堆 Markdown 文档。我不是说 Markdown 这种格式不好,它易于阅读、支持版本控制,还包含变更记录。而且因为是自然语言,每个人都可以为它做出贡献,包括产品、法律、安全、研究和政策人员。他们可以阅读、讨论、辩论并为源代码做出贡献。这样一来,大家就能围绕同一套意图和价值取向保持统一。

 


可尽管我们努力使用更清晰的语言,但有时仍然很难表达其中的细微差别。因此,模型规范中的每项条款都有对应的 ID。比如说 sy73,这个 ID 对应 repo 中的 sy63.md 文件,其中包含针对该条款的一项或多项复杂提示词。也就是说,文档本身实际上明确了标准,即被测模型必须以真正符合该条款的方式来回答问题。

 

咱们再说说讨好的事。最近 4.0 版本经历了一次更新,不知道大家听说没有。更新后大模型特别喜欢讨好用户,那这种情况下模型规范的价值取向变成了什么?

 

例如,用户会以牺牲公平真相的方式描述事件,而模型却仍然赞扬用户的观点。

 

其他一些广受尊重的研究人员也发现了类似的问题。很明显,这种过度讨好会损害信任。

 

新的问题也由此出现:这种讨好是故意为之吗?或者只是单纯的意外?那发布前为什么没被发现?

 

好在模型规范自发布以来就专门针对此类问题设有条款,其中提到“不要讨好”,并解释称虽然讨好能在短期内提升用户感受,但从长远来看对每个人都是有害的。也就是说,模型规范代表着大家一致认可的意图和价值取向,而只要与之相违背,那就代表大模型出了 bug。所以我们决定回滚,发布了相关研究和博文,并修复了这个问题。

 

而且在此次事件中,规范成为支撑信任的锚点,让人们有了可以把握的预期。由此看来,模型规范在体现普遍意图和价值取向方面确实意义重大。但更理想的情况是,我们应该让模型及其生成的结果始终与规范保持一致。所以我们发布了一篇“审议性对齐”的论文,探讨了如何自动对齐模型。这项技术的细节是:先获取规范和一组可能与之相悖的提示词,并从所测试或训练的模型中采样。

 

之后将获得的响应、原始提示词和策略输入另一个更强大的模型,要求它根据规范对响应进行评分,包括对齐度如何等。如此一来,规范文档就既充当训练材料、也充当评估材料。根据得分,我们会强化具体权重,例如在上下文中引入规范,并在每次采样时添加系统消息或开发者消息。虽然会占用一定算力,但却能有效提高模型的输出一致性。

 


请注意,规范内容是很灵活的,可以是代码风格、测试要求或者安全要求。所有这些都可以嵌入到模型当中。通过这种技术,我们可以将规范从推理时计算转移到模型权重当中,以便模型能够真正感知到策略内容,并像肌肉记忆那样在处理的各种任务中加以应用。

 

虽然这里的模型规范只是 Markdown 格式,但其实跟代码也差不多,二者区别很小。

 

这种规范可执行、可测试,拥有与现实世界对接的接口,也可作为模块来交付。

 

在编写模型规范时,我们遇到的很多问题都跟编程类似。比如会用到类型检查器——目的是确保一改,即如果接口 A 依赖模块 B,那么二者的相互理解就必须一致。所以如果部门 A 和部门 B 都编写了规范,且两种规范间存在冲突,就必须提前处理、甚至阻止规范的发布。

 

可以看到,策略实际上可以包含自身单元测试。这类似于各种代码检查器,如果描述语言太过模糊,得出的结果就会让人看不懂。大模型也是这样,模糊的要求会降低输出质量。

 

所以规范实际类似于一个工具链,只是它针对的是意图,而非语法。

 

编程绝非最终目标

 

下面,咱们聊聊立法者跟程序员的相似之处。

 

美国宪法就是一份国家层面的示范性规范。它有书面文本,政策条例也都清晰明确,可供大家参考。这并不代表我们完全认同,但至少可以作为现状或者说现实。宪法也有版本控制机制来修改、补充和更新。司法审查中,评分专员可以对现状进行打分,观察与政策的契合程度。毕竟这个世界纷繁复杂,总会有些信息会在不经意间被错过,最终导致错误判断。在这种情况下,司法审查就需要大量核算,尽可能让法条与实际情况匹配起来。而在宣判之后,就形成了判例,可以作为后续单元测试的评估素材,消除歧义并强化原始政策规范。

 

它嵌入了类似指令链的东西,随着时间失衡这些指令链形成了训练循环,帮助我们所有人朝着共同的意图和价值取向迈进。所以宪法就是一种传达意图的产物,它是合规性的基础、代表一种安全的演进方式。

 

所以,未来立法者也可能会成为程序员,或者反过来,程序员也可能成为立法者。

 

这其实是个非常普遍的概念。程序员的工作是通过代码规范来协调芯片,产品经理通过产品规范来协调团队。立法者实际是通过法律规范来协调人类。在座的各位,当我们输入提示词时,这代表的就是一种原型规范,其目的就是让 AI 模型向着你预设的意图和价值取向迈进。正是这种规范,让我们能够更快、更安全地交付产品。而且每个人都可以为规范做贡献——包括产品经理、立法者、工程师乃至市场营销人员,现在大家都是程序员。

 


软件工程从来就不与代码单独绑定。回到我们最初的问题,很多人觉得自己写的不是代码、所以代表没干活,这是完全错误的。

 

编程确实是一项重要的技能、也代表一种宝贵的财富,但绝非最终目标。工程的关键是人类对于软件解决方案的精准探索,目标是解决人类的问题。如今的我们,正从各种不同机器编程转向统一的人类编程,为的都是解决问题。

 


所以希望大家付诸行动,在开发下一项 AI 功能时,可以先从规范入手。

 

比如说大家到底想要什么样的效果,成功的标准要如何定义?拿点时间,想想怎么把这些清晰记录并传达出来。

 

另外,注意规范要可以执行。将规范输入模型,再对模型进行测试。从这个角度讲,编程和规范已经高度统一了起来。

 

我很好奇未来的 IDE 会是什么样子。可能那时候的集成开发环境就像是集成思维澄清器。在编写规范时,它会帮我们找到模糊不清的部分,要求我们做出澄清,让最终结果能与其他人高效对齐、明确意图并传递给模型。

 

最后我想呼吁大家,一定要重视并参与到规范的制定中来。这是大规模协调智能体的前提,也是推动 AI 步入下个发展阶段的必要手段。

 


Vishal Kapur:与代理一起编码的一点是,它暴露了你对产品细节的思考有多么不成熟。它们会做一些你没要求的事情,然后你意识到你从未告诉它你想要什么,甚至可能你自己也从未完全理解过。

 

参考链接:

https://www.youtube.com/watch?v=BIvILtt164I

https://www.reddit.com/r/OpenAI/comments/1m198hh/openai_sean_grove_the_new_code/

2025-07-23 09:504720

评论

发布
暂无评论

《面试补习》- 你来说说什么是限流?

九灵

Java 面试 分布式 sentinel 限流

超视频化到来,你能看见什么?

阿里云CloudImagine

阿里云 计算机视觉 音视频 视频 视频云

IPFS挖矿值得投资吗?IPFS挖矿前景如何?

通证经济最核心的价值,就是带来了流动性的质变

CECBC

对产品来说,颜值、体验是不是很重要?

石云升

用户体验 职场经验 7月日更

北鲲云超算平台解决生物科学领域困境,探索更多可能性

北鲲云

图扑软件受邀核电数字化技术大会,技术创新助力行业革新

一只数据鲸鱼

数据可视化 核电 核电站 数字大会

架构之:REST和RESTful

程序那些事

微服务 软件架构 程序那些事

ARTS 打卡计划-1

语霖

索信达首席科学家张磊:以AI创新技术满足金融场景的“私人定制”

索信达控股

大数据 数字化转型 银行数字化转型

牙膏踩爆!Intel 5nm工艺曝光:直逼IBM 2nm

E科讯

IPFS算力挖矿排行榜,IPFS挖矿公司排行榜

Git工作流中常见的三种分支策略:GitFlow、GitHubFlow和GitLabFlow

华为云开发者联盟

git 软件开发 工作流 GitFlow GitHubFlow

极狐 GitLab 初探(上)

极狐GitLab

ci DevOps gitlab CD 敏捷开发管理

工卡融合柔性屏,办公效率和信息安全性可能会有质的飞跃?

船医特拉法尔加

图解堆排序,带你彻底了解清楚!

程序员的时光

Java 面试 算法 排序算法 堆排序

Vue进阶(幺零六):子组件处理父组件异步值传递给子组件处理

No Silver Bullet

Vue 组件 监听 7月日更

EasyRecovery深度扫描以恢复桌面遗失数据的方法

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

对话系统简介与OPPO小布助手的工程实践

OPPO小布助手

人工智能 对话 智能助手 智能对话

手写QuickSort算法

实力程序员

程序员 算法 成长 C语言

万万没想到,低功耗也会烧毁元器件?

不脱发的程序猿

嵌入式 电路设计 低功耗 ADI 稳压器

Jira 要停售本地私有化部署的版本了,这对国产项目管理软件是机会吗?

万事ONES

项目管理 Atlassian Jira ONES

Go 学习笔记之 方法

架构精进之路

Go 语言 7月日更

官宣!DataPipeline2021数据管理与创新大会将于7.29北京重装开启!

DataPipeline数见科技

大数据 数据融合 数据管理

建立对分布式锁的系统认知-从Redlock开始

刘绍

程序员 分布式 分布式锁 RedLock redisson

Vue进阶(幺捌伍):动态设置系统字体

No Silver Bullet

Vue 7月日更 字体设置

怎么借助Camtasia给电脑游戏录屏

淋雨

视频剪辑 Camtasia 录屏

什么是网络单纯型算法

华为云开发者联盟

算法 线性规划 网络单纯型 计算矩阵

带你换个角度理解图卷积网络

华为云开发者联盟

神经网络 卷积神经网络 图神经网络 卷积 图网络

Serverless 时代下大规模微服务应用运维的最佳实践

阿里巴巴中间件

云计算 Serverless 微服务 云原生 中间件

数据驱动决策,可视化推动传统电力发展革命史?

一只数据鲸鱼

数据可视化 智慧能源 水力发电 智慧水利

OpenAI 的“编程”新范式?其实是瀑布模型的回魂:“听 PM 的话、写需求文档”_生成式 AI_Tina_InfoQ精选文章