
推荐语
过去两年,AI编程最明显的变化,并不是“代码写得更快了”,而是软件开发这件事本身正在被重新定义。
从最早只能补全几行代码的Copilot,到今天能够读懂代码库、调用工具、执行测试、提交修改,甚至持续运行数小时乃至数天的Coding Agent,模型正在从“辅助工程师写代码”,一步步进入软件工程的完整生命周期。对开发者而言,真正变化的已经不只是效率,而是人和代码之间的关系:当正确性检查、安全审查、依赖升级、重构乃至一部分架构工作逐渐自动化,人类还应该把注意力放在哪里?
最初只是OpenAI内部帮助研究人员写Python、搭基础设施的一组小型智能体,后来与“自主软件工程师”项目合并,逐渐成为今天的Codex。更有意思的是,OpenAI在这个过程中做出了一系列看起来并不“封闭”的选择:用Rust重写核心智能体、从一开始开源CLI和SDK、允许接入其他模型,并不断把本地运行的 Coding Agent推向云端,最终与ChatGPT走向统一。
在这篇访谈中,Tibo首次详细讲述了Codex的诞生历程:从DeepMind内部那个比ChatGPT早一年出现的聊天机器人,到加入OpenAI后参与o1推理模型的冲刺,再到ASWE项目如何演变为今天的Codex。他坦诚地分享了那些关键的工程决策——为什么用Rust构建智能体、为什么选择开源、为什么Codex不绑定OpenAI自家的模型——以及这些选择背后关于正确性、效率和开放生态的思考。
The Pragmatic Engineer是由Gergely Orosz创办的科技媒体,通过深度报道与播客访谈,关注软件工程、技术团队及行业变化。Tibo Sottiaux是OpenAI核心产品与平台负责人,也是Codex的创建工程师之一。本次访谈由The Pragmatic Engineer于2026年9月发布,通过与Tibo Sottiaux的深入对话,探讨Codex的诞生、技术与开源选择,以及AI智能体如何改变软件开发和个人工作方式。
Z Highlights
- “我想加入一个真正相信自身使命、并且直接关心如何积极影响世界的团队。”从Google到DeepMind,再到OpenAI,Tibo Sottiaux始终在寻找能够把研究、产品与真实影响结合起来的地方。
- Tibo从Google的一次失败的项目经历中得到的一个教训,一直保留到今天:“要不断质疑,不断深入思考自己实际产生了什么影响,同时也要认真审视自己参与的整个项目究竟有多重要。”
- “代码审查一直关注正确性,但它也承担着信息交换的作用。”未来,正确性和安全性检查将更多自动化,而人类需要把注意力放在产品意图、架构边界和真正值得解决的问题上。
- 当今时代,对软件工程师、AI工程师,以及所有从事软件开发的人来讲,有两个品质是非常重要的:第一,对事物运作方式保持极强的好奇心,以及训练自己快速理解新事物的能力。第二,要真正理解你想解决问题的群体,以及他们所在的社区。
01 2015年加入伦敦Google:竞争程度堪比今天的OpenAI
Gergely Orosz:Tibo,欢迎来到我们的播客节目。很高兴能请到你。
Tibo Sottiaux:谢谢你邀请我。很高兴再次见到你。
Gergely Orosz:很高兴能再和你聊聊。上次我们是面对面交流的,这次则是通过视频。首先,我想问问,你是怎么进入科技行业的,你最早是什么时候意识到,自己想从事与计算机相关的工作?
Tibo Sottiaux:这是个好问题。那是很久很久以前的事了。我出生在布鲁塞尔,后来父母决定搬离那里。他们觉得,买一栋小房子,再翻修一下,应该挺不错的。不过,那栋房子在一个没什么活动的小村庄里。我记得那里大概只有两百名居民,没几个我想聊天的人,也没几个能交上朋友的人,所以我就有点被困住了。那时候我还很小,大概八岁,就整天和电脑打交道,也是在那时开始接触互联网。那成了我了解外面世界的方式,后来的事情也就自然而然地发生了。说起来,这还得归功于我父母把家搬到了那么偏僻的地方,让我除了对电脑产生兴趣,也没什么别的选择了。
Gergely Orosz:高中毕业后,你就上了大学,对吧?开始系统地学习计算机相关知识。
TiboSottiaux:对,我在大学学的是数学,具体来说是应用数学。我上大学比较早,所以毕业也比较早。不过,很长一段时间里,我都觉得自己可能读不完,会中途退学。读书期间,我就经营着一些小公司,还做一些咨询业务,为银行提供服务。我对供应链和应用数学方面的问题很感兴趣,也挺喜欢把这些知识和技能变成服务卖出去,并在这个过程中学到很多东西。后来,我进入了比利时的创业圈。在那里干了一阵子之后,我搬到了伦敦,先在Google工作,后来去了DeepMind,再后来就搬到这里,加入了OpenAI。我现在在加州。我很喜欢这里的天气,我们也可以聊聊这个。在这里过得挺不错的。
Gergely Orosz:大学刚毕业,你就创办了一家公司,对吧?看来你那时候就对创业充满热情,骨子里就有一股创业的冲劲。
Tibo Sottiaux:对,这家初创公司主要做的是医药供应链,具体研究临床试验中的供应链管理:如何优化流程,决定要不要生产更多药品、把药品送到哪里、如何调配和发运,以及怎样减少浪费,从而提高临床试验的效率。当时采用的是传统方法,也就是不依赖机器学习的技术,主要进行优化,处理蒙特卡洛模拟之类的问题,本质上属于随机多阶段优化问题。我们还把这些方法应用到了钢铁行业,以及欧洲的电网系统。凡是具有优化问题特征的领域,我们都会感兴趣。直到今天,这家公司仍然在运营,我认为他们现在做的工作依然非常有意思,只不过现代人工智能的发展,确实正在给这个领域带来很大变化。
Gergely Orosz:不过,这一点很有意思。你刚才说,那时用的不是机器学习,而是传统方法,但接着又提到了蒙特卡洛模拟、优化算法之类的技术。我感觉你当时是一路钻研得很深,对吧?你的思路似乎是:面对一个具体的问题领域,就想办法运用数学——包括自己已经学过的,以及后来补充学习的知识——不断深入研究。我这样理解对吗?
Tibo Sottiaux:对,所以我才会如此着迷于应用数学。核心想法是:一方面有理论数学,或者理论科学、理论物理,人们研究它们,是因为其中有未知的东西等待发现,也因为它们本身很美。那里关注的是规律、模式,以及不断拓展认知边界,只是你未必一开始就知道它将来能应用到哪里。另一方面是现实世界。现实中到处都有各种有意思的问题,而我很想看看自己能不能让这个世界变得更好。所以,我会思考:怎样把复杂而成熟的数学方法应用到现实问题中,尽可能优化我们周围的世界?这也是那家初创公司背后的核心理念。
Gergely Orosz:后来,你离开了创业公司,加入了Google,最开始是在伦敦的Google。那是2015年。我记得,当时Google是一家非常难进的公司,无论是在行业地位还是声望方面,竞争程度可能和今天的OpenAI差不多。你最初参与的是Google地图项目,后来又转到了DeepMind。能不能谈谈你当时主要负责什么?另外,既然那本来就是一个很有意思、而且你显然也很喜欢的领域——比如优化、物流以及相关问题——你为什么会选择离开,转向其他方向?
Tibo Sottiaux:我一开始并不是做Google地图,而是参与了一个旨在提升互联网和网站速度的项目,尤其关注移动端。当时Google正在经历从桌面端向移动端的转变,越来越多的流量转移到了手机上,所以他们希望提前布局,为此资助了不少计划和项目。我参与的就是其中一个。这段经历非常有意思,因为我们是广告部门内部的一个小团队。这个项目的目标,是抵消流量转向移动端后可能造成的广告收入损失。
我们做了大约两年,后来项目被取消了。虽然这是我解决高难度技术问题时最开心的一段经历,但我也从项目缺乏产品市场匹配、没有找到合适的用户、没有建立正确的反馈闭环,以及过于相信产品经理“项目进展顺利”的说法中学到了很多——事实上,项目当时根本进展得一点也不好。有一天,一位副总裁从加州飞过来,然后告诉我们:“这个项目要取消了。”原因是:很遗憾,你们只有几百名用户,这显然达不到Google的规模要求。让人难以置信的是,当时很多人都感到很意外。我从那次经历中得到的一个教训,一直保留到今天:要不断质疑,不断深入思考自己实际产生了什么影响,同时也要认真审视自己参与的整个项目究竟有多重要。
后来我转到了Google地图。那段经历非常有趣,我主要负责用户评价相关的工作。大约一年后,我实在无法忽视DeepMind的吸引力。那是一个非常特别的地方,总部就在伦敦。当时那里正在发生许多令人惊叹的事情,正处于早期发展阶段,已经开始显现出AlphaGo这类项目的迹象。他们似乎一直在做非凡的事情,专门挑战最困难的问题。以我的经历和背景,自然很容易被吸引过去。加入DeepMind后,我主要参与研究基础设施和研究工具的建设。这也成为我近十年来一直延续的一条主线:思考如何打造工具和产品,帮助其他人提高效率,并为他们提供真正有用的能力。起初,我是在为研究人员做这些事情。后来,我逐渐开始以更普遍、更抽象的方式思考这些问题,最终一路走到了现在的位置。
Gergely Orosz:还有一个很有意思的故事。你最近也在X上分享过:你曾参与打造Google内部的一个聊天机器人。可以说,它和ChatGPT有些相似,但比ChatGPT早了一年。能不能聊聊这段经历?这是个新故事,我之前还没听你讲过。
Tibo Sottiaux:这件事发生在DeepMind内部。当时其实有好几条探索路线,Braid也是其中一项相对独立的工作。他们也在研究自己的大语言模型,不过这绝对不是DeepMind当时的主攻方向。那时DeepMind更关注宏大的挑战、各种游戏,以及强化学习——这里说的不是语言领域的强化学习。与此同时,有一个团队在推进大语言模型,思考这样一个问题:如果大规模文本语料包含了我们需要的一切呢?如果把语言能力推到极致,只是不断扩大语言模型的规模,这是否足以实现通用人工智能?这在当时是一个非常热门的争论。后来,其中一个团队决定全力推进这条路线。
对我来说,这一切发生得很自然。因为我当时正和其他人一起为研究工作搭建工具,所以很容易就会开始思考:我们能用这个模型做什么?应该怎样把它呈现给研究人员?怎样让他们调试输入和输出?最后,你很自然地就会做出一个聊天系统。于是,我们在DeepMind内部把它做了出来,大家都玩得非常开心。最开始,那些模型的表现有点荒诞:回答不太连贯,也不是特别有用。不过,和它们反复试验、摸索各种用法还是很有意思。很快,这个应用就在DeepMind内部像野火一样传播开来,大家纷纷分享自己和模型的对话。
它逐渐不再只是一个研究项目,或者只服务于研究人员的工具。后来,大家开始希望把它作为外部产品发布。但DeepMind当时并没有为此做好准备。Google确实有一套成熟的产品发布流程,也有完整的配套机制,以及经过严格验证的正式生产技术栈。多年来,我们已经围绕这些流程做了高度优化,能够把事情稳妥地做好;但与此同时,这样的环境也非常难以真正推动创新。
02 加入OpenAI与Codex:从研究基础设施到自主软件工程师项目
Gergely Orosz:是什么促使你加入OpenAI?如果把自己代入你的处境:在2023年或2024年,你身处Google,不断发表优秀的论文,研究成果也非常出色。你每天都在做很有意思的事情,不断突破已有的边界,而且已经在这家公司内部完成了转岗。究竟是什么促使你仍然愿意继续探索,去想:外面是不是还有别的可能?是不是还有其他值得做的事情?
Tibo Sottiaux:对,我当时确实过得很舒适,Google是个很好的地方。不过,我内心真正渴望的是认识优秀的人,同时加入一个我真心认同的使命。我希望团队成员都真正相信这个使命,真切地关心如何以积极而直接的方式影响世界,而不是觉得:“我们只是在这里完成自己的工作,至于怎样让它真正发挥作用,那是别人的事。”我想加入的是这样一个团队:大家会把所有因素放在一起考虑,研究和产品会真正协同设计。那时OpenAI的发展势头非常强劲,ChatGPT也正在迅速崛起。我和几位OpenAI的人聊过之后,简直不敢相信:ChatGPT只有大约20个人在负责吗?这个团队规模小得惊人,但也一定拥有极大的自主权。它究竟是怎么做到的?只有20名工程师,怎么能维护一个规模这么大、同时又保持这么高自主性的产品?我就这样不断深入了解,最后发现那里有一群非常出色的人,也有一个令人振奋的使命。团队成员能力很强、动力十足,这些都吸引了我.
我加入后,很快就参与了推理模型的早期工作——这也很符合OpenAI一贯的风格。我刚加入时,大家就告诉我:“现在有一件大事正在推进,我们要发布推理模型,这会是一种全新的范式。”于是我们马上开始冲刺。大约一个月后,公司就发布了o1预览版。能参与其中,令人非常振奋。我想加入一个行动迅速、重视实际影响、能够感知外部世界并认真倾听的地方。这也是我后来构建Codex和其他产品时一直坚持的理念:建立一个用户社区,倾听社区的声音,形成高强度的反馈闭环,然后打造真正值得投入、真正能为世界提供实用价值的产品。
Gergely Orosz:然后,当然,你很快就开始参与Codex的工作了。你是在2024年加入OpenAI的。能不能带我们回顾一下,当时你刚加入时,团队对于人工智能、大语言模型以及代码的整体思路是什么?我知道那时候有一个ASWE项目,也就是“自主软件工程师”(Autonomous Software Engineer)。
Tibo Sottiaux:ASWE,对,这就是我们当时在内部的叫法。现在已经没有ASWE这个项目了,统称为Codex。对我来说,加入OpenAI后,我首先开始为研究工作搭建基础设施。和我之前做过的很多事情一样,主要包括大规模数据的存储与分析,以及帮助我们理解训练过程的工具。我这些年做过很多不同的项目,但核心始终是为他人搭建工具,让他们工作得更快,同时真正把这件事做好,并通过工具和基础设施创造新的可能。所以,加入OpenAI时,我的想法也是一样的。随着o1预览版以及后来一些模型的出现,我们很清楚地意识到,必须利用模型本身来帮助我们加快工作速度。于是,我开始着迷于这样一个问题:模型的局限究竟在哪里?我们要怎样把这些模型应用到研究工作本身?
我和研究团队的其他同事一起,开始训练模型,开发一些小型智能体。这些就是Codex真正的前身。当时,我们训练内部模型,让它们非常熟悉OpenAI的Python代码库,也让它们具备良好的架构判断力和代码风格意识。那时模型只处理Python。我们的想法是,利用这些模型快速搭建基础设施,也帮助研究人员更快地编写代码,从而让整个团队的推进速度更快。随着我们不断推动这件事,并把它进一步简化到核心,我们发现自己可以非常迅速地取得进展,也能非常快地从中学习。
Greg和Sam都给予了极大的支持。Greg还非常坚持一点:我们不能只把注意力放在OpenAI自身,也要思考怎样让全世界都能从中受益。他鼓励我们,不要只把它当成OpenAI内部的工具,也要把它发展成真正面向用户的产品。于是,我们把这项研究工作和ASWE项目合并到了一起,开始集中打造同一个产品。后来经过一轮冲刺,我们推出了最初的云端Codex。不过,它当时并没有实现产品市场匹配,因为使用门槛有点高,操作流程也比较繁琐。与此同时,我们还发布了Codex CLI,并继续推进这项工作。但始终贯穿其中的一个核心问题是:怎样才能让模型真正帮助我们完成这些工作?
03 为什么选择Rust与开源:为Codex建立安全、可靠且开放的基础
Gergely Orosz:你刚才提到,最开始你们训练模型,让它们学习Python代码,并实际帮助改进相关代码。但后来你们做了一个很有意思的决定:Codex是用Rust构建的。可是在当时,模型对Rust的掌握并不属于训练分布之内,对Rust的表现也不如Python或TypeScript。你们为什么会做出这样的选择?当时是预期模型最终会追上来,还是认为性能更重要?因为这确实很反直觉。其他大多数智能体运行框架,实际上都不是用Rust构建的,而是采用模型更熟悉、更接近训练分布的TypeScript、Python或其他语言。