The Pragmatic Engineer - 与 Tibo Sottiaux 一起构建 Codex 封面

与 Tibo Sottiaux 一起构建 Codex

Building Codex with Tibo Sottiaux

本集简介

由以下赞助商呈现: • turbopuffer – 基于对象存储构建的向量和全文搜索引擎。它速度快、成本低,且具有极高的可扩展性。 • Antithesis – 无需人工审查或传统集成测试即可验证系统的正确性——从而避免漏洞或服务中断。 • Entire – 为智能体时代重新打造的 Git 托管平台。每一次智能体会话、提示词和工具调用:均存储在您的仓库中。 — Tibo Sottiaux 是 Codex 的创建者之一,目前他在 OpenAI 负责核心产品与平台部门(Core Products & Platform),该部门也包含 Codex。由于他频繁且慷慨地发布重置用量公告(例如昨天发布的这一则),他也是 Codex 最具公众知名度的代表人物之一。 在本期《Pragmatic Engineer》播客中,Tibo 与我探讨了 Codex 是如何构建并持续迭代的。我们深入分析了为什么 Codex CLI 使用 Rust 编写并以开源形式发布,harness 和模型是如何演进的,以及为什么 Codex 支持来自多个提供商的模型。 Tibo 还分享了 OpenAI 团队在软件开发生命周期中使用 Codex 的细节,包括代码审查、维护和系统重构。我们探讨了 AI 如何降低代码变更的成本——以及由此产生的一些有趣副作用——ChatGPT 与 Codex 的融合,以及 Tibo 如何在自己的工作中使用这些工具。 — 时间戳 00:00 开场介绍 07:21 在 Google 的工作经历 12:41 是什么让 Tibo 对 OpenAI 产生兴趣 15:19 Codex 的早期岁月 18:20 为什么 Codex 用 Rust 构建 21:15 为什么 Codex 是开源的 25:50 Codex 为何能与其他模型良好协作:原因何在 32:09 Harness 的工作原理 36:44 Harness 与模型的改进 41:19 Codex 背后的软件开发生命周期(SDLC) 46:39 Codex 的代码审查流程 52:09 维护与架构 56:43 AI 工具如何扩展工程师的能力边界 1:02:30 The Merge:ChatGPT + Codex 1:07:16 Tibo 如何使用 Codex 和 ChatGPT 1:10:44 给希望从事 AI 工作的工程师的建议 — 本期节目相关的《The Pragmatic Engineer》深度专题: • Codex 是如何构建的 • Claude Code 是如何构建的 • Cursor 是如何构建的 • 什么是“循环工程”? • Uber 如何在开发中使用 AI:内部视角 • 为什么 Ramp 构建了自家的内部编码代理 Inspect • “我提交自己都不看的代码”:与 OpenClaw 创始人 Peter Steinberger 对话 — 制作与营销由 ⁠⁠⁠⁠⁠⁠⁠⁠https://penname.co/⁠⁠⁠⁠⁠⁠⁠⁠ 负责。如需咨询播客赞助事宜,请发送邮件至 podcast@pragmaticengineer.com。 在 newsletter.pragmaticengineer.com/subscribe 获取《The Pragmatic Engineer》完整访问权限

双语字幕

仅展示文本字幕,不包含中文音频;想边听边看,请使用 Bayt 播客 App。

Speaker 0

Codex 是当今最流行的 AI 编程工具之一。

Codex is one of the most popular AI coding harnesses today.

Speaker 0

但这一切是怎么开始的呢?

But how did it all start?

Speaker 0

很多人认识今天的嘉宾 Tibo,是因为他经常慷慨地重置 Codex 的使用额度。

Many of you will know today's guest Tibo from his generous and pretty frequent Codex usage resets.

Speaker 0

他也是 Codex 这个产品刚起步时的参与者,并且从那以后一直领导着整个 Codex 团队。

He was also there when Codex as a product started and has led the broader Codex team since.

Speaker 0

今天我们聊的内容包括:Codex 是怎么开始的,为什么用 Rust 构建并且开源;Codex 团队和 OpenAI 内部对代码评审的看法正在发生什么变化;当维护和重构变得极其便宜时意味着什么;Codex 并入 ChatGPT 的过程,以及这个项目背后许多被低估的工程挑战。

Today we cover: How Codex started and why it was built in Rust and made open source How Codegrees are changing inside the Codex team and OpenAI What it means when maintenance and re architecting are getting ridiculously cheap What the merge of Codex into ChatGPT looked like, and the many underappreciated engineering challenges of this project.

Speaker 0

如果你想了解 OpenAI 内部的团队是如何规划、评审和发布软件的,这期节目就是为你准备的。

If you want to understand how teams inside of OpenAI plan, review, ship software, this episode is for you.

Speaker 0

本期节目由 turbopuffer 赞助播出,这是一个基于对象存储构建的混合搜索引擎,扩展性极强,速度快,成本低,而且他们的工程团队我相处下来真的很喜欢。

This episode is presented by turbopuffer, a ridiculously scalable, fast, and cheap hybrid search engine built on top of object storage by an engineering team that I've really gone to like after spending time with them.

Speaker 0

TurboBuffer 是 Entropic、Notion、Cognition 和 Harvey 等公司都在使用的工具,用来将他们的 AI 产品连接到海量的非结构化数据。

TurboBuffer is the tool that companies like Entropic, Notion, Cognition, and Harvey all use to connect their AI products to massive amounts of unstructured data.

Speaker 0

我跟用过 turbopuffer 的工程师聊过,大家提到最多的就是它在大规模场景下的可靠性和性能。

When I've talked with engineers who use turbopuffer, the theme that always comes up is reliability and performance at scale.

Speaker 0

这背后的原因全跟 turbopuffer 的架构设计有关。

The reasons for this have everything to do with turbopuffer's architecture.

Speaker 0

TurboBuffer 的状态数据只存在对象存储里,计算则靠带内存缓存的 NVMe SSD 来支撑。

Turbo buffer uses only object storage for state and NVMe SSDs with memory cache for compute.

Speaker 0

turbopuffer 里的数据是按命名空间来组织的。

Data in turbopuffer is organized into namespaces.

Speaker 0

你可以把命名空间理解成数据库里的表、搜索索引,或者 S3 的前缀,具体取决于你的背景。

You can think of a namespace as a database table or a search index or an s three prefix depending on the world you come from.

Speaker 0

当某个命名空间没有被查询时,它会待在便宜的对象存储里,不产生任何计算成本。

When a namespace is not being queried, it stays on cheap object storage with no associated compute cost.

Speaker 0

一旦命名空间被激活,turbopuffer 就会把它拉到热缓存层,这样查询速度会非常快。

When a namespace is active, turbopuffer pulls it up into hot catching tiers so queries are very fast.

Speaker 0

这种设计从根本上让扩展到数亿个命名空间变得毫不费力。

This design fundamentally makes it effortless to scale to hundreds of millions of namespaces.

Speaker 0

如果你在开发多租户的 AI 产品,每个用户及其代理都可以拥有自己专属的搜索索引,而且不会带来任何额外开销。

If you're building a multi tenant AI product, every user and their agent can have their own dedicated search index without any overhead.

Speaker 0

每个命名空间都能容纳数亿份文档,无需进行任何特殊配置。

And each namespace can hold hundreds of millions of documents without any special configuration.

Speaker 0

你可以近乎无限地扩展 turbopuffer,同时性能、可靠性和运营模式都保持不变。

You can scale turbopuffer virtually without limit and the performance, reliability and operating model all stay the same.

Speaker 0

如果你需要将 AI 与大量数据连接起来,turbopuffer 应该是你的首选。

If you need to connect AI to lots of data, turbopuffer should be your first choice.

Speaker 0

去 turbopuffer.com/pragmatic 看看吧。

Check it out at turbopuffer.com/pragmatic.

Speaker 0

Tibo,欢迎来到我们的播客节目。

Tibo, welcome to the podcast.

Speaker 0

很高兴你能来。

So good to have you here.

Speaker 1

谢谢邀请。

Thank you for having me.

Speaker 1

再次见到你真是太好了。

It's so good to see you again.

Speaker 0

上次我们是面对面做的,这次换成视频了。

It's good to do this last time we did it in person.

Speaker 0

现在我们在录视频。

Now we're doing our video.

Speaker 0

首先,我想问你,你是怎么进入科技行业的?

First, I wanted to ask you, how did you get into tech?

Speaker 0

你是什么时候第一次意识到自己想和电脑打交道的?

When did you first know that you wanna work with computers?

Speaker 1

这个问题问得好。

It's a good question.

Speaker 1

那是很久很久以前的事了。

It was a long, long time ago.

Speaker 1

我父母其实决定搬出我出生的布鲁塞尔,他们觉得买个小房子翻新一下挺好的,但那房子在一个村子里,周围没什么热闹的。

My my parents actually decided to move out of Brussels where I was born, and just just thought it was great to just buy a small house and refurbish it, but it was in the middle of middle of a village with not much going on.

Speaker 1

我记得那里大概住着两百人左右。

I think there was like roughly 200 people living there.

Speaker 1

没多少人让我觉得想跟他们聊,或者能交朋友的。

Not many that I felt like I wanted to talk to or, you know, could make friends with.

Speaker 1

所以我就有点被困住了。

And so I kinda got stuck.

Speaker 1

那时候特别小,大概八岁吧。

This is like very early, like eight eight years old.

Speaker 1

我有点被困住了,因为你知道,电脑啊,还有对我来说早期的互联网。

I kinda got stuck because, like, you know, computers and, you know, it's like early days of, the the for me, the Internet.

Speaker 1

然后,那是我了解世界的方式。

And, you know, that was my way to learn about things.

Speaker 1

所以后来的事情,都是从那开始的。

And so just the rest is just, like, you know, came from that.

Speaker 1

可以说,这得感谢我爸妈搬到了那个偏僻的地方,然后我就只能对电脑感兴趣了。

Sort of like, owe it to my parents to, you know, have moved into the middle of nowhere, and then, you know, I had no choice but to get interested in computers.

Speaker 0

高中毕业后,你就去上大学了对吧?

Once you've you've finished high school, like, you went on and went to university.

Speaker 0

是吧?

Right?

Speaker 0

然后系统地学习这个专业。

Actually studying it properly.

Speaker 1

对。

Yes.

Speaker 1

我在大学学的是应用数学。

I I studied mathematics, applied mathematics at university.

Speaker 1

我入学挺早的。

I I went there quite quite early.

Speaker 1

所以我也毕业得比较早。

And so I I graduated earlier as well.

Speaker 1

其实我之前一直以为我可能坚持不下来,会中途退学的。

Like, I thought for a long time that I would actually not make it and that I would drop out.

Speaker 1

我读书的时候,就是做一些小公司和小的咨询业务。

I had just like small companies and small consulting business like like while I was studying.

Speaker 1

我当时在银行工作。

I was like working for banks.

Speaker 1

我对供应链和应用数学问题特别感兴趣,然后我就靠这个赚钱,也学到了很多东西。

I was working for I was like very interested in supply chain and applied mathematics problems, and I guess I like selling that and learning a lot through that.

Speaker 1

最后,我在比利时进入了创业圈。

Eventually, I ended up in the startup world in Belgium.

Speaker 1

我在那边待了一段时间,然后搬到伦敦,先是在谷歌工作,后来去了DeepMind,现在呢,就来到了OpenAI。

I did that for for a little while and then moved to London to work initially at Google and then DeepMind, and then now, you know, moved to be here at OpenAI.

Speaker 1

这里就是加州。

Like, this is California.

Speaker 1

我特别喜欢加州的天气。

I love the California weather.

Speaker 1

我们可以聊聊这个。

We can talk about that.

Speaker 1

一直都非常好。

It's been very good.

Speaker 0

大学一毕业,你就创办了一家初创公司。

Right after university, you started a you've you've founded a startup.

Speaker 0

对吧?

Right?

Speaker 0

你那时候就有创业的念头,或者说有创业的冲动?

You had the startup bug in you or the entrepreneur entrepreneurial bug?

Speaker 1

是的。

Yeah.

Speaker 1

这家公司主要是做医药供应链的,就是看临床试验的供应链,然后想办法优化,比如决定要不要多生产一些药。

So this this startup was all about pharmaceutical supply chain, looking at the supply chain for clinical trials and like try to optimize and decide like, you know, should you produce more medicine?

Speaker 1

药应该送到哪里?

Where should you send it?

Speaker 1

应该发到哪里?

Where should dispatch it?

Speaker 1

比如说,怎么避免浪费?

Like, how do you avoid waste?

Speaker 1

通过这个,让临床试验更高效。

And through that, making clinical trials more efficient.

Speaker 1

而且当时用的是传统的、非机器学习的技术。

And this was using traditional, like, non ML techniques.

Speaker 1

就是那种传统的优化求解,蒙特卡洛模拟之类的。

It's, like, traditionally more optimization solving Monte Carlo simulations, these kinds of things.

Speaker 1

其实是个随机多阶段优化问题。

Stochastic multistage optimization problem really.

Speaker 1

我们还在钢铁行业和欧洲的电网项目上应用了这套方法。

And we also applied it on steel industry, and we applied it to electrical grid as well in Europe.

Speaker 1

基本上,只要看起来像优化问题的,我们都会感兴趣。

It was like anything that sort of had the shape of like an optimization problem, we would sort of like get interested in.

Speaker 1

而且到现在,这家公司还在,我觉得他们做的仍然是最有意思的工作之一,但肯定随着现代AI的发展,变化很大。

And, you know, to this day, like this this this company still exists, and I think they do some of the most interesting work still, but it's changing a lot, you know, with with modern AI for sure.

Speaker 0

但有意思的是,你刚才说,哦,对。

But it's interesting because you kind of said, like, oh, yeah.

Speaker 0

那不是机器学习。

That wasn't ML.

Speaker 0

只是传统的方法,然后你深入到了蒙特卡洛模拟、优化和这种算法。

It was just a traditional stuff, and then you go into, like, Monte Carlo simulation and optimization and this algorithm.

Speaker 0

我感觉你好像就是往深里钻了。

I get a sense that you kind of just went deep.

Speaker 0

对吧?

Right?

Speaker 0

就好像,好吧。

That it was like, okay.

Speaker 0

这里有个问题领域。

Like, here's a problem space.

Speaker 0

我怎么用数学,用我学过的、没学过的东西,去不断深入呢?

Like, how can I use mathematics, stuff that I learned, stuff that I didn't learn to just go deeper and deeper?

Speaker 0

我这么理解对吗?

Do I sense that correctly?

Speaker 1

对。

Yeah.

Speaker 1

这就是为什么我对应用数学那么着迷。

That's that's why I was obsessed with applied mathematics.

Speaker 1

其实就是这个想法:要么是理论数学,要么是理论科学和物理,在那里你去做研究,是因为有东西等着被发现,而且很美。

It's just really this idea of you have theoretical mathematics or you have theoretical science and physics, and, like, there you just you you do it because there's something to be discovered and something beautiful about it.

Speaker 1

一切都关乎模式和推动前沿,但你并不总是清楚要怎么应用它。

And it's all about patterns and pushing the frontier, but you don't necessarily always know like how you're going to apply it.

Speaker 1

然后还有现实世界。

And then there is like the real world.

Speaker 1

对吧?

Right?

Speaker 1

就是,你看,周围有那么多有趣的问题,而我很想看看,怎么才能让世界变得更好。

This is like, know, there's all these cool problems that just lie around, and I was like very interested in seeing like, you know, how can I make the world better?

Speaker 1

所以,我该怎么运用那些高深的数学,来优化我周围的世界呢?

And so like how do I apply like, you know, sophisticated mathematics, you know, to just optimize the world around me?

Speaker 1

这基本上就是那个初创公司背后的核心理念。

And that was like a lot of the thesis behind that startup.

Speaker 0

对。

Yeah.

Speaker 0

然后创业之后,你去了谷歌,一开始是在谷歌伦敦。

And then after a startup, you ended up at Google and first at Google London.

Speaker 0

那是2015年,我记得2015年谷歌非常难进,竞争激烈程度可能跟现在的OpenAI差不多,无论是行业地位还是声望。

It was in 2015, and I remember 2015, Google was a really, really competitive place to get into, like, maybe as competitive as OpenAI is today in terms of the industry or in terms of prestige.

Speaker 0

你一开始做地图,后来转到了DeepMind。

You worked on maps initially, and then you moved over to DeepMind.

Speaker 0

你能聊聊你当时做了什么,以及为什么你会离开一个你显然很热爱、而且已经很有意思的领域,比如优化、物流这些?

Can you talk a little bit what what you worked on, and and then why did you move on from an already really interesting space that you clearly loved, you know, like the optimization, logistics, and all these things?

Speaker 1

好的。

Yes.

Speaker 1

其实我一开始没做 Google Maps。

I I didn't I didn't start on Google Maps.

Speaker 1

我是从一个让网页加载更快、特别是提升移动端网站速度的项目开始的。

I started on a project that was meant to make the web faster and make to meant to make websites faster, especially on mobile.

Speaker 1

那时候,Google 正处在从桌面端向移动端转型的阶段,移动端的流量占比越来越大。

At the time, you know, Google was trying to sort of, like, seeing the transition from desktop to mobile and, like, more and more traffic going to, like, you know, mobile phones.

Speaker 1

所以他们就想着,不如提前布局,抢占先机。

And so, like, why don't you get ahead of that?

Speaker 1

所以资助了不少项目和计划。

So funded, a number of a number of initiatives and projects.

Speaker 1

我当时就在做其中一个。

I was working on one of them.

Speaker 1

那会儿特别有意思,因为那是广告部门里的一个小团队。

This was like really, really fun because it was a small group within actually the ads organization.

Speaker 1

主要是为了弥补流量转向移动端后带来的广告收入损失。

It was meant to sort of like, you know, offset the the loss for the ad revenue loss because of the shift of traffic to mobile.

Speaker 1

我做了大概两年,然后项目就被砍了。

And worked on it for roughly two years, and then it was canceled.

Speaker 1

虽然那是我在解决技术难题时最开心的一段经历,但我从中学到了很多:没有产品市场匹配,没有合适的用户,没有正确的反馈循环,还有当产品经理说项目进展顺利时,其实根本不是那么回事,你不能盲目相信他们。

And although it was like the most fun I've had on, you know, solving hard technical challenges, I learned a lot from not having product market fit, not having the right users, not having the right feedback loop, not trusting your product manager when they say the project is going well, when in fact it's not going well at all.

Speaker 1

然后有一天,突然有个副总裁从加州飞过来,然后就说,哦,对。

And then, you know, one day it's just like this VP flew in from California and then it was just like, oh, yeah.

Speaker 1

就是说,我们要取消这个项目了。

It's like, you know, we're canceling this project.

Speaker 1

你知道,很不幸,你只有几百个用户,这显然不是谷歌的规模。

You know, unfortunately, you only have, hundreds of users and this is clearly not Google scale.

Speaker 1

然后让人难以置信的是,大家居然都很惊讶。

And then it's unbelievable, but people were surprised.

Speaker 1

我觉得我从中学到了一个教训,一直记在心里,就是永远要质疑,永远要深入思考你正在产生的影响,同时也要考虑你参与的整体项目的重要性。

And I think that there's a lesson there that I carried with me of course is, you know, just always always question, always go to like always you know, deeply think about the impact that you're having, but also like the importance of the overall project that you're contributing.

Speaker 1

然后我就转到了谷歌地图。

And then I moved into Google Maps.

Speaker 1

谷歌地图特别有意思,我负责评论这块。

Google Maps was super fun, worked on reviews.

Speaker 1

大概过了一年,我就没法忽视DeepMind了。

And then after roughly a year, I couldn't ignore like DeepMind.

Speaker 1

那是个特别的地方,总部在伦敦。

It was just it was this special place headquartered in London.

Speaker 1

那里发生了太多了不起的事情。

So many great things were happening.

Speaker 1

那真的是早期阶段,当时就有AlphaGo这样的风声了。

This was like really the early days, you know, with rumblings of things like AlphaGo.

Speaker 1

他们好像总在做一些非凡的事情,就是专门攻克那些最难啃的难题。

And they just seemed to be doing extraordinary things and, you know, just really tackling the very, very hardest problems that you can tackle.

Speaker 1

以我的背景,我自然被吸引过去了。

And like with my background, I was obviously drawn to that.

Speaker 1

我就在那里开始了。

I started there.

Speaker 1

我做了很多研究基础设施和研究工具方面的工作。

It's like I worked on a lot of the research infrastructure, research tooling.

Speaker 1

这个主题我坚持了将近十年。

This is a theme that I carried on for almost a decade.

Speaker 1

我的做事思路就是,怎么打造工具和产品,帮别人提高效率,给他们带来实实在在的价值。

It's like this is very much also the so like how I approach things is how can I build tooling and products that help make others more efficient and bring a lot of utility to them?

Speaker 1

一开始是专门为科研做这些,后来慢慢想得更宽泛、更通用了,最后就走到了今天这一步。

Initially, was doing this for research and then it's like over time, you know, I got, like, into thinking about things in a much more, like, more general and general and general way, you know, eventually, like, you know, ending up where where I am now.

Speaker 0

是的。

Yeah.

Speaker 0

你最近在X上分享的一个有趣故事,是关于你曾参与开发一个谷歌内部的机器人,你可以说它类似于ChatGPT,但比ChatGPT早了一年。

And a fun story that you recently shared on X as well is how you were part of the team that built this internal Google bot that was, you know, if you want to say, similar to ChatGPT, but a year before ChatGPT.

Speaker 0

你能谈谈这件事吗?

Can you can you talk about that?

Speaker 0

这是一个全新的故事。

That's a that that is a new story.

Speaker 0

我之前没听过这个故事。

I haven't heard it before.

Speaker 1

这是DeepMind的一部分。

This was part of DeepMind.

Speaker 1

当时其实有好几个团队在做类似的事情。

There were, like, multiple efforts as well.

Speaker 1

当时还有一个叫Braid的项目,是独立的。

There was, like, Braid as well that was separate at the time.

Speaker 1

他们在大语言模型方面有自己的努力,但确实是在探索阶段。

They had their own efforts on large language models, but it was definitely something that was being explored.

Speaker 1

这并不是DeepMind的主要方向。

It was not the main thrust of of DeepMind.

Speaker 1

DeepMind当时非常专注于重大挑战和游戏,主要考虑强化学习,而不是语言模型。

DeepMind was, like, very much worried and and busy, like, thinking about grand challenges and games and, you know, thinking about RL, not in the language sense.

Speaker 1

所以有一个小组在推动大语言模型,思考着,嘿。

And so there was like this group that was pushing on large language models and, you know, thinking about, you know, hey.

Speaker 1

如果大型文本语料库才是关键呢?

What what if what if large text corpuses are everything?

Speaker 1

要是把语言推到极致,单纯靠扩大语言模型的规模呢?

What if you just pushed language to its maximum and you just scaled language models?

Speaker 1

比如,光靠这样就能实现通用智能吗?

Like you know, would that be enough to get to general intelligence?

Speaker 1

当时这可是个热门话题。

That was like the hot debate at the time.

Speaker 1

后来有一个团队决定全力投入这个方向,然后感觉特别顺理成章。你知道,我在和其他人一起搭建研究工具的时候,心里就在想,咱们能用这个模型做些什么呢?

And then one one group decided to just really push on that, and then it it felt really natural like, you know, as I was building tooling, you know, with others for for research, it's like, you know, obviously you're like, hey, you know, what can we do with this model?

Speaker 1

比如,怎么向研究人员展示它比较好呢?

Like, how do we present it, you know, to the researcher?

Speaker 1

还有,怎么帮他们调试输入和输出,最后不知不觉就搞出了一个类似聊天系统的东西。

Like, how can they sort of like you know debug the inputs, outputs, and eventually you sort of like end up with you know like a chat system.

Speaker 1

所以我们就内部开发了这套系统。

So we built that internally.

Speaker 1

我们玩得很开心。

We had a lot of fun.

Speaker 1

起初这些模型有点荒谬,不太连贯,也没那么实用,但摆弄它们的过程特别有意思,而且发展速度像野火一样快。

Initially the models were like you know kinda like almost like a little bit absurd, like you know not very coherent, not super useful, but it was a lot of fun to sort of, like, tinker with them that caught up, like, you know, like, wildfires.

Speaker 1

大家就像分享小对话一样,纷纷跟 Indeed Mind 聊天。

Like, you know, this application is just sort of, like, you know, everyone was kinda, like, sharing little conversations with Indeed Mind.

Speaker 1

这感觉更像是一个给研究人员用的研究项目,而不仅仅是一个普通的研究课题。

It felt more than, a research project or, a research a project for researchers.

Speaker 1

后来大家越来越想把这东西做成对外发布的产品,但 DeepMind 当时压根没准备好。

And so then there was this desire over time to, like, launch it as an external product, but DeepMind was just, like, not set up.

Speaker 1

你知道的,在 Google 发布产品有一套标准的流程。

You know, there was, like, the the the right way to launch products at Google.

Speaker 1

你得走那一整套流程,包括各种生产环境的部署规范等等。

There was like, you know, the whole machinery of like, you know, how you do that, know, the whole like, blessed production stack.

Speaker 1

这套体系经过多年打磨,确实能把常规工作做得非常高效,但也让环境变得僵化,很难真正搞出创新。

You're obviously very very optimized over the years to do things well, but also very very hard as an environment to truly innovate.

Speaker 0

然后我想问的是,是什么让你开始四处看看,或者甚至考虑OpenAI的,但我觉得你刚才已经部分回答了这个问题。

And then I I I wanted to ask what made you, you know, look around or or or maybe even consider OpenAI, but I feel you partially answered this question.

Speaker 0

让我站在你的角度想想,比如在2023年或2024年,你在谷歌,他们发表了很多惊人的论文,做了非常好的研究,你也在做很有趣的事情,对吧,不断突破以前的极限。

Just just putting myself back into your shoes, like, you're, you know, if it's it's 2024 or 2023, you're inside of Google who are publishing amazing papers, doing really good research, you're doing super fun stuff, right, pushing the limits of what's what's been done before.

Speaker 0

而且是在你已经跳槽过的公司里。

It's inside a company where you already moved.

Speaker 0

对于那些对自己现状感到舒适或满意的人,我想你当时肯定也是这样的,那是什么让你仍然去探索,看看外面还有什么可能性呢?

You know, for for people who are feeling kinda comfortable or good about where they are right now, which I imagine you must have been, like, what made you still explore, alright, like, what else might be there?

Speaker 1

是的。

Yeah.

Speaker 1

我当时确实很舒适。

I was I was very comfortable.

Speaker 1

我觉得那是个好地方。

I think my it's it's it's a good place.

Speaker 1

但说实话,我内心渴望遇到优秀的人,也想加入一个我真正相信的使命,我觉得那里的人对使命很忠诚,并且非常关心以积极、直接的方式影响世界。

But, really, I had a I had a desire to, you know, meet great people, but also join a mission that I truly believed in and that, you know, I felt like the people were through to the mission and cared deeply about impacting the world in in a very in in a positive way, but also in a direct way.

Speaker 1

不是那种,哦,对。

Not not being like, oh, yeah.

Speaker 1

就是感觉我们只管在这边做研究,然后怎么把这些成果变得有用,那是别人的事。

It's just like, you know, we just do this work over here, and then it's like, it's the job of someone else to figure out, you know, how to how to make this useful.

Speaker 1

我就想加入一个团队,大家能把各种因素综合考虑,研究和产品能真正协同设计。

It's like I wanted to join a group where, you know, like all the parameters were sort of like considered together where, you know, research and products were like really co designing.

Speaker 1

OpenAI 当时表现得太棒了。

OpenAI was just like crushing it.

Speaker 1

我觉得ChatGPT当时已经火起来了。

I thought ChatGPT was like, you know, taking off.

Speaker 1

我后来见了几个OpenAI的人,然后我就想,等等。

It's like I was I met a couple people from OpenAI and then I was like, wait.

Speaker 1

什么?

What?

Speaker 1

你知道,做ChatGPT的居然只有20个人左右?

You know, you only have like 20 people working on ChatGPT?

Speaker 1

这人数也太少了吧。

Like, that is that is an insanely small number.

Speaker 1

这种配置肯定特别有发挥空间。

That that must be like extremely empowering.

Speaker 1

我是说,具体是怎么运作的呢?

Like, you know, how does that work?

Speaker 1

你们是怎么在只有二十个工程师的情况下,既保持这么大的产品规模,又维持这么高的自主权的?

How do you manage to maintain, you know, a product with that level of scale and with that level of autonomy with, you know, only only 20 engineers?

Speaker 1

然后我越挖越深,发现这里有一群特别棒的人,使命也很崇高,大家既顶尖又充满干劲。

And then, you know, as I kinda dug and dug and dug, and it's like, was just an amazing group of people, amazing mission, you know, super talented, super driven.

Speaker 1

感觉整个人都被深深吸引了。

And it's like, it was it was like drew me in.

Speaker 1

接着我就立刻加入了早期的推理项目,跟典型的OpenAI风格一样。

And then I joined pre reasoning efforts immediately like typical OpenAI fashions.

Speaker 1

就像我加入的时候,心想:太好了。

Like I joined, it was like, oh, yeah.

Speaker 1

你知道,现在有这么个情况。

You know, like there's this thing going on.

Speaker 1

就是说,我们要推出推理模型了。

Like, you know, we're gonna launch reasoning models.

Speaker 1

这算是个新范式嘛,然后就赶紧在这上面加速推进。

Like, you know, it's like a new paradigm and then, you know, start sprinting on that.

Speaker 1

结果大概一个月后,公司就发布了 o1-preview 版本。

And, you know, like a month later, like the company launched o one o one o one preview.

Speaker 1

能参与其中真的让人非常兴奋。

And that was exhilarating to be part of.

Speaker 1

我特别想加入一个节奏快、重视影响力、跟得上世界变化,并且真正愿意倾听的团队。

I I wanted to be part of like a a place that moves fast, cares about impact, would be in tune with the world and, you know, just really listen.

Speaker 1

这种理念也一直伴随着我。比如在打造 Codex 或者其他产品时,我觉得关键就是建立社区、认真听取社区的声音,形成高强度的反馈闭环,然后做出大家真心喜欢、并且切实能为世界带来价值的东西。

And sort of like that's also to me, like, know, what I've carried with me, like, when when building Codex, when building products, it's like having a community, listen to the community, just really focus on like a really intense feedback loop, and then building something that is just like, you know, you just really wanna care about it and like, you know, care about the utility of it that it provides to the world.

Speaker 0

当然,之后你很快就着手在 Codex 上开展工作了。

And then of course, you start to work pretty quickly on Codex.

Speaker 0

所以你是2024年加入的。

So you joined in 2024.

Speaker 0

能跟我们聊聊你刚加入时,对AI、大语言模型以及代码方面的思考吗?

Can you take us back what the thinking back there when you joined was about AI or LMs and and code?

Speaker 0

我知道当时有个ASWE项目。

I I know there was this ASWE effort back then.

Speaker 0

我们在《务实工程师》的深度访谈里也聊过这个,就是自主软件工程师(Autonomous Software Engineer)那个话题。

The we talked about it in in the deep dive as well that we did in the pragmatic engineer, the autonomous software engineer?

Speaker 1

一套工具。

A suite.

Speaker 1

对。

Yeah.

Speaker 1

就是这一套。

That's what it's

Speaker 0

一套工具。

A suite.

Speaker 1

内部是这么发音的。

It was pronounced internally.

Speaker 1

我们现在已经没有A suite这个项目了。

We we don't we don't have an A suite effort anymore.

Speaker 1

你知道,现在就是Codex。

Like, you know, it's it's it's Codex.

Speaker 1

但对我来说,我加入后就开始为研究搭建基础设施。

But really for me is I I joined I started building infrastructure for research.

Speaker 1

我之前做的很多工作都是大规模数据存储、分析,还有理解训练运行的工具。

Like, my a lot of what I did before was large scale data storage, analysis, and then tools to understand training runs.

Speaker 1

这些年我做了很多不同的事情,但一直都是为别人搭建东西,让他们更快,并且真心在乎把这件事做好。

I I I did a lot of different things over my years, but it was always about building for others and making them faster and just really caring about, you know, fundamentally doing that well.

Speaker 1

然后通过工具和基础设施,让新的事情成为可能。

And then through tooling and infrastructure, making new things possible.

Speaker 1

所以我加入OpenAI的时候,也是带着同样的想法。

And so when I joined OpenAI, it was like with the same idea.

Speaker 1

后来在推出一对一预览版,以及像你们知道的,一些后续模型的时候,我们非常明确地意识到,必须利用模型本身来帮助我们提升效率。

And then with the with with one on one preview and like, you know, some some of some some of the later models, it was very clear that we had to use the models themselves to help us go faster.

Speaker 1

于是我就对这个想法着了迷:这些模型的局限在哪里?我们打算如何利用它们来进行研究呢?

And so I just really got obsessed with this idea of what were the limitations, how were we going to use those models for research itself.

Speaker 1

所以我和其他研究人员聚在一起,开始训练模型,搭建小型的智能体。

So got together with other folks in research, we started training models, we started building little agents.

Speaker 1

这些正是 Codex 的前身。

Those were truly the precursor to to Codex.

Speaker 1

当时我们训练内部模型,让它们对 OpenAI 的 Python 代码库非常熟练,同时具备良好的架构审美和代码风格品味。

And like this was like, we were training internal models to be very proficient on the Python code base of OpenAI, and then very proficient with, you know, having like good good taste in architecture, good taste in you know, like code style.

Speaker 1

只针对 Python。

It was like Python only.

Speaker 1

想法是先用这些模型快速搭建基础设施,同时帮助研究人员提高编码效率。

And then the idea was like, you know, we would sort of like use that to build infrastructure very quickly and you know, help researchers code faster as well.

Speaker 1

这样我们的整体进度就能更快了。

And then you know and then we would move faster.

Speaker 1

后来随着时间推移,当你不断推动并把它简化到核心得分时,你会发现进展非常快,学习速度也极快。

And then over time when you just kinda like push that and simplify it to its score, you're making a lot of you know, we found that where you could make a lot of progress very quickly and then learn very quickly.

Speaker 1

Greg和Sam都非常支持我们,而且Greg特别坚持认为,我们不能只关注自己,还要致力于造福世界。

And then Greg and Sam are you know, people with with they're immensely supportive and also Greg was very adamant that, you know, we would we would not just focus on ourselves, but we would also focus on benefiting the world.

Speaker 1

所以他鼓励我们要把这件事不仅仅看作OpenAI内部使用的工具,而是真正做成一个产品。

And so he just sort of encouraged that we would be thinking about this not just as a tool for OpenAI itself, but also as something that we would actually make into a product.

Speaker 1

也就是在这个时候,我们把这项研究和那个三人的努力合并起来,开始打造统一的产品。

And this is when, we merged this research effort with this a three effort, and we started building one thing.

Speaker 1

接着我们就搞了一次冲刺,推出了最初的云版 Codex,但因为摩擦成本有点高,还没怎么达到产品市场契合度。

And then that led to a sprint which was like the initial cloud codecs that we launched, which didn't really have PMF because it was like a little bit too high friction.

Speaker 1

我们还上线了 Codex 的命令行工具,一直在持续推动,但脑子里一直有个想法:嘿,咱们怎么才能让模型真正帮上忙呢?

And we also launched the Codex CLI and we continue to push, but there was always this idea of, hey, how do we get models to really help here?

Speaker 0

你提到一开始你是先建了一个模型,用来训练 Python 代码,实际上是为了更好地辅助开发。

You mentioned that first you started to build this model to train on the Python code and and actually help build in for in for better.

Speaker 0

但后来你做了一个挺有意思的决定,就是给 Codex 用 Rust 重写了。

But then you made this interesting decision where for Codex, you built it in Rust.

Speaker 0

当时,模型对Rust的支持并不好。

And at the time, the the model was not on distribution for Rust.

Speaker 0

对吧?

Right?

Speaker 0

它在Rust上的表现不如在Python或TypeScript上好。

It wasn't as good as Rust and it was in Python or TypeScript.

Speaker 0

你为什么做出这样的决定?

Why did you make that kind of a decision?

Speaker 0

是不是觉得模型会赶上,还是你认为性能更重要?

Was was it kind of like, did you expect that it'll catch up or or you figure that performance is more important?

Speaker 0

因为这很反直觉。

Or because it was very counterintuitive.

Speaker 0

大多数其他工具并不是用Rust构建的。

Most of the other harnesses built were actually not built in Rust.

Speaker 0

它们是用TypeScript、Python或其他语言构建的。

They were built on distribution on TypeScript or Python or something else.

Speaker 1

对。

Yes.

Speaker 1

从最根本的原则出发,我们很早就把产品界面和智能体看作是两个不同的东西。

From first principles, like we very early on, we were thinking about the product interface and the agent as different things.

Speaker 1

所以,用一种既稳健又安全、并且为高效和可扩展性而设计的方式来构建智能体的核心部分,显得非常重要。

So it was very important to build the core of the agent in a way that was robust, that was secure as well, that was, you know, engineered for efficiency and scale.

Speaker 1

这些年我们经历了不少项目,从一开始觉得这是个挺有趣的东西,到后来发现必须把它扩展到像最大规模数据中心那样的体量。

And having worked through projects over the years that go from, hey, this is a fun thing to like, hey, we need to scale this to the scale of like the largest data center.

Speaker 1

早期的决定往往非常关键,前提是你不能牺牲太多的开发速度。

Decisions early on are like really turn out to be quite important as long as you don't sacrifice too much of the velocity.

Speaker 1

所以这其实是个权衡,但我们当时有非常多优秀且厉害的 Rust 开发者。

And so it's like it's a trade off, but we had very prolific and amazing Rust developers.

Speaker 1

我们内部的模型在 Rust 方面也不差。

Our internal models were not bad at Rust.

Speaker 1

而且这样还能在编译阶段获得大量的验证。

And then you get a lot of validation as well at compile time.

Speaker 1

就是那种,你知道的,静态验证之类的特性。

It's like, you know, statically verified and all these things.

Speaker 1

这对智能体来说也非常棒。

And that is great for agents too.

Speaker 1

所以后来发现,只要愿意投入精力,Rust 作为一门语言其实非常适合用来开发智能体,这一点很快就明朗了。

So turns out, you know, it was quite clear that, you know, Rust as a language would actually be quite good for agents fairly quickly if we decided to put some effort into it.

Speaker 1

不过最主要的是,我们当时特别关注正确性,同时也非常注重效率。

But primarily, we were focused on correctness and we were focused on efficiency as well.

Speaker 0

挺有意思的。

Interesting.

Speaker 0

所以你的意思是,在你这种情况下,提前想清楚产品最终要达到什么状态是值得的,比如编程语言的选择。

So you're saying, you know, it's it's worth in your case, it was worth thinking ahead of where you want this thing to be and for example, thing like a language choice.

Speaker 0

当然,有了智能体之后,重写代码确实比以前容易多了,但即便如此,把基础架构搭好,还是能省去不少后期返工的麻烦。

Obviously, with agents you can rewrite a bunch of stuff easier than in the past, but it's still, like, you can save yourself reworking by putting in the right, I guess, scaffolding or or or, well, the, you know, the baseline of of what you're building on.

Speaker 0

对吧?

Right?

Speaker 1

我觉得如果我们用 TypeScript 写,或者甚至用 Python 写,可能也能成功,然后之后某个时候再重写一遍。

I think we could have been successful if we had written in TypeScript or you know, maybe even Python and then it would have been fine and then you know, we would have rewritten it at some point.

Speaker 1

但是,把代理本身和产品分开,保持非常清晰的界限,这是一个非常重要的原则。

But having a very clean separation between the agent itself, which can exist irrespective of the product, it was a very important principle.

Speaker 1

如果你把所有东西都写在同一个代码库、用同一种语言,那不可避免地会有点马虎,会把不该交织的东西交织在一起,之后就会阻碍进一步的创新。

And if you write everything in the same code base, in the same language, it's like inevitably you're going to be a little sloppy and you're going to intertwine things more than you should, and then it's going to prevent further innovation after that.

Speaker 1

所以这一点非常重要。

And so that was that was very important.

Speaker 1

而且从某种意义上说,Rust 的边界在这方面非常有用。

And like the Rust boundary in a sense, like, was very useful for that.

Speaker 0

你做出的一个有趣决定,在所有主要实验室中是独一无二的,就是内置开源。

One interesting decision that you made, is unique across all of the major labs, is having this built in open source.

Speaker 0

对吧?

Right?

Speaker 0

CLI 是开源的,SDK 和应用服务器也都是开源的。

The CLI is open source, the SDK, and the app server are all open source.

Speaker 0

你是什么时候决定这么做的,为什么?

When and why did you decide that?

Speaker 0

这不是理所当然的,尤其是,你知道,以前经常有人开玩笑说OpenAI的东西都是封闭的,但这里恰恰相反,这个是完全开放的,而有些竞争对手会发布闭源的框架,这我完全能理解为什么有人想要闭源。

It's not a given, especially, you know, there used to be jokes about OpenAI having things closed, but this this is actually the opposite where, like, this is open, whereas, like, some competitors would would ship closed source harnesses, which, again, I I I think it's very easy to understand why you would want something closed source.

Speaker 0

你为什么想要开源呢?

Why did you want it open source?

Speaker 1

开源代码的想法真的很酷,因为从根本上说,你卖的是一个编程代理。

There was something really cool about the idea of having the code open source because fundamentally what you're billing is you're billing a coding agent.

Speaker 1

所以我们就在想,如果你有这个,你肯定会让它自己改进自己,也许你还能建立一个贡献者社区,用这个工具来改进它,然后你能从中学习到很多。

And so we were sort of like thinking about, well, if you have that, you know, you're obviously gonna point it at itself and you know, maybe, you know, you can build a community of, you know, contributors that use it to improve it, and then, you know, you can learn a lot from that.

Speaker 1

而且当时我们很清楚,如果我们能成功,开源本身会改变,代码的角色也会改变,所以成为那个社区的一部分似乎很重要,而不是与之分离。

Also, it felt at the time it was like, you know, very clear to us that if we were going to be successful, open source itself would change and the role of code itself would change and so being part of that community seemed important instead of divorced from it.

Speaker 1

我觉得,如果你不亲眼看到问题,就很难解决它们。

I think you know it's hard to solve problems if you don't sort of like witness them yourself.

Speaker 1

而且现在感觉还早,但当时确实非常早。

And then the other thing was just it still feels like early, but it was very early at the time.

Speaker 1

我们当时觉得,自己肯定有一些能解决问题的思路。而且我们在共同设计这些内容,包括训练和研究,核心就是要找到最灵活、最好的方式来展现模型的能力。

It felt like we would have some ideas for how to solve things well, and we were co designing these you know the training and and and and the research and it's it's all about expressing like the capabilities of the model and like the most flexible and the best way.

Speaker 1

但我们也清楚,并不是所有问题都有现成答案。所以我们很坦诚地跟大家分享:这就是我们认为好的框架应该长什么样。

But also we didn't have all the answers and sort of being very open about, hey, this is what a good harness looks like.

Speaker 1

这也是我们对这件事的思考方式。

This is how we think about it.

Speaker 1

我们做了几次非常深入的技术解析,也发了博客文章,并且经常讨论这个话题。

We did like a couple of like very technical like deep dives and blog posts, and we talked about it a lot.

Speaker 1

我们当时想,世界那么大。

And we thought, you know, hey, it's just like the world is vast out there.

Speaker 1

有很多特别聪明的人。

There's like, you know, crazy smart people.

Speaker 1

我们也打算从其他开源项目中汲取灵感。

It's like, you know, we're we're gonna get inspired by other open source project as well.

Speaker 1

所以干脆把门槛放平,鼓励大家在这个阶段多动手尝试、多探索。

And so let's just make this a level playing field and sort of like encourage a lot of tinkering and exploration at this stage.

Speaker 0

现在这已经是一年之后,甚至一年半之后了,在AI这个领域里,这段时间可是相当长的。

Now this has been now, you know, like a year later, a year and a half later, which is a very long time in right now in this AI time frame.

Speaker 0

但回顾一下,或者说从这些经历中总结,你看到了哪些好处?

But looking back or or taking the experience, what are the benefits you've seen?

Speaker 0

工程方面的好处,工程团队从开源中得到了哪些益处?

The kind of engineering benefits, the engineering team's benefits from being open source?

Speaker 0

说实话,开源又有哪些难处呢?

And just honestly, what are things that are kind of hard about being open source?

Speaker 0

对吧?

Right?

Speaker 0

肯定有不利的一面。

Like, there must be downsides.

Speaker 0

比如说,是的。

Like, just Yeah.

Speaker 0

对。

Yeah.

Speaker 0

想听听你对两边的真实看法。

Trying to get an honest take on both sides.

Speaker 1

对。

Yeah.

Speaker 1

确实,肯定有不好的地方。

There there there are definitely downsides.

Speaker 1

这是有代价的。

It it it it it comes at a cost.

Speaker 1

对吧?

Right?

Speaker 1

好处就是,几乎是在公开的情况下进行开发。

The the benefits are it's almost something to build in the open.

Speaker 1

有一个小的代码仓库也很棒。

It's awesome to have, like, a small a small repo as well.

Speaker 1

比如,每当我们招人,他们加入Codex团队时,他们之前就已经看过这个仓库了。

Like, whenever we hire someone and they join the Codex team, it's like, they've seen the repo before.

Speaker 1

他们看过那些PR了。

They've they've looked at PRs.

Speaker 1

他们就觉得

They're like

Speaker 0

入职培训就完成了。

Onboarding is done.

Speaker 1

对。

Yeah.

Speaker 1

就完成了。

It's it's it's done.

Speaker 1

对。

Yeah.

Speaker 1

入职的时候,就是用Codex看看代码库,问几个问题,但这不是什么秘密,你马上就能上手干活。

It's like, in onboarding, it's just like you use Codex to look at the repo, you know, with you and you ask some questions, but it's like, it's not it's not a secret issue that you can get productive right away.

Speaker 1

我们收到了很多好的贡献,虽然也有一大堆乱七八糟的东西涌进来。

We get a lot of good contributions, although we get like, you know, a tsunami of like random stuff as well.

Speaker 0

显然,你和其他人都是这样。

Obviously, you and everyone else.

Speaker 0

没错,开源正在发生变化。

Right open source is changing.

Speaker 0

我觉得这就是一个例子。

I think this is one of the examples.

Speaker 1

对。

That's right.

Speaker 1

然后对我来说,对团队里的很多人来说,能成为社区的一部分,直接做贡献,真的让人很有干劲。

And then to to me, it just and and to a lot of the team, just brings a lot of energy to just be part of the community and like be directly contributing.

Speaker 1

不只是嘴上说我们关心社区,而是真的去做一些事,你能看到我们确实在付出努力。

Not just saying that we care about the community, but actually doing things that, you know, you can see it's it's costing us effort.

Speaker 1

对吧?

Right?

Speaker 1

我们其实没必要这么做。

We don't have to do it.

Speaker 1

缺点嘛,就是它跟我们其他代码是分开的。

The the downsides are, you know, it's it's separate from the rest of our code.

Speaker 1

所以有时候我们得人为划出界限,还得跨多个仓库去协作。

So, you know, sometimes we have to draw like artificial boundaries and, you know, work across multiple repos.

Speaker 1

当我们正在做特别有意思的项目,而且是在公开环境下开发时,偶尔会发现别人在我们来得及发布之前就把代码抄走了。

When we're working on something particularly exciting and, you know, we're building it in the open, then, you know, at times we find that, you know, others copy it, you know, before we have the time to release it.

Speaker 1

虽然有点小失落,但这也是游戏规则的一部分。既然选择公开开发,那就相当于签了协议,允许别人复制使用。

And it's like it's just a little bit sad, but also it's it's part of game, you know, it's it's like you're building in the open and it's like, you know, that's that's sort of like the contract that you signed, it's like, know, you can copy it.

Speaker 1

我们的许可协议也非常宽松,但当你正在做某件事时,发现别人都被各种零散的贡献搞得焦头烂额,还得额外处理这些‘税’,心里多少会有点不是滋味。不过这也促使我们去想办法解决这些问题,我觉得这是好事。

We have a very permissive license as well, but it does sting a little bit when you're working on something and you're like, And you then the third thing is just like everyone else is like, know, overwhelmed with random contributions, and you know, we have to deal with that additional tax, But then that pushes us to, you know, also like try and solve for it, right, which I think is good.

Speaker 0

除了开源这一点,Codex 还有一个让我很意外的地方,我之前甚至都不知道:它并不绑定 OpenAI 的模型。

And on top of the open source, one thing that surprised me about Codex, and I didn't even know about it until recently, it's not tied to the OpenAI models.

Speaker 0

你可以用其他模型来配合 Codex 使用。

You can use other models with Codex.

Speaker 0

我试着站在供应商的角度想,这可能没那么明显。因为我看其他供应商在做命令行工具时,通常都是让你用他们自家的模型。

You know, like putting myself in a vendor's shoe, might not be very obvious because, again, all the other vendors that I look at when they do a CLI, it's kind of use it with our models.

Speaker 0

再问一下,是什么让你决定这么开放,允许别人用你的工具配合其他模型呢?

Again, what made you decide to be this permissive about, you know, using or allowing to use your harness with with other models?

Speaker 1

这感觉很自然,如果你是这个社区的一员,并且打造了一个优秀的编码工具,为什么要把它和你的模型绑在一起呢?

It it felt quite natural if if you are part of this community and building an excellent coding harness is like why would you couple it to your model?

Speaker 1

做出那样的决定会让人觉得挺失望的。

That that that felt like sort of like quite disappointing to make that decision.

Speaker 1

所以那样做感觉不对。

So it didn't it didn't feel right.

Speaker 1

总的来说,我觉得我尽量做那些我能解释清楚的决定,就是那种,对,我能说清楚,而且它是正确的。

And in general, it's like I think, you know, it's like I kinda tried to make decisions that I'm like, yes, you know, it's just like I can just sort of like explain it, you know, it it is correct.

Speaker 1

这和最初开源的理由是一样的。

It's the same reasoning with, you know, it is open source in the first place.

Speaker 1

如果有人想分叉这个项目,然后添加对其他东西的支持,那是很容易的,但那样你就是在鼓励人们去用那个分叉,然后突然你就有额外的负担了。

It would have been trivial for anyone to fork it and then add support for another thing, but then but then you're just encouraging people to just like, you know, go and use that fork and then now suddenly you have overhead.

Speaker 1

而分叉存在的唯一原因,就是因为你想改大约十行代码来支持另一个模型提供商。

And the only reason you have a fork is because, you know, you wanted to change like 10 lines of code to add support for like another model provider.

Speaker 1

这听起来挺傻的。

That feels very silly.

Speaker 1

所以,为什么不从一开始就支持它呢?

So like, you know, why not just support it in the first place?

Speaker 1

另外一点是,我们也能从提供这种灵活性中获益良多。

The other thing is we benefit a lot from like being able to just give optionality.

Speaker 1

比如,也许你今天特别喜欢用 OpenAI 的模型,用起来效率特别高;但明天要是出了个新模型你想试试,干嘛非要逼着你彻底改一遍配置才能去试新模型呢?

So, it's you like maybe today, you know, you you love using OpenAI models and you know, you're super productive with them, but like tomorrow there's a new model that comes out, you wanna try that, why force you to go and completely change your setup just to try a new model?

Speaker 1

而且我们还能从那些没收到的反馈里获益,比如可能有人觉得那个模型不错,或者其实效果不太好,但总的来说,对用户和社区友好一点,感觉这才是正确的做法。

And then we benefit from the feedback that we didn't get, which is like, you know, maybe there's something that you liked about that model, maybe it actually didn't work well, but it's sort of like being nice to our users and to the community is like, you know, feels like the right thing to do here.

Speaker 1

然后呢,我们也会去试试其他模型。

And then you know, we also use we will also try like other models.

Speaker 1

对吧?

Right?

Speaker 1

所以我们会把这些模型放在同一个框架里去测试,结果都挺不错的。

So and you know, we try them in the same harness and you know, it's just all good.

展开剩余字幕(还有 478 条)
Speaker 1

而且这种灵活性对我们合作的公司来说也非常重要。

And then this is all also often like this optionality is very important to companies that we work with.

Speaker 1

对。

Mhmm.

Speaker 1

是的。

Yeah.

Speaker 1

这也是我们非常看重的一个点。

And this is something that, you know, we we absolutely lean into.

Speaker 0

我觉得最后这一点,任何正经公司都明白,需要保持选择的灵活性,你也希望用那种能给你这种灵活性的工具。

This last point I think, know, as any serious company, you want to have optionality and you wanna use a tool that gives you that optionality.

Speaker 0

不过我挺欣赏这种做法的,因为感觉挺坦诚的。

But I kind of appreciate it because it feels to me like it's kind of honest.

Speaker 0

你看,这逼着整个公司在各个层面——模型层、框架层——都要跟开源和可自选的模型竞争,做到最好。它不让你有借口可以松懈下来,说‘行了,搞定了’。

Like, look, like, it forces the whole company to beat to compete the best in everywhere, in the model layer, in the harness layer, with open source, with with choosable models, and it it kind of, like, doesn't doesn't allow you to, like, kick back and say, like, alright.

Speaker 0

我们完工了。

We're done.

Speaker 0

我们现在可以稍微缓一缓。

We we can we can we can hang back for a little bit for now.

Speaker 1

对。

Yeah.

Speaker 1

我希望通过拥有最好的模型、最高效的模型和最好的产品来赢得用户。

I want us to win users by having, you know, the best models, the most efficient models, the best product.

Speaker 1

然后,如果我们把这些都做好了,我们就会过得很愉快。

And then, you know, if we do all of these things, it's like we're gonna have a good time.

Speaker 1

如果我们因为某一点而强迫你使用这个产品,那我觉得这也不会吸引最优秀的人来开发这个产品。

If we sort of like force you to use the product because, you know, this one thing, it's just like then I don't think that will attract, you know, the the very best people to work on this product either.

Speaker 1

而且,我们在这里做的是我们最好的工作。

And it's like, you know, it's like we we're doing our best work here.

Speaker 1

我们非常在意用户体验。

We care a lot about the experience.

Speaker 1

它应该让人感到愉悦。

It should feel delightful.

Speaker 1

你懂吗?

You know?

Speaker 1

就是说,不管背后是什么模型,体验都应该让人感到愉悦。

Like, it doesn't irrespective of the model that powers it, it should feel delightful.

Speaker 0

我喜欢靠实力取胜的想法,而不是靠锁定用户。

I love the idea of winning based on merit, not based on lock in.

Speaker 0

现在正好可以提一下我们的长期赞助商Entire,他们也遵循同样的规则。

And this is a perfect time to mention our seasoned sponsor Entire who also play by the same rules.

Speaker 0

不管你喜不喜欢,Git正在成为现代以代理为核心的软件开发中的瓶颈。

Like it or not, Git is becoming a bottleneck for modern agent heavy software development.

Speaker 0

开发者们正在用代理生成更多的代码。

Devs are creating more code with agents.

Speaker 0

这些代理也在推送更多的代码。

These agents are pushing more code.

Speaker 0

很多开发者正在运行更多的并行代理。

Many devs are running more parallel agents.

Speaker 0

这些代理还在推送更多的代码。

These are pushing even more code.

Speaker 0

GitHub 显然跟不上节奏,而且经常宕机。

GitHub is clearly struggling to keep up and has frequent outages.

Speaker 0

那解决办法是什么呢?

So what's the solution?

Speaker 0

Entire 是由 GitHub 最后一位 CEO Thomas Dohmke 创立的,他从零开始重新构建了面向智能体时代的 Git 托管服务。

Entire was founded by GitHub's last CEO Thomas Dumpka and he rebuilt git hosting for the agentic era from scratch.

Speaker 0

Entire 的设计初衷就是追求极致的速度,并且让仓库在地理位置上离你更近,从而降低延迟,让大量的代理能够并行推送代码。

Entire was built to be very fast and to have your repos regionally close to you to reduce latency allowing for fleets of agents to push in parallel.

Speaker 0

他们公布了一些数据。

Some numbers they published.

Speaker 0

Entire 每秒能处理 418 次推送。

Entire can handle 418 pushes per second.

Speaker 0

这比市场上所有竞争对手都要快多达 89 倍。

That's up to 89 times faster than every competitor on the market.

Speaker 0

当GitHub宕机时,你仍然可以继续工作,而且你甚至不需要从GitHub迁移。

When GitHub is down, you can still keep working, and you don't even need to migrate from GitHub.

Speaker 0

你只需注册Entire,平台就会镜像你的仓库。

You just sign up to Entire and the platform mirrors your repo.

Speaker 0

还有一个很酷的功能。

And one more neat thing.

Speaker 0

你有没有想过,是哪个提示词生成了这段特定的代码?

Have you ever wondered what prompt resulted in this specific code being generated?

Speaker 0

我觉得,与代理的提示词和对话比PR本身包含更多信息,至少对我来说是这样。

I find that the prompt and conversation with the agent carries more information than the PR itself, at least for me.

Speaker 0

Entire会在仓库中捕获你与代理的所有提示词历史,方便随时查看,并且有一个非常创新的界面来展示这一切。

Entire captures all the prompt history with your agent right in the repo easy to check back and has a pretty innovative UI to show all of this.

Speaker 0

如果你正在寻找一个即使GitHub宕机也能正常工作的Git托管服务,请访问entire.io/pragmatic,安装CLI,一键镜像你的仓库。

If you're looking for git hosting that works even when GitHub is down, head to entire.io/pragmatic, install the CLI, and mirror your repo with a click.

Speaker 0

我已经这么做了。

I've already done it.

Speaker 0

哦,对了,我有没有提过它支持任何代理,而且是开源的?

Oh, and did I mention that it works with any agent and it's open source?

Speaker 0

我还想提一下我们的长期赞助商,Antithesis。

I'd also like to mention our seasoned sponsor, Antithesis.

Speaker 0

Tibo 之前提到过,你使用的软件体验应该让人感到愉悦。

Tibo talked about how the experience of the software you use should feel delightful.

Speaker 0

愉悦当然也包括没有烦人的 bug。

Delightful includes no annoying bugs.

Speaker 0

但是当你用代理来写代码时,怎么避免引入 bug 呢?

But when you are using agents to write your code, how do you avoid chipping bugs?

Speaker 0

代理生成的代码量这么大,逐行审查代码变得越来越困难,所以 Antithesis 远不止代码审查。

Reviewing every line of code is becoming a challenge with the amount of code that agents generate, which is why Antithesis goes well beyond code review.

Speaker 0

Antithesis 会在一个敌对的模拟环境中运行你的整个系统。

Antithesis runs your whole system in a hostile simulation.

Speaker 0

这个模拟既包括定向测试,也包括快速测试。

This simulation includes both targeted testing and fast testing.

Speaker 0

通过运行这个模拟,它能在你的用户之前发现每一个bug。

By running this simulation it finds every bug before your users do.

Speaker 0

而且因为模拟是完全确定性的,它不仅能发现bug,还能给你每个问题的完美复现,这让修复问题变得容易得多。

And because the simulation is fully deterministic it doesn't only find bugs, it gives you a perfect reproduction of every issue which makes it much easier to fix issues.

Speaker 0

我第一次听说Antithesis时,心想自动发现bug和完全确定性测试听起来像科幻小说,但实际上它背后是硬核的工程。

The first thing I thought when I heard about Antithesis is that automated bug discovery and fully deterministic testing sounds like science fiction, but it's actually hardcore engineering under the hood.

Speaker 0

Jane Street、fly.io和etcd社区都满怀信心地发布由代理编写的代码,因为他们知道这些代码已经经过Antithesis的验证。

Jane Street, fly.io and the etcd community ship agent written code with full confidence because they know it's been verified by Antithesis.

Speaker 0

想看更多案例研究和细节,请访问antithesis.com/pragmatic。

To see more case studies and details, head to antithesis.com/pragmatic.

Speaker 0

那么,让我们回到Tibo,聊聊为什么工具之间的竞争是件好事。

And with this, let's get back to Tibo and why competition between tools is great.

Speaker 0

对。

Yeah.

Speaker 0

而且我觉得作为工程师,我总是看到,每当有竞争时,作为工具的使用者,这总是很棒的事情。

And I think as as an engineer, like, I always see that whenever there's competition as someone who's using tools, it's it's always amazing.

Speaker 0

我记得以前微软和 JetBrains 搞 IDE 大战的时候,还有各大云厂商为了抢功能打得不可开交。

Like, I remember, like, when Microsoft had with JetBrains, the IDE wars, and then there's the clouds battling with each other with all the features.

Speaker 0

现在也是,各种测试框架、大模型层出不穷,作为用户来说太棒了,因为选择更多了。

And now, of course, we have the harnesses, we have the models, and as a as a as a user, it's great because now we have more more choice.

Speaker 0

它们的发展速度也更快了。

They just develop faster.

Speaker 0

我觉得我们的声音也能被更好地听到了。

I guess our voice gets heard a bit better.

Speaker 0

所以听到这点真的挺好的。

So it's it's great to hear.

Speaker 0

说到那个测试框架,能不能跟我讲讲它现在的运行机制?比如我启动一个Codex任务的时候,它永远都是在我自己的电脑上运行吗?

Speaking of the harness, can you tell me how it works today in the sense of, like, when I start a a Codex task, does it run always on my machine?

Speaker 0

它会选择使用哪个云服务商吗?

Does it choose the cloud?

Speaker 0

它会用到沙箱环境吗?

Does it use a sandbox?

Speaker 0

那我该怎么控制或者了解这些情况呢?

And how do I control this or or know this?

Speaker 0

或者说,作为工程师,我需要对这些了解多少程度呢?

Or how much should I know about this as as an engineer?

Speaker 1

是的。

Yes.

Speaker 1

所以默认情况下,它是在沙箱环境中运行的。

So by default, it runs in it runs sandboxed.

Speaker 1

如果有些命令需要在沙箱之外以更高权限运行,系统会向你请求授权。不过默认情况下,所有工具的执行都在沙箱里完成,而且完全是在你本地机器上跑。

It everything that if there is like an an a command that should run with additional permissions outside of the sandbox, it will ask you as a user for permission, but everything, every tool execution happens within the sandbox by default, and it runs entirely on the machine, your local machine.

Speaker 1

这种情况已经持续一年多了,但方案也在不断调整。现在你可以选择把任务放到云端运行,它会跑在一个托管的虚拟机里,跟你用 ChatGPT Work 时用的是一样的 VM。

And this has been the case for more than a year now, but it is something that is evolving and shifting where like you can select to run this in the cloud, which then runs in like a managed VM where it's the same VM that you get through ChatGPT work.

Speaker 1

你可以大致查看一下它的状态,不过它其实是跑在 CATA 容器里的。

And you can you can sort of like inspect it, but like it runs in a CATA container.

Speaker 1

那是一个比较安全的环境。

It's like a secure environment.

Speaker 1

所以如果所有东西都在那个虚拟机里运行,不跑在你的机器上,那你的机器上唯一发生的就是你的输入,然后输出流回来。

And so if everything runs inside of that VM and it doesn't run on your machine, and then the only thing that happens in your machine is like the the your input and then the streaming back of the output.

Speaker 1

所以这样一来,显然对你的CPU和机器来说就轻松多了,而且你可以扩展得更多更多。

And so that, you know, obviously then it's like much nicer on your CPU and and your machine and you can scale much much much more.

Speaker 1

这只是一个步骤。

And this is like just a step.

Speaker 1

未来会变得更加无缝,比如使用云机器,然后可能结合一下,一部分在你的笔记本上执行,一部分在云机器上执行。

It's going to be much more seamless in the future to like, you know, use cloud machines, and then, you know, maybe have a combination of like partial execution on your laptop, partial execution on cloud machines.

Speaker 1

我们真正在考虑的很自然的一点是,随着模型变得更好、能力更强,它们可以利用比本地机器上多得多的计算和资源。

And really the thing that we're thinking about that is very natural is as models just get better and more capable, they can leverage so much more compute and many more resources than are available on your local machine.

Speaker 1

所以到某个时候,如果只限制在本地机器上执行,那就会成为一个瓶颈。

And so it would be a constraint at some point to just limit execution on your local machine.

Speaker 0

对。

Yeah.

Speaker 0

但是本地运行有一个好处,我觉得我喜欢本地运行的原因是,当然,这有点麻烦,因为如果我在做某些工作,比如,我有几个代理。

But one thing that is great about it running locally, I think the reason I I love it when it runs locally, of course, it's a pain because if I'm doing some work, it's like, you know, I have several agents.

Speaker 0

它特别吃CPU。

It's it's eating CPU.

Speaker 0

如果我想合上笔记本,我就没法把它半开着放着不管。

If I wanna close my laptop, I I I cannot kind of leave it, like, half open.

Speaker 0

对吧?

Right?

Speaker 0

有一次我在一家AI公司的办公室里,把电脑半开着,他们就问我:你是不是在跑智能体程序?

When I was in one of the offices of an AI company, I I had it half open, and they're like, are you running agents?

Speaker 0

对,确实是这样。

I'm like, yeah.

Speaker 1

我这边有一个正在运行。

I have one running.

Speaker 0

他说得挺对的。

He's like, get it.

Speaker 0

但我之所以这么做,是因为我有本地的工具可用。

But the reason the reason I do it because I have my local tools.

Speaker 0

我本地有 Postgres 数据库。

I have my local Postgres database.

Speaker 0

还有各种其他的本地工具和服务。

I have my my this this and that.

Speaker 0

你是觉得云端虽然很棒,但没法完美复刻这种环境,或者配置起来太麻烦吗?

How are you thinking about the cloud is amazing, but it doesn't have this setup or it's just a pain to set it up?

Speaker 0

你是在考虑这件事,还是已经在动手尝试搭建这些环境了?

Are you thinking or or are you experimenting with, you know, making the these setups?

Speaker 0

这让我想起之前聊过的一个话题,就是云端开发环境。

And I'm kinda reminded of a topic that we talked about pre a, which is cloud development environments.

Speaker 0

大概在2022到2023年的时候,这个概念特别火,后来我们就更多地讨论AI了。

And, like, twenty twenty two, 23, they're they're hot, and then we talked about AI more.

Speaker 0

不过

But

Speaker 1

对。

Yes.

Speaker 1

我觉得除了大型科技公司之外,云开发环境一直没火起来,主要是因为前期投入成本太高。

I I think outside of large tech companies, like, cloud dev boxes really never took off because there's a very big upfront cost.

Speaker 1

而且还得持续支付维护费用,对于独立开发者或者小团队来说,根本享受不到什么好处。

And then you need to pay like a maintenance cost as well, and you just, you know, don't benefit from it as like a a solo developer or like a small team.

Speaker 1

现在有了这些智能体,配置环境的成本几乎可以忽略不计了。

With the level of capabilities that we have in agents now, it's like the setup almost is free.

Speaker 1

对吧?

Right?

Speaker 1

所以像这种搭建成本和后续维护成本,如果你的智能体有能力处理的话,它就应该直接帮你搞定。

So like this the setup cost and this maintenance cost is like if if your agent is capable of doing it, you know, it should just do it for you.

Speaker 1

比如你说,嘿,我本地用的是 SQLite,或者有个本地服务器,还有 MCP 之类的工具。

So for example, if you're saying like, hey, you know, I have like I have my local SQLite or I have a local server and MCPs and whatnot.

Speaker 1

那问题来了:要在云端开发环境里完全复刻这套配置并保持同步,到底难不难?

It's like, how hard is it to actually configure exactly the same setup and keep it in sync on a cloud dev box?

Speaker 1

如果模型能直接替你操作,那其实也没那么难。

Well, maybe it's not that hard if the model just does it for you.

Speaker 1

所以我觉得我们会看到完全云端编排的机器重新流行起来,这样你就不用被笔记本电脑束缚了。

And so I think we're gonna see a resurgence of, you know, fully cloud orchestrated machines, which then frees you from your laptop.

Speaker 1

对吧?

Right?

Speaker 1

就像我们在ChatGPT工作上看到很多成功的一点是,它随时随地都能用,手机上就能访问。

It's like one thing that we've seen a ton of success with with ChatGPT work is like, it's just available on your mobile.

Speaker 1

我每天早上一杯咖啡旁边就开始对着它口述一堆任务,它就直接帮我做了。

I start my day just dictating a bunch of tasks into it next to the coffee, and it just does it.

Speaker 1

它能访问我的日历、邮件和Slack,真是太棒了,我可以到处走动,不用到处带着笔记本电脑就能把事情搞定。

It has access to my calendar, it has access to my email, it has access to Slack, and it's just so awesome to just be able to walk around and you know get stuff done without having to you know carry my laptop everywhere.

Speaker 1

我觉得这和Codex Remote一样,虽然执行还是在你笔记本上,但如果不用一直开着笔记本就好了。

And I think it's the same thing as, you know, we shipped like Codex Remote where, you know, execution is like still happening on your laptop, but it would be wonderful if, you know, you didn't have to keep your laptop open.

Speaker 0

你能讲讲过去你是怎么改进Codex的吗?

Can you tell me a bit on how, in the past, how did you improve Codex?

Speaker 0

因为我记得我第一次用Codex的时候,那还是早期版本。

Because I remember when I first used Codex, this was one of the early versions.

Speaker 0

你知道,就像你可以跟它对话,让它干活。但比如我说,行,做个修改,它就改了,我有单元测试,但它没跑测试。

You know, like, you could talk to it, it did stuff, but, for example, I said, like, alright, make this change, and it did that change, and I had unit tests, and it didn't run it.

Speaker 0

然后过了几个月,具体时间我不太记得了,它就开始自动跑测试了。

And then later, a few months later, I don't know exactly when, it just started to run it automatically.

Speaker 0

这些改进里,你是优化了那个运行指令的脚本吗?

Were these things did you improve the, you know, the the script that runs, you know, the instructions?

Speaker 0

我也不确定你们具体怎么称呼那个引导脚本或者别的什么。

I'm I'm not sure how exactly you call the, you know, the the bootstrapping script or whatever that is.

Speaker 0

是在优化模型吗?

Is it improving the model?

Speaker 0

作为开发者,你觉得在框架和模型这两个层面,分别是怎么把每个版本做得更好的?

As a dev, how can I imagine you making each version better between the harness and then between the model?

Speaker 0

这两者之间有什么联系呢?

And, like, what's the connection between the two?

Speaker 1

对。

Yeah.

Speaker 1

这个问题问得好。

This is a good question.

Speaker 1

所以,从某种意义上说,框架总是比模型稍微领先一步。

So the the harness in a sense is always a little bit ahead of the model.

Speaker 0

哦,真的吗?

Oh, really?

Speaker 0

怎么说?

How so?

Speaker 1

哦,我的意思是,你有一个模型。

Oh, what what I mean by that is that you you have the model.

Speaker 1

它有能力做某些事情,但你要给它一些辅助,这样它才能真正把事情做得可靠、高效,并且符合你作为用户的预期行为。

It's capable of certain things, but then you set it up with like a couple of crutches so that it can actually do the thing to a level of reliability and in in in a way that is like efficient and also with the behavior that you expect as a user.

Speaker 1

这大概就是框架的作用。

And sort of, like, that's the role of the harness.

Speaker 1

对吧?

Right?

Speaker 1

就像提供护栏一样,比如安全性,提高效率,让它更可控、更容易引导。

It's like, you know, provide guardrails, like safety, make it more efficient, make it more, like, steerable, controllable.

Speaker 1

然后,harness通常还负责我们所说的开发者消息,也就是在每个回合开始时注入到上下文中的那部分。

And then the harness usually is also responsible for, you know, what we call, like, the the developer message, which is sort of like infected in the context at the start of of each turn.

Speaker 1

所以这显然会影响agent在整个回合中的行为表现。

And so that affects obviously like the the purpose of that is to to affect like the behavior of the agent throughout throughout the turn.

Speaker 1

你看到的很多结果,其实是harness和模型共同作用的产物。

A lot of what you have is like the result of of the harness and the model.

Speaker 1

刚开始的时候,可能它不会自动跑测试,所以你得提醒它去执行测试。

Initially, like maybe you're like, oh, it doesn't run tests, so, you know, you have to remind it to run tests.

Speaker 1

后来呢,我们训练了一个专门的模型,它能更好地理解你真正的需求。这样你就不用再反复告诉它该做什么了。

And then, you know, we train a battle model that is just, you know, capable of, like, better reflecting on what is it that you really want when you ask for something, and then, you know, you don't actually have to tell it anymore.

Speaker 1

所以随着时间推移,我们会发现系统里的开发者指令变少了,整个框架的负担也减轻了。

So over time, what we see is, like, the system the the developer message shrinks, and then the harness also shrinks.

Speaker 0

在 Codex 团队内部,你们有具体的目标吗?

Inside of the Codex team, do you have specific goals?

Speaker 0

你会说,比如,好的。

Do you say, like, alright.

Speaker 0

现在,Codex 作为工具和模型的结合,在这方面还不太好,或者会犯一些低级错误。那么,作为工程团队,你们是怎么着手开发下一版 Codex 的呢?

Right now, the the Codex as a harness and and model combined is not very good at this or it's kind of doing silly mistakes or here how can I imagine now how, as the engineering team, how you're working on the next, you know, version of of Codex?

Speaker 0

因为作为开发者,我不太明白的是,模型对我来说是个神奇的东西,它当然会变得更好,我相信你们有反馈渠道,但你们还有工具,也就是你们正在构建的那些工具。

Because the thing that I don't really get as a as a dev is like, okay, there's a model, which to me is this magical thing, will get better, of course, I'm sure you have some feedback channels, but you also have the harness, which is the tools that you're building.

Speaker 0

那可能才是团队真正负责的部分。

Like, that's probably what the team is responsible for.

Speaker 0

你们是怎么设定目标的呢?

How do you set even your goals?

Speaker 0

对吧?

Right?

Speaker 0

在传统软件开发中,你会说,我们要做这个功能,然后你就去做,因为你知道怎么做。但对我来说,这个开发过程感觉有点模糊。

Like, in traditional software, you'll be like, we will build this feature, and you build that feature because you know how to do it, but it feels a bit more fuzzy to me, this this development process.

Speaker 1

是的。

Yeah.

Speaker 1

确实是这样。

It is.

Speaker 1

这也是为什么我们大多数事情都是共同设计的。

And and it's why we we co design, you know, most things.

Speaker 1

这是一个研究和工程团队之间的协作过程,主要是在构建核心的智能体框架。

And it's it's a process where it's a collaboration between research and the engineering team, like, primarily building the the core the core agent harness.

Speaker 1

这始终是一个需要不断权衡的问题。

It's always a it's always a question of, like, okay.

Speaker 1

目前来看,我们在某些方面做得很好,但在另一些方面还不够好。

We see today that, you know, we are very good at this, but we're not very good at this.

Speaker 1

而且我们也希望能做点别的,因为那会是一个非常酷的产品功能。

And, you know, we have a desire to do, like, another thing because it would be a very cool product feature.

Speaker 1

然后我们通常会评估一下,看这到底该通过调整工具链来解决,还是得靠改进模型来实现。

And then, you know, we always sort of like look at it, it's like okay, should this be like a harness change or should this be a model change?

Speaker 1

如果确实需要改模型的话,那我们多久能把它搞定呢?

And if it's a model change like how soon can we have it?

Speaker 1

一个月能搞定吗?

Can we have it in a month?

Speaker 1

或者你知道的,三个月、六个月?

Can we have it in you know three months, six months?

Speaker 1

然后我们就会根据具体情况来权衡。如果模型能在某个训练阶段很快解决这个问题,那我们可能干脆就不在框架层做任何改动,直接等模型自己解决就行。

And we sort of like work through that And then depending on, you know, how soon we can just fix it in the model at which level of training, then we might decide to not even do something in the harness at all and not and just wait for for for the model to to solve it.

Speaker 1

毕竟,核心还是得靠智能体本身。

You know, it's it's agents all the way.

Speaker 1

对吧?

Right?

Speaker 1

所以我们会用智能体来分析大量的反馈,提炼出主要议题,好帮我们开展讨论并确定优先级。

So we use agents to analyze like a lot of the feedback to like, you know, come up with themes, know, to just help us have these conversations and decide on priorities.

Speaker 1

不过我们的分析范围覆盖整个编程领域。

But we analyze it across all of coding.

Speaker 1

我们还分析其他业务领域,比如金融、合规、营销等,也就是现在用户日常使用这些智能体的各种场景。

We analyze it across like all of like, you the other domains like finance, comps, marketing, you know, all the things where our users are using these agents nowadays.

Speaker 1

在这些大类下面还有细分的子类别,然后我们大致清楚自己的表现水平,并且一直在不断突破前沿。

And there's like, you know, subcategories within those and then we roughly know like, you know, how well we perform and then we're always pushing the frontier.

Speaker 1

有意思的一点是,随着预训练模型变得更好,整体模型也在提升,整个体系都会跟着水涨船高,但有时候我们会对某些特定方面给予更多关注。

And there's a thing that is interesting is like, as we make, you know, as our pretraining model gets better, as we make the overall model better, like, the whole thing lifts up, but then there are sometimes things that we pay a little bit more attention to.

Speaker 0

你刚才提到说会全程使用代理来分析。

You mentioned you analyze agents all all the way.

Speaker 0

咱们聊聊 Codex 上的软件开发生命周期吧。也就是说,每当有新工程师加入团队,不管哪个团队,大家都会先问:这里的流程是怎么样的?

Can we talk about the the software development life cycle on Codex in the sense of whenever a new engineer joins a team, any team, it's like, okay, how are things done here?

Speaker 0

而且你知道,在AI出现之前,如果你加入像Uber或Google这样的公司,他们会告诉你,好吧。

And, you know, back pre AI, it would have been you joined a company like Uber or Google, and they would tell you, like, cool.

Speaker 0

工作流程是这样的:我们有一个想法,或者产品经理有个点子,然后制定计划,大家聚在一起做一些估算,把任务拆分,写代码,进行测试,做代码审查,发布功能,使用特性开关,最后还要轮流值班。

The way it works is we have an idea or the PM has an idea, we make a plan, we get together, we do some estimations, we break up the work, we code the work, we do tests, we do code reviews, we release, we do feature flags, and then, you know, we we we're on call.

Speaker 0

这就是以前的工作方式。

That that you know, that's how it used to be.

Speaker 0

当有人加入Codex团队时,他们显然一直在为开源项目做贡献,但你会跟他们说些什么呢?

When someone joins the Codex team, you know, they they've clearly been contributing to the open source part, but what what do you tell them?

Speaker 0

如果是完全的新手,在这里事情是怎么完成的呢?

How do things get get done here if they're like a total newbie?

Speaker 1

我会把他们介绍给优秀的人,然后他们最常听到的一句话就是,当你有疑问时,你有没有问过 Codex?

I introduce them to great people, and then the thing that they hear the most about, like, when they have a question is, like, have you asked Codex?

Speaker 1

在 OpenAI,Codex 默认就是嵌入到所有工作流程里的。

Codex, like, is just by default at OpenAI is, like, plugged into everything.

Speaker 1

所以它能访问 Slack。

So it has access to Slack.

Speaker 1

它能访问所有文档和代码,而且新来的同事往往还会惊讶地发现,你几乎可以问它任何问题,它经常都能给出非常棒的回答。

It has access to all the documents and access to all the code, And it still surprises new starters that you can basically ask it anything, and it will very often just, like, come up with, like, a really good response.

Speaker 1

所以,想了解项目现状、谁在负责什么,或者某个决定是怎么做出来的,最简单的方法就是——Codex 内部全都知道。

And so the easiest way to understand the state of a project or who's working on something or why a decision was made is like, Codex knows about it all internally.

Speaker 1

哇。

Wow.

Speaker 1

所以你只需要把这些全都利用起来就行了。

And so you just you just use all of that.

Speaker 1

我们很多工作都是在公共频道里进行的,你知道,就是为了这个原因。

We do a lot of work in you know, for that reason, we do a lot of work in public channels.

Speaker 1

我们会开放文档权限,设置得比较宽泛,这样大家都能接触到这些信息。

We open up documents with like, you know, fairly broad permissions and so that, you know, everyone has access to this information as well.

Speaker 1

这样一来,你的智能体就能去查看各种东西,然后进行推理分析。

And so that, you know, your agent can go through things and like, you know, reason through things.

Speaker 1

然后,我们还有一些对团队效率和协作非常有帮助的东西,还没发布,但很快就会推出,有些会在开发者日上亮相。

And then, you know, we have a couple of other things that are just really very helpful for team productivity and team collaboration that we haven't released yet, but are are are gonna come, like some of it at dev day.

Speaker 1

所有这些都让你和团队保持同步,能很快了解情况,然后自己也能产出东西。

All of that just sort of like makes you very grounded and in tune with the rest of the team and allows you to like, know, just very very quickly like understand the state of things and and and produce things yourself.

Speaker 1

总的建议就是,关心用户,关心产品的一致性,关心模型及其发展方向。

The general recommendation is just like, hey, care about the user, care about the coherence of the product, care about the models and where they're going.

Speaker 1

如果你在做某件事,比如为了绕过模型的缺陷而写一万行代码来打补丁,那你很可能走错了方向。

If you're doing something and you know, you're building like this 10,000 lines of code crutch to work around the model flaws, like you know, you're probably doing the wrong thing.

Speaker 1

所以我们有一套原则,但说到底,这已经成了团队的文化和精神,新人加入时,这种文化就会通过老队员传承下去,就像教他们根基一样。

So we have a set of principles, but it's just really sort of like a team culture and ethos at this point, and you know, it's just very much sort of like carries on, you know, when people join, it's just like through the rest of the team just like, you know, sort like teaching the roots.

Speaker 0

然后当我有个想法,觉得挺不错的时候,我会跟 Codex 讨论一下。

And then when I have an idea, I think it's a good idea, I I talk it through with Codex.

Speaker 0

也许我也会跟同事聊聊,比如:我要做一个很酷的新功能,作为我在 Codex 的第一次贡献,或者说是第一次重大贡献。

Maybe I talk it through with some my colleagues, like, here's a cool new feature I'm gonna build as my first first contribution or first major contribution at to Codex.

Speaker 0

我该怎么做呢?

How do I go about that?

Speaker 0

当然啦,最后我还是会用 Codex 把它写出来。

Obviously, I I code it down with Codex.

Speaker 0

我肯定会测试一下,确保它能正常运行。

I obviously test it and make sure that it works.

Speaker 0

接下来流程是怎样的呢?

From there on, what's the process?

Speaker 0

你们还有代码审查或者 AI 代码审查的概念吗?比如验证、发布、确认,以及分阶段上线之类的步骤?

Do you still have the concept of code review or AI code review, of verification, of rolling out, of verifying, of stage rolled out?

Speaker 0

你知道的,Codex 本身面向的是数百万用户,现在已经突破了 2000 万活跃用户的里程碑。

You know, the thing is because Codex itself, it goes out to millions of people, like, just crossed a a big 20,000,000 active user mark.

Speaker 0

但如果是ChatGPT的话,那覆盖的人数就更多了。

But if it's ChatGPT, then it also goes out to, like, even a lot bigger number of people.

Speaker 1

对。

Yes.

Speaker 1

但令人惊讶的是,无论是在Codex还是ChatGPT上发布,流程其实都差不多,即使ChatGPT有十亿活跃用户而且还在增长,你也能提交一个PR。

But it's it's surprisingly, like, a similar process, whether you ship on Codex or ChatGPT, even though ChatGPT goes out to like a billion a billion, you know, active users and growing, you can ship a PR.

Speaker 1

你知道,你可以做个改动,然后第二天甚至当天就能发布,直接推给十亿用户,也没问题。

You know, you can make a change and, know, get it shipped like the next day or like even the same day, and it just goes out to a billion users and it's fine.

Speaker 1

我们就是非常强调主人翁意识和责任心。

We just really instill a sense of ownership and care.

Speaker 1

所以大家都很自主,可以去做改动,哪怕是很大的改动。

So you're like people are very empowered to make changes, even large changes.

Speaker 1

一般来说,需要提供的是证据,证明这个改动会被用户接受,证明它是个有价值的补充,证明它值得长期维护,同时维护成本也确实大幅降低了。

The general thing that is being asked is like sort of like evidence that it's going to be well received, evidence that is like a worthy addition, evidence that, you know, it's like it is worth maintaining over time, but also like the cost of maintenance is like just really has, you know, gotten done significantly as well.

Speaker 1

所以我们现在思考这些问题的方式,跟两年前或三年前已经不太一样了。

So we we we think about these things slightly differently than, you know, say, like two years ago or three years ago.

Speaker 1

另外一点就是,我们尽可能地把一切自动化。

The other thing as well is like, know, we automate as much as possible.

Speaker 1

比如代码审查、部署、还有发现回归问题这些流程。

So like a lot of like the process of like code review and deploys and, you know, catching regressions.

Speaker 1

基本上所有这些都自动化了。

It's like, you know, all of that is like pretty much automated.

Speaker 1

所以,你就可以专注于真正的想法,以及它怎么帮助用户,你关心整体的连贯性,也就是智能体的整体能力,让它变得更好。

And so, like, you know, you get to just focus on just really the idea and, you know, how it's going to help our users, and you care about, you know, the coherence of it all, and so like the overall power of the agent and making things better.

Speaker 1

而且我们有一长串想做的事情,但还没做到。

And like and we don't we have a long long list of things that, you know, we sort of like aspire to do and haven't gotten to yet.

Speaker 1

然后还有一个北极星方向,就是一个令人愉悦、简单易用的个人AGI,它了解你所有需要知道的事情,能访问正确的资源,可以代表你采取一些有时有风险的行动,但你会收到推送通知,然后你可以核实。

And then there's, like, the sort of, like, the north star direction, which is a delightful, simple to use personal AGI that, you know, knows everything about you, like, you know, that it needs to know, has access to the right resources, can take, like, you know, sometimes risky actions on your behalf, but then, you know, you get, the push notification and then, you know, you can verify that.

Speaker 1

这个东西,你作为用户能深刻理解它,同时它也了解你的日程、你的目标,能主动行动,而且应该非常自然。

And it's like a thing that, you know, you deeply understand as a user, but also it knows about your schedule, it knows about your goals, it can be proactive, and it should be, like, extremely natural.

Speaker 1

它应该能通过自然语言或语音来控制,也许它应该理解你的情绪,比如如果它有摄像头的话。

It should be something that you can control through like natural language or voice, know, like maybe it should understand you know your emotions like if it has like a camera feed.

Speaker 1

它应该是地球上最自然的东西。

It should be the most natural thing on earth.

Speaker 1

它不应该像那种有十个不同按钮和配置的东西。

It's like it should not be like a thing with 10 you know different buttons and configurations.

Speaker 1

AGI应该简单易用。

It's like AGI should be simple to use.

Speaker 0

你刚才简要提到了代码审查,但我想再回到这个话题。

You kind of mentioned just briefly the review the code review, but I wanted to go back to it.

Speaker 0

你之前在谷歌工作过,参与过一个被数亿用户使用的产品,也就是谷歌地图。而谷歌以极其严格的代码审查文化闻名。

You you worked at Google on a on a product used by, you know, like hundreds of millions, which is Google Maps, and Google is very well known for their culture of a very strict code reviews.

Speaker 0

我记得他们好像有两层代码审查机制。

They have, I think, two layers of code reviews.

Speaker 0

一层是语言规范性的审查。我觉得他们在这一方面已经深耕多年,在整个行业里都算是做到了极致。他们坚信这套流程有效,并且一直在沿用。

There's a language correctness review, and they they've taken I think they've really perfected it across the industry for for a long time, and they do believe that it it works and they they use it.

Speaker 0

你觉得这部分,特别是人工审查这块,正在发生怎样的变化?

How do you think that part is changing, specifically the human review?

Speaker 0

因为很长一段时间里,直到一两年前,我都会说代码审查有很多好处,比如知识共享、第二双眼睛帮忙检查,还能降低人员风险,因为当某人不在时,其他人能立刻接手。

Because for a very long time, until maybe a year or two ago, I would have said, you know, code review has all these benefits, knowledge sharing, the second pair of eyes, removing the bus factor because now someone else understands them when that person is out, that they can jump in.

Speaker 0

大家会讨论架构,而不只是代码本身。现在代码量变大了,那代码审查的价值到底在哪里呢?

Conversations are happening about architecture, not just not just the code, but now there's, you know, there's a lot more code, and what was the value of code review?

Speaker 0

在你团队的具体场景下,代码审查还有哪些价值?毕竟你们在这方面走在前面。

What in what cases and so on your team, because you guys are so ahead of this.

Speaker 0

你觉得在哪些环节或情况下,人工审查仍然具有不可替代的价值?

Where do you see humans still being or developers being involved in the review stage valuable?

Speaker 0

那在什么情况下你觉得没问题,会把任务交给 AI 代理来处理呢?

And and where is it fine did did you find it find it fine to hand it off to an agent?

Speaker 1

对。

Yeah.

Speaker 1

代码审查的角色正在发生变化。

The the the role of code review is changing.

Speaker 1

我早期在 Codex 做过的一个项目,就是和研究人员一起开发一个代码审查模型。这个模型的目标是达到能发现逻辑和推理错误的水平,而且这种错误如果靠人工去查,可能需要好几个小时,因为得深入三四层依赖关系,还得意识到文档可能写错了,或者某个第三方依赖的实际实现跟预期不一样,从而导致你的不变量校验失效。

One one of the early projects that I did on Codex was, like, working with research on developing a a code review model that was going to be to a level where it can spot mistakes in logic and reasoning to a degree where it would require humans like, you know, multiple potentially multiple hours to capture the same level of mistake because it requires, like, really digging, like, you know, three, four levels deep into, like, the dependencies and, like, you know, understand that maybe the documentation actually was wrong and, like, the implementation of, like, this third party dependency is, like, different from what you expected, and so therefore, your invariants are not upheld.

Speaker 1

这些东西,除非你是那个库的专家,否则你根本不知道,所以就会出bug。

And these things, it's just like, you know, unless you're an expert in that library, you would know, and therefore you have a bug.

Speaker 1

所以我们开发了这些代码审查模型,发布之后,现在它们的能力和发现这些深层错误的能力,已经和主流模型差不多了。

And so we developed like these code review models and, you know, we we we released them and now they're like the same level of like capability and like ability to spot these mistakes by doing, like, you know, deep verification are, just part of the mainline models.

Speaker 1

比如我们做基准测试的时候,它们在代码审查方面已经超越人类了。

Like, when we benchmark them, it's, like, they're, like, superhuman in code review.

Speaker 1

这不仅体现在正确性上。

And this is not just true for correctness.

Speaker 1

在安全性上也是如此,比如它们能推理非常复杂的问题,然后指出‘嘿,你这里有个严重的安全漏洞’,现在这在OpenAI的所有pull request中都是强制性的。

This is also true for security, for example, where they're capable of reasoning across very very complex things and then coming up with like, hey you have a critical security vulnerability here, which is now mandatory across all of OpenAI pull requests.

Speaker 1

如果我们标记了安全问题,就会阻止pull request合并,而且这完全是自动的。

We block pull requests from merging if you know we flag them with like a security issue, and this is like all automatic.

Speaker 1

现在代码审查的角色,我觉得它一直是为了确保正确性,确保事情能正常工作,但它也像是一种信息交流的仪式,让大家保持一致,鼓励讨论,这些讨论本来应该提前发生,但有时候只有围绕代码才会发生,因为一旦合并,它就在生产环境中运行了,开始产生实际影响。

And the role of Code Review now is like, I think it was always about correctness, it was always about you know ensuring that things work, but it was also sort of like a little ritual for information exchange and, know, bringing people on the same page and, you know, encouraging like a discussion, which ideally would have happened before, but sometimes it just only happens like around the code because once it merged, it just actually runs in production and it's doing stuff.

Speaker 1

对。

Yeah.

Speaker 1

然后你还得去维护它。

And then you have to maintain it.

Speaker 1

所以这里面也有社交层面的因素。

So there's like this social aspect to it as well.

Speaker 1

所以我觉得所有这些都在发生变化。

And so I think all of it is changing.

Speaker 1

比如代码正确性、网络安全这些,我想以后都会实现自动化。

Like the correctness, the cyber the the security is like I think that will be automated.

Speaker 1

实际上,我看到的是一种围绕提交请求意图的深入讨论。

Really what we see and I see is there's this sort of really discussion around the intent that takes place around the poll request.

Speaker 1

比如,你到底想做什么?

It's like, what are you even trying to do?

Speaker 1

这样做是否合适?

And is that a right thing to attempt to do?

Speaker 1

我觉得这类讨论完全可以放在提交请求之外进行。

I think you can have that discussion outside of the poll request.

Speaker 1

不一定非得围绕代码。

It doesn't have to be around code.

Speaker 0

所以,这也许能帮你理清,你知道,哪些地方需要讨论,而哪些地方我们之所以这么做,可能是因为我们当时没有现在这样的工具。

So so maybe this helps crystallize the, you know, like, where a discussion needs to happen versus where we we did it because maybe we didn't have the type the type of tooling that we have right now.

Speaker 1

对。

Yeah.

Speaker 1

我觉得这将会改变,而且它像是一种推动力,因为你知道,你必须在合并之前进行讨论,或者说,在它变成生产代码之前进行讨论是好的。

I I think this is going to change, and it was like a forcing function because, you know, you have to have that discussion or, like, it's good to have that discussion before you merge it and it becomes production code.

Speaker 1

但我觉得还有其他方式进行这些讨论,你知道,一起设计东西,确保意图是好的,然后代码就没那么重要了。

But I I think there are other ways to have these discussions and, you know, design things together and make sure that the intent is good, and then the code doesn't matter as much.

Speaker 0

这很有趣,因为当我回想我所有的代码审查时,当然,我有一些记忆,比如,那很棒。

And it's interesting because when I think back of all my code reviews, like, of course, I have, like, memories where, like, it was great.

Speaker 0

我们进行了很好的讨论,或者我学到了非常有趣的东西。

We we had a good discussion or I learned something really interesting.

Speaker 0

但很多时候,说实话,那真是烦人。

But a bunch of times, honestly, it was such a pain in the ass.

Speaker 0

就像,我当时正想搞定我自己的事情。

Like, I I was trying to get my stuff.

Speaker 0

你被@了。

You're pinged.

Speaker 0

嘿。

Hey.

Speaker 0

你能帮我重启一下代码吗?

Could you reboot my code?

Speaker 0

然后,对方说不行。

And, like, no.

Speaker 0

我现在正忙着呢。

Right now, I'm busy.

Speaker 0

不行。

No.

Speaker 0

我真的需要这个来解我的阻塞。

I really need this to unblock me.

Speaker 0

然后你切换上下文,我觉得这一直都有好有坏。

And then you context switch, and then I feel it's always been, like, good and bad.

Speaker 0

对吧?

Right?

Speaker 0

所以我觉得不管我们做什么,总会有利有弊,只是现在这些利弊在动态变化。

So I I feel whatever we do, there will be always upsides and and downside, but they're now they're just moving.

Speaker 0

所以我想说的一点是,作为工程师,你可能不需要把注意力都放在那些其实不需要你介入的基础事务上。

So the I guess one upside is, as an engineer, you might have to not give your attention to just kinda basic stuff that doesn't need your input per se.

Speaker 1

对。

Yes.

Speaker 1

这样能省时间,而且我们会逐渐看到,你们在‘黑盒’和整体合同层面达成了共识,明确了它应该实现的功能,只要你们在资源占用、数据访问、安全等方面有严格的保障,至于盒子里具体是什么,其实并不重要。

It saves time, and progressively what we're going to see is also that you have an agreement on, you know, the box and the overall contract of what it's supposed to do, and then, you know, what is inside the box as long as you have like strict guarantees in terms of resource utilization, data access, security, these kinds of things.

Speaker 1

也就是说,盒子内部到底发生了什么,理论上可以是任何东西。

It's like what happens inside the box is you know it could be literally anything.

Speaker 1

所以你们其实没必要太在意这些细节。

It's like don't really need to care.

Speaker 1

其实真正需要达成一致的是,这个盒子到底做什么,以及必须满足哪些不变量。

And like really what you need to agree on is like what does the box actually do and what are the invariants that must be satisfied.

Speaker 1

我觉得这时候值得好好聊一聊,也许可以借助你最喜欢的智能助手来帮忙。

And I think that is then worthy, you know, having like a really good conversation on, you know, maybe assisted by by your favorite agent.

Speaker 1

但一旦你有了这些共识和理解,那盒子里面怎么改都不需要再讨论,真的能帮你省下很多精力。

But then once you have that and you have that understanding, it's just like changing anything within the box is like, you know, doesn't require for this discussion and it's like, know, just really preserves your attention.

Speaker 0

维护成本降低了。

The cost of maintenance has gone down.

Speaker 0

你知道,维护一直是个热门话题,不管是在谷歌、优步这样的公司,还是初创公司,开发总是有趣的部分,但维护却很痛苦,那时候我们才意识到,我们不是在建设,而是在维护。

You know, maintenance is always such a hot topic whenever we build something inside of all these companies like Google, Uber, even startups, like building was the the fun part, but then maintenance was the painful, and that's when we learned, like, it was not we're building it, etcetera.

Speaker 0

在Codex和OpenAI内部,你觉得维护成本降低体现在哪些方面?比如不是看你建了什么,而是看你的目标,我猜是定制工具之类的。

Inside of Codex and OpenAI, what do you see maintenance becoming cheaper changing in terms of instead of what you're building, what the ambition is, the I I guess custom tooling, those kind

Speaker 1

这类东西。

of things.

Speaker 1

维护其实就像一种税,你为了保持系统运行,得长期支付。

Maintenance is really like sort of like a tax that you pay over time just to keep things running.

Speaker 1

它一直都很必要,以后也肯定少不了,但我认为变化在于,大部分工作都会被自动化处理。

And it's it's it's it's always been necessary, will continue to be necessary, but where I think it changes is like a lot of it is just going to be automated.

Speaker 1

所以,你知道的,这就好比你说‘好吧’。

So, you know, it's like you okay.

Speaker 1

你有一些第三方依赖,比如需要升级版本。

You have you have this third party dependencies, like you need to upgrade the version.

Speaker 1

我就跟你说,哦,就像‘对,没错’那样。

I'm just like, oh, it's like Oh, yeah.

Speaker 1

你可以完全自动化这个过程。

You you can fully automate this, you know.

Speaker 1

如果你有良好的变更日志,代码也文档齐全,模型就能直接推理处理。它能在几个小时内快速扫描你的整个代码库。以前你可能因为这事不太好玩就拖过去了,但这其实对你的业务非常重要。

If you have good change log and, you know, and the code is well documented and, like, you know, and and and the model can just, reason through it, it's, you know, it can just, like, blast through your code base, do it in a couple of hours, and, you know, previously you would have, like, sort of punted on it because it's not the most fun thing to do, but it's actually really important for your business.

Speaker 1

所以这对你的项目真的很关键,特别是安全漏洞方面,你需要保持更新。

So it's like really important for your project, especially for security vulnerabilities, you want to stay up to date.

Speaker 1

你需要应用所有这些补丁。

You want to apply all these patches.

Speaker 1

我觉得这部分以后都会完全自动化。

I think that's just gonna be fully automated.

Speaker 1

所以像维护这种工作,基本上就顺手搞定了。

So a large part of like maintenance, it just kinda comes for free.

Speaker 1

另外我觉得挺有意思的是,以前你想彻底重构的时候,往往得重新设计架构,因为你要为新的权衡取舍腾出空间,或者你对负载有了新的认识,又或者想加个新功能,结果突然发现现有系统限制太多,不得不全盘推翻重来。

Then I think it's awesome to also think about before like when you wanted to just completely react, you have to do like a new architecture because you're trying to make space for like a new, you know, different kind of trade offs or you have a new understanding of like the workload or you're trying to fit a new feature and like suddenly you realize like your current system is just very limiting and you need to completely architecture it.

Speaker 1

那会儿可是个大工程,成本特别高。

That was like a really really costly endeavor.

Speaker 1

所以你知道,有时候可能要拖上好几年,而且我觉得现在这个过程被大大加速了。

So you know, it's like sometimes like multiple years, and I think this is also like super, super accelerated now.

Speaker 1

所以像犯错的成本嘛,我觉得是在下降的。

So like the cost of mistakes, know, I would say like, you know, is going down.

Speaker 1

但与此同时,软件工程里那些老规矩,比如做好抽象设计,真的很有帮助。

But then at the same time, the good old rules I would say of software engineer of like, you know, having good abstractions like really help.

Speaker 1

就像之前提到的,在既定框架内操作,如果你划定的边界合理,就能在这个范围内快速修改,而不会影响其他服务或基础设施的其他部分。

Like, you know, going back to this like having the box within variance, you know, if you sort of like draw the right shape, you're gonna be able to change things much more quickly within the box and like not affect the rest of the of the services or the rest of your infrastructure.

Speaker 1

我觉得这一点很重要,就是设计时要考虑到快速迭代和变更。

And I think it's important it's important to design for very quick iteration and change.

Speaker 0

我记得之前跟 Peter Steinberger 聊过,那时候他还没加入 OpenAI,聊的是 OpenClaw 以及他对这个项目的看法。他说自己其实不看代码,但我能感觉到他把整个架构都记在脑子里。他还跟我讲了他经常怎么重新调整架构,怎么考虑模块化设计,怎么让一百个贡献者各自开发自己的部分,而不会互相冲突。

I remember when I talked with Peter Steinberger, that was before he joined OpenAI, but about OpenClaw and how he thinks about it, like, you know, he told me that he doesn't read the code, but he kept thinking about, like, I could see that he's holding the architecture in his head and he was telling me how he rearchitects a lot and he thinks about how to make it modular, how to allow a 100 contributors to each build their thing without stepping on each other's toes.

Speaker 0

所以我听你的意思是,这种细心、规划和结构设计变得比以前重要多了。以前这主要是架构师、资深工程师或者经验丰富的老手在做,周围的普通工程师则负责搭建一些比较小的模块。

So I'm hearing what you're saying that this this care, this this planning, this this structuring has become maybe just a lot more important to like, which which was which was something back in the day, you know, it was like the architect or the staff engineer or experienced folks were doing this thing and other engineers around them were kind of building this, you know, smaller parts.

Speaker 0

听起来现在所有工程师在写软件的时候都需要有这种意识,并且提前做好规划,对吧?

It sounds like now all engineers need to be aware of when you're building your software, right, and plan for it.

Speaker 1

对。

Yeah.

Speaker 1

而且 GPT 模型在这方面的表现也越来越好,比如考虑长期维护和良好的架构设计,这可以说是自然而然的前进方向。

And and the GPT models are getting better and better at this as well of, like, you know, thinking about long term maintenance and, like, good architecture and, like, this is, like, a natural sort of, like, next step.

Speaker 1

对吧?

Right?

Speaker 1

它不仅仅关乎代码质量,不是说仅仅看某个文件里的代码干不干净。

It's, like, not just about code quality in the sense of, like, oh, is this code clean within this file?

Speaker 1

但问题是,架构设计是否真的合理,能否随着时间推移减轻维护负担,并为未来的产品或功能扩展、变更留出空间?这本质上就是长期工程思维的体现。

But, like, you know, is this, like, is the architecture actually correct to reduce maintenance burden over time and, like, you know, make space for, like, future product or feature extensions or changes and just really this act of like, you know, engineering over time.

Speaker 1

这正是现在模型开始具备的能力,它们能很好地思考这些问题。

That's kinda like something that models are starting to become capable of like thinking about very well.

Speaker 1

我觉得很有意思的一点是,我们开发的软件生命周期正在变得极快。

I think it's just kinda fascinating to understand that the software that we're building is just going through the life cycle much much faster.

Speaker 1

对吧?

Right?

Speaker 1

你知道,以前你是在扩展它,启动它,可能一开始只是一个小团队,比如你自己,再加上几个工程师,然后慢慢增加人手。

You know, before you had you know, you were you were scaling it, you were starting it, you know, maybe as like a small team of, you know, yourself, maybe a couple of engineers, and then you would add engineers like slowly.

Speaker 1

然后,也许过了一年,如果项目非常成功,你可能会有50个甚至100个工程师参与进来。

And then, you know, maybe after a year, you know, it's like if it's very, very successful, you would have 50 engineers on it or like a 100 engineers on it.

Speaker 1

那时候你有时间预见这种情况的发生。

You would have time to see it coming.

Speaker 1

你有时间去观察新加入的团队成员,从而考虑文档编写等方方面面。

You would have time to see like, you know, the humans on board and so like, you know, you can think about the documentation, all of that stuff.

Speaker 1

但现在的情况更像是突然爆发,一下子就有上百个智能体在参与这个项目。

But now it's just sort of like that explosion of, you know, suddenly you have, like, a 100 agents contributing to this thing.

Speaker 1

这种事可能一个周末就发生了。

It's like, you know, that can happen, like, you know, in a weekend.

Speaker 1

所以跟以前相比,现在的推进速度简直快得惊人。

And so, you know, you're just going into it at, you know, major major speeds compared to before.

Speaker 0

好的。

K.

Speaker 0

那你们和 OpenAI 那边是怎么应对这种情况的?

But how do you and and the folks at OpenAI, like, deal with it?

Speaker 0

这不会让你感到困扰吗?

Does it not mess with your mind?

Speaker 0

我是说,你在这个行业干了这么多年,甚至几十年了,以前那种节奏我们都习惯了,但现在明显快多了。

Like, you you you know what I mean in the sense of, like, you you you've been in this business for quite some time now, like like, decades or or well over, and there was a pace that we kind of got used to, and obviously, it's it's now a lot faster.

Speaker 0

那你怎么调整心态呢?一方面速度变快了,另一方面,去年还在做的那些事,现在因为模型已经能胜任了,你就用不着做了。你是怎么消化这种变化的?

But how do you get your head around the fact that, a, it's faster, b, the stuff that you've been doing a year ago, right now you're not doing because now the model is is good at it, you know, like, how do you kind of reconcile that?

Speaker 0

因为我相信肯定有一些你特别擅长的软件相关的工作,现在你可以交给智能体去做了。

Because there I'm sure there's stuff that you've been really good at related to software that now you can hand off to the agent.

Speaker 1

你不会觉得有点

Do you not get a

Speaker 0

失落吗?

little bit of sting?

Speaker 0

你知道,我们之前聊过,你的功能被开源实现会让人有点不爽,但同样,我特别擅长的东西,比如重构,或者现在可能是架构设计,但也许模型很快也会非常擅长这些。

You know, we talked about it's stinging for your features to be implemented open source, but it can also sting that I've been really good at, like, I don't know, refactoring or or right now it might be architecture, but maybe the model will be really good at that.

Speaker 0

然后我就会想,哦,好吧。

And now I'm like, oh, okay.

Speaker 0

真是的。

Damn.

Speaker 0

我挺高兴的,但同时也希望那是我自己做的。

Like, I'm glad, but also, it would have been nice for me to do that.

Speaker 1

是的。

Yeah.

Speaker 1

我觉得这里面有一种手艺的感觉,偶尔我还是会打开编辑器,写点代码。

I I think there's like a craft aspect to it, which occasionally I still, you know, pull up an editor and, like, write some code.

Speaker 1

就是那种感觉,很舒服。

And it's just like it it it it feels nice.

Speaker 1

而且我有很多美好的回忆,比如深夜坐在Vim里,拼命地写代码。

And and and it's sort of like I have fond memories of, like, late nights sitting in in Vim and, you know, just like Cranking it out.

Speaker 1

喝着零度可乐,脑子里什么都不用想,只专注于眼前的问题。

You know, drinking Coke Zero and, yeah, just not having to think about anything else other than, like, the problem in front of me.

Speaker 1

但说实话,我觉得关键还是在于进入心流状态,解决问题。

But, really, I think it's it's all about being in the flow and and solving problems.

Speaker 1

我发现,这里的人,还有我聊过的所有人,都适应得特别快。

And what I find is like, you know, folks here and also like everyone I talk to is just like adapting very quickly.

Speaker 1

我觉得如果你有这种心态,把代码当作解决问题的工具,那你就能解决更多的问题。

And I think if you if you have a mindset where it's all about code is a tool to solve problems and you can solve so many more problems.

Speaker 1

以前你想做个基准测试,还不确定结果会怎样,现在你直接就能做。

It's like before you wanted to benchmark something and you weren't quite sure where you were gonna net out, it's like you can just do it.

Speaker 1

你最多花三十秒就能在后台启动一个服务,拿到准确的数据,然后做出更优的权衡。

It's it's gonna take you like no more than thirty seconds to launch something in the background and you know get proper numbers and be able to do like a better trade off.

Speaker 1

只要你真正关心结果和系统的稳定运行,这能帮你成为更好的工程师。

It makes you it should make you a better engineer if you just really care about you know the outcome and the system working well.

Speaker 1

所以在 OpenAI,它让我们能更高效地运行推理任务。

And so what it allows us to do at OpenAI, it allows us to run, you know, our inference much more efficiently.

Speaker 1

它让我们能获得更高效的算力,并将其部署到全球。

It allows us to, you know, get like much more like effective compute and then, know, deploy that to the world.

Speaker 1

所以大家都特别专注,用以前根本做不到的速度去解决那些重要问题。

And so like everyone is just like very focused on that and solving important problems at the speed that was not possible before.

Speaker 1

而且我还没遇到过那种觉得‘这不好’或者‘这没意思’的人。

And, like, I I haven't yet, you know, encountered someone who's like, oh, that's not that's not good.

Speaker 1

这挺有意思的。

That's not fun.

Speaker 0

我没理解错吧?听起来如果你们有宏大的目标,或者手头的问题多到今天、明天甚至下周都处理不完,那这反而不算个问题。

Do I understand correctly that it sounds like if you have ambitious problems, if you have way more problems than what you can solve today or tomorrow or the next week, sounds like this is not really a problem.

Speaker 0

因为当你把某件事做得更高效之后,你自然会接着去挑战更多目标,很多初创公司都是这样。

Because when, you know, you get more efficient somewhere, you keep going, which which is a lot of startups.

Speaker 0

对吧?

Right?

Speaker 0

初创公司的野心往往远超它们目前实际能做到的程度。

Like, startups are always way more ambitious than than what they're able to do.

Speaker 1

确实,我们面临的问题肯定还多着呢。

I don't we're not we're not out of problems for sure.

Speaker 1

对吧?

Right?

Speaker 1

所以我觉得我们还需要很长一段时间。

So and and I don't think we will be for a while.

Speaker 1

在数学突破、科学突破方面,还有让世界变得更美好、真正为人类建设以及解决大家面临的最重要问题等方面,我们还有很长的路要走,而且要用一种充满人文关怀的方式去做。

We have a long long road ahead of us in terms of, like, mathematical breakthroughs, scientific breakthroughs, you know, making the world a better place, like, just really building for humans and solving the most important problems that everyone is is facing and just doing it in a a deeply human way.

Speaker 1

这才是我们的使命所在。

That's that's what we're here for.

Speaker 1

还有,回到写代码和那些熬夜的日子,我觉得可能也有一种很光鲜的版本。

Also, just going back to coding and, you know, these late nights, it's like I think there's like, it's also like maybe like a glamorous version of it.

Speaker 1

其实我也有很多熬夜的时候,就是在重构代码。

It's just like I also had very a lot of late nights where I was trying to refactor something.

Speaker 1

然后,你知道,可能重构了三个小时,突然发现这条路走不通,得从头再来。

And, you know, it's just like it would be like three hours deep into the refactor and then realize like, actually, this is a dead end and I must restart from scratch.

Speaker 1

那真的很让人沮丧。

And it was like very frustrating.

Speaker 1

所以,确实有很开心的时候,但也有那种代码编译不过去,你就在想,为什么还没编译好?

And so it's like there was like there are like these very very fun times, but there's also the time where it's like, it doesn't compile and yours is like, why is this not compiling yet?

Speaker 1

就像……

Like

Speaker 0

我敢肯定你也有过那种时候,就是已经很晚了,你必须去睡觉,因为你需要休息,但你就是睡不着。

I'm sure you had the time where you you go you go later, it's now super late, you need to go to bed because you need to you need to get some sleep, and then you can't really sleep.

Speaker 0

然后你心里还惦记着那个做了一半的任务,有时候真的挺烦的。

And you have this thing where, like, you you have some some task that is halfway and it upsets you sometimes.

Speaker 0

我记得我也梦见过代码。我想我现在做自己的软件业务时,有一件事不太一样了:我手头没有那种做到一半就卡住的东西。因为我可以告诉它去执行某项任务,然后把它留在那个阶段——你知道的,算是完成了。要么它能正常运行,要么我有证据证明它失败了。但挺有意思的是,现在一切都快多了。

I remember dreaming about the code as well, and I guess one thing I don't really have these days when I'm working on my software for my business is I don't really have something that is halfway, because I can just tell it, do this, and then I can leave it at a stage where it's kinda like, you know, done, either finished, it's either working, or it's I have proof that it's failed, but it's interesting because, you know, everything's sped up.

Speaker 0

对吧?

Right?

Speaker 1

对。

Yeah.

Speaker 1

也许吧。

I may maybe.

Speaker 1

对,很多人包括我自己都有这种情况。就是白天有时候会冒出一些比较大的问题,或者从白天的对话里想到点什么,但当时没空去细究。

Like, I I do have like, what what a lot of people do and I do myself is like, you know, I have, like, sometimes, like, bigger questions that I'm asking myself, like, and I you know, from conversations I've had during the day or, like, I haven't yet, you know, just, like, had the time to just look into it.

Speaker 1

所以我就让 Codex 帮我跑一晚上,然后特别期待第二天早上起来看结果。

And so I, you know, I will send off Codex to just like look at it overnight, and then I'm very excited to then wake up and look at the results.

Speaker 1

所以每天早上都挺让人兴奋的。

And so, you know, it's always like an exciting morning.

Speaker 0

我觉得处理这种长时间运行的任务还挺有门道的。

Well, I feel there's an art to doing long running tasks.

Speaker 0

当然,你也可以用 /goal 这个指令,它会去执行并运行。

And of course, you can use the slash goal which will go and and and run.

Speaker 0

你知道的,这也是最近才加上的功能,大概几个月前的事。

You know, that's also something that was recently added, like, a few months ago.

Speaker 0

对吧?

Right?

Speaker 0

就是给 Codex 用的 /goal 命令。

The slash goal command to Codex.

Speaker 1

对。

Yeah.

Speaker 1

回到刚才说的,可能这个辅助工具就像个拐杖一样。

And back to, you know, maybe, like, the harness is a crutch.

Speaker 1

对吧?

Right?

Speaker 1

它的目标就是让你能长时间保持专注,始终围绕单一目标推进。

Is slash goal was, like necessary to allow like, you to keep the the model like on track on like a singular goal for a very long period of time.

Speaker 1

它能让模型 literally 跑上几天甚至几周,尤其是遇到特别难的难题时。

And it's like it allows the model to literally run for days or or weeks if it's like a really really hard problem.

Speaker 1

但随着新一代模型的推出,我们发现其实已经不需要 slash goal 了。

But with the new generation of models, like what we're seeing is like, you know, you don't need slash goal anymore.

Speaker 1

也不需要给它套个缰绳之类的限制。

You don't need a harness around it.

Speaker 1

你直接告诉模型说嘿,去忙活一周吧,它真的就能做到。

You can just tell the model like, know, hey, go and work for a week and, you know, it will actually do it.

Speaker 0

说到那些棘手的问题,而且你也还没摆脱它们。从外部发布的一个挺有意思的东西,我觉得对工程师来说算是中等程度的有趣,就是你们所谓的合并,也就是 Codex 被整合进了 ChatGPT 里。

Speaking of hard problems and the fact that you're not out of them, one of the interesting things that you shipped from the outside, I would say it it was, you know, as an engineer, was moderately interesting, is the what you call the merge, which is Codex appeared inside of ChatGPT.

Speaker 0

我之所以这么说,是因为作为工程师,我觉得这事儿挺有意思的,毕竟我们一直在用 Codex,对吧?它现在确实就在那儿。

And the reason I say this as engineers is it's kinda moderately interesting because we've been using Codex, like, yeah, it's there.

Speaker 0

你现在可以在 ChatGPT 应用里直接打开它了。

You can now open it in the ChatGPT app.

Speaker 0

太棒了。

Great.

Speaker 0

我就直接进去,然后马上打开了Codex,因为我其实不太用ChatGPT的App。

Like, I just went there and I just immediately went to Codex because I don't I don't really use ChatGPT in the app per se.

Speaker 0

但我跟OpenAI的人还有你团队的人聊过,他们告诉我,准备工作特别多,工程挑战也很大。

But I talked with folks at OpenAI and people in your team, and, you know, they were telling me, like, there was a lot of preparation going on, a lot of engineering challenges.

Speaker 0

你能说说这个项目有多大吗?你们需要它做什么?为什么这么难搞定?还有,Codex和其他工具是怎么帮你们完成的,这些在以前是很难做到的?

Can you give a sense of how big this project was, what you needed it to do, and why was it difficult to pull off, and and how, you know, how did Codex and other tools help you get it done in in ways that would have been hard before.

Speaker 0

因为自从你们推出合并之后,你分享的Codex使用人数一直在涨,而且涨得比以前快多了。

Because since you've launched the merge, the the numbers that you keep sharing of how many people use Codex, it's like it's going up way faster than before.

Speaker 0

所以我猜你们肯定解决了一个很大的规模问题。

So I assume I assume there's a big scale problem you've solved here.

Speaker 1

合并过程中有很多挑战,首先就是技术栈完全不同。

A lot of things were challenging with the Merge is, first of all, completely different stacks.

Speaker 1

ChatGPT是完全托管的云端服务,所有东西都跑在我们的系统上,存储方式也是传统的,按规模、按效率来构建的。

ChatGPT is like fully managed cloud based, like, you know, you run everything on our on our systems, we store things like traditional traditional way of, like, building things built for scale, built for for efficiency.

Speaker 1

而Codex是完全本地的。

Codex, fully local.

Speaker 1

所以合并的关键其实就是,怎么让这个本地编程代理拥有同样的优势和能力,然后围绕它打造一个产品,并且让它能惠及更广泛的人群,这也是我们所有人加入OpenAI的原因。

And so the merger is just really, like, how do you get the same the same benefits and the same capabilities from this local coding agent and then build a product around it and build it in a way where it can benefit like a much much broader pool of people, which is just also why, you know, all of us joined OpenAI.

Speaker 1

就是为了让全球非常广泛的人群都能受益。

It's like to benefit like this very, very broad population across the world.

Speaker 1

所以这是一段非常激动人心的旅程,我们要弄清楚如何构建一个云端版本,本质上能做到和本地版非常相似的事情,同时还要确保我们能以高效的方式服务数千万甚至数亿用户,这样我们才能把它一直纳入到Plus套餐中。

And so it was like a very exciting journey of like figuring out like how do we build a cloud version of this that in essence is capable of like very very much the same things, but is also built in a way where, you know, we can serve it through like tens and 100 millions of hundreds of millions of users in a way that is still like, you know, efficient so that we can include it all the way into the plus plan.

Speaker 1

ChatGPT工作区本质上就是在云端运行完整的Codex框架,同时配上一台云电脑。

ChatGPT work is essentially like running the full Codex harness in a cloud like together with like a a cloud computer.

Speaker 1

实际上那是一台非常强大的机器,人们已经注意到了这一点,并展示了你能用它做什么。

It's a very powerful machine actually, like, people have sort of picked up on it and showed that, you know, what you can do.

Speaker 1

比如,如果你在提示词上发挥创意,你可以让ChatGPT在里面训练另一个模型。

Like, you know, if if you are creative with the prompt that, you know, you can get you can get ChatGPT to, you know, train another model in there, you know.

Speaker 1

哇。

Wow.

Speaker 1

这真是相当厉害的事情。

There's, like, pretty wild things.

Speaker 1

你知道吗?

You know?

Speaker 1

你可以让它安装Blender,然后做三维建模。

You can get it to install Blender and, you know, do, like, three d modeling.

Speaker 1

它非常开放。

It's, like, very permissive.

Speaker 1

它可以上网。

It has, like, Internet access.

Speaker 1

它就像一台强大的机器,然后Codex就在上面运行。

It's like a a powerful machine, and then Codex just works on it.

Speaker 1

这就是我们通过ChatGPT工作所推出的东西。

And this is like what we shipped through ChatGPT work.

Speaker 1

所以很多系统上的挑战,团队很快就解决了。

So a lot of system challenges, the team did it very quickly.

Speaker 1

显然,Codex帮助提高了效率,查看了并构建了很多基础设施,然后也帮助解决了很多Codex和ChatGPT之间的小差异,比如合并插件、架构,合并库,所以真的是在努力实现一个统一的系统,这才是真正的目标。

Obviously, like Codex helped, you know, to make it more efficient, look at and and build a lot of the infrastructure, and then, you know, help resolve a lot of the little differences as well that, you know, had been occurring between between Codex and ChatGPT, like merging plug ins, architecture, you know, merging library, and like so was like really really working towards like unified system, which is really the goal.

Speaker 1

就是说,大家不应该觉得在 Codex 里能做的事,ChatGPT 做不到,或者反过来。

It's like you shouldn't feel like, you know, you can do something in Codex that you can't do in ChatGPT or vice versa.

Speaker 1

我们想打造的其实是一个统一的产品,让你能访问同样的智能能力,只是使用方式不同而已。

Like what we're trying to build is like one unified product that gives you access to the same intelligence, but in the way that you want to use it.

Speaker 1

整个过程也特别有意思,因为 Codex 在整个过程中还充当了记者的角色,把团队讨论的每一步、各种争论和观点都记录了下来。

And so it was very fun as well because Codex throughout the whole journey also acted as a journalist to sort of like document all the steps and the debates and the discussions that the teams were having.

Speaker 1

大家关于该怎么操作、产品该叫什么名字、什么时候以什么方式推出、哪些功能该合并等等,展开了非常热烈的讨论。

And it was very animated debate, know, of how we should do it and how we should name the thing, and you know when to introduce it in what way, and like what to merge into what.

Speaker 1

当时考虑过很多种不同的方案,所以整个过程还挺有新闻故事性的,因为 Codex 随着时间推移,把整个经过都完整记录下来了。

There were like many different permutations considered, and so there's like a very fun journalistic element to it where we like we have a full recounting that Codex did over time.

Speaker 1

对,这也成了 OpenAI 发展中的一个标志性转折点。我们推出了工作模式切换功能,当时大家对此也有不少讨论,比如这到底是不是正确的做法。

And yeah, it's just it's kinda become known as well as like the toggle arc of OpenAI where, you know, we introduced like the work toggle, which there was also a lot of debate around of like, you know, whether this was like the right thing.

Speaker 1

不过后来呢,大家慢慢就特别喜欢上这个功能了。

And then, you know, it's just like we kinda grew to to just really like it.

Speaker 1

但随着时间的推移,我们会把这些东西进一步整合起来。

But over time, we're gonna merge things further.

Speaker 1

所以,我们正朝着全面整合的方向发展。

So it's like we're really headed into the direction of like full unification.

Speaker 1

而且,我们把这个阶段看作是一个过渡期,在这个时期,工作模式下确实能提供更强大的功能。

And, you know, we kinda view this as like a temporary state where, you know, you have like you have better, stronger capabilities when you're in work mode.

Speaker 1

但随着时间的推移,我们会把这些能力逐步普及到所有使用 ChatGPT 的用户身上。

But over time, we're bringing this, you know, all all the way through like, you know, everyone that uses ChatGPT.

Speaker 0

那你个人是怎么使用 Codex 的呢?

And how do you personally use Codex?

Speaker 0

比如,你在代理、任务以及你用它来管理哪些事情方面,你的工作配置是怎样的?

Like, what's your what's what's your working setup in terms of agents, in terms of task, in terms of what you what what you manage with it?

Speaker 0

说到这个,我问过彼得·斯坦伯格,我该问关于你什么问题。他说,你得问他,你是怎么应对自己同时参与这么多项目的情况的?

And related to this, I asked Peter Steinberger what I should ask about you, and he said, like, you I I I you need to ask him, how do you deal with the fact that you're involved with all these projects?

Speaker 0

你的日程安排就像俄罗斯方块一样紧凑,但你通常都表现得挺开心的。

Your calendar is like Tetris, but usually, you show up pretty cheerful.

Speaker 1

我的日程安排没问题。

My calendar is fine.

Speaker 1

现在我能做的事情多多了,因为我有像 Codex 这样的技术。其实我已经把很多工作都转移到了手机上用 ChatGPT 来处理,只要想到什么要记的,我就直接发出去。

And it's just I am capable of doing so many more things nowadays because I have the technology like Codex, and I actually shifted a lot of like my my my work on on mobile using ChatGPT work where whenever I have something that I want to take note of, I just like fired it off.

Speaker 1

我经常用语音输入。

I use dictation a lot.

Speaker 1

遇到什么问题,我不再是写下来以后再看或者交给别人,而是直接发给你的工作助手,然后它会给我出一份报告。

Whenever I have a question, instead of like writing it down to look into later or delegating to someone, I just like fire it off in touch with your work and I get like a a report.

Speaker 1

它有很多自定义技能和指令,已经非常贴合我的需求,能按照我能高效吸收的风格,生成各种报告、PPT 和代码分析。

It has like a a whole bunch of like custom skills and custom instructions where it's now like very, very tailored to like, know, produce the kinds of reports and slide decks and code explorations, you know, in the style that I can consume effectively.

Speaker 1

所以每次我开会间隙,或者你知道的,你会看到我对着手机口述记录。

And so every time I'm like between meetings or like, you know, you'll kinda like see me like, know, just like dictating to my phone.

Speaker 1

就像我之前说的,我们很多工作都是在公开频道里进行的。

As I said before, it's just like we do a lot of work in public channels.

Speaker 1

Slack上有很多内容。

We have like a lot in Slack.

Speaker 1

Notion和Google Docs里也有很多。

We have a lot in in Notion and Google Docs as well.

Speaker 1

所以基本上,我觉得没有什么问题是我不能问的,Codex 至少能帮我做第一轮的思考。

And so there's pretty much like there's no question really that I feel I cannot ask that, you know, Codex will be able to sort of like do at least a first pass of thinking through.

Speaker 1

不管是关于某个功能的公众反馈,还是查看生产日志了解某个功能的使用量,或者列出那些因为没多少人用而应该淘汰的东西,又或者了解某个团队在忙什么。

Whether it is like public sentiment on a feature, looking at production logs for, you know, how much usage we have on a certain thing, making a list of things that we should deprecate because they're not getting traction, understanding what a certain team is up to.

Speaker 1

基本上,我有什么问题,都能在半小时内得到答案。

It's like any question I have, I can get an answer to, like, you know, within thirty minutes.

Speaker 1

这就是我使用它的方式。

And so that's how I use it.

Speaker 1

我什么事都用它。

I use it for everything.

Speaker 1

它就像我的私人助理,方方面面都是。

It's like my personal agent in in like all the ways.

Speaker 1

而且周末的时候,我也经常做一些代码探索,或者搭一些原型,有时候也会想象一下产品的未来,挺有意思的。

And then oftentimes on weekends as well I do some like code explorations or like I built some prototypes and I have fun like sort of like imagining the future of the product in some ways.

Speaker 1

而且我是和团队里的其他人一起做的,不一定是同一个团队。

And I do that with others on the teams, it's not always the same team.

Speaker 1

而且就像一天之内,我能做出一些我脑子里早就有的东西。

And it's just like in one day, I can build things that I sort of like I had it in my system.

Speaker 1

对吧?

Right?

Speaker 1

就像有一天我醒来,突然觉得,我们应该探索一下做这个意味着什么。

It's like it's like I woke up one day, I'm just like, we should explore what it means to build this.

Speaker 1

然后我就能把所有这些想法表达出来,一天之内就能拿出东西给大家看,让他们思考、批评,希望能从中获得灵感。

And then I can just sort of express all of that and get like something in front of people in a day so that they can think through it and criticize it and hopefully get inspired by it.

Speaker 1

这绝不是说要马上发布,更像是,好,我把想法从脑子里清空,然后继续去做别的事情。

It's like by no means, you know, we need to ship it, but it's more like, okay, I flush it out of my system and then, you know, I go on and like, you know, do other things.

Speaker 1

所以,这真是个神奇的时代,让人充满力量。

So it's just like so I I know it's such a magical time and it's like so empowering.

Speaker 0

最后,对于软件工程师或AI工程师,也就是那些构建软件的人,如果想获得技能和经验,有机会在像Codex团队、OpenAI或AI初创公司这样的地方工作,你有什么建议?

And as closing, what would your advice be for a software engineer slash AI engineer, someone who builds software, who would want to get the skill set and the experience to have the opportunity to work at a place like the Codex team, OpenAI, or like an AI startup.

Speaker 0

就是,你知道,成为那种能熟练运用这些工具的出色创造者。

So, like, you know, just become this really great builder with with these tools.

Speaker 0

因为大家常问的一个问题是,我是不是该先从理论入手?

Because the the question that comes up is often, like, should I start with the theory?

Speaker 0

基础到底有多重要?

How important are the basics?

Speaker 0

我还是应该先把工具用得特别熟练?

Should I just get really good at using the tools?

Speaker 1

对。

Yeah.

Speaker 1

我觉得有两点很重要,一是对事物运作原理保持深层的好奇心,二是能够训练自己快速理解事物的能力。

I think there are two things that are important is deep deep curiosity for how things work and an ability to, like, you know, train yourself to understand things very quickly.

Speaker 1

确实,技术会不断变化,但在 OpenAI 表现出色的那些人,通常都是能快速掌握系统逻辑、迅速上手新代码库并理清头绪的人。

And so it's it's it is the case that things will continue to change, but people that do externally well at OpenAI are like, you know, people that just sort of like are able to like grok a system quickly and like, you know, also dive into like a new code base and sort of like, you know, make sense of it.

Speaker 1

当然,现在有了 AI Agent,这些工作也会得到不少帮助。

But obviously, like all of that is helped with agents nowadays.

Speaker 1

对吧?

Right?

Speaker 1

所以就是,你需要吸收的信息量太大了,关键是要能理解并理清其中的逻辑。

So it's just like there's so much information that you need to absorb and that, know, being able to understand and reason through it.

Speaker 1

我觉得很大程度上取决于你会不会问好问题,比如搞清楚事物是怎么运作的。就像那个‘五个为什么’的方法,你可以一直深挖下去,这样你就能学得飞快。

I think a lot of that is asking good questions really about, know, how do things work and just like going into like the five whys, which I think you know, can just kinda keep digging and digging and digging and you know, you're learning very very fast through that.

Speaker 1

另一件事是跟社区保持同步,或者说跟你想要服务的那群人保持同频。

The other thing is being in tune with the community or you know, the people that you're trying to solve a problem for.

Speaker 1

并不是所有事情都是为了解决某个直接的问题。

It's like not everything is like solving a direct problem.

Speaker 1

有时候你解决的问题,对另一群人很有用。比如你在为人类解决问题,但如果你能清晰地把握需求或要求,并且思路清晰,这种思维上的清晰度对我来说真的很重要。

Sometimes you're solving a problem that will be useful, you know, to like another group of people in the pursuit of like solving a problem for humans, but just being crisp about the taste or the needs or the requirements and being able to think clearly and like, you know, exercising through this clarity of thought feels really important to me.

Speaker 1

如果你没法解释自己想达成什么目标,没法说明自己的意图,没有跟某个社群的联系,也没有那种品味,那做出出色成果就会难很多。

Like if you can't explain what you're trying to achieve, if you can't explain your intent, if you don't have a tie to a community, if you don't have the taste, it's it's it's going to be much harder to do great work.

Speaker 0

太棒了,蒂博。

Awesome, Tibo.

Speaker 0

非常感谢这次交流。

Well, thanks a bunch for this conversation.

Speaker 0

这太棒了。

This was awesome.

Speaker 1

谢谢你的邀请。

Thanks for having me.

Speaker 0

我一直想和Tibo聚一聚,很高兴我们终于做到了。

I've always wanted to get together with Tibo, and I'm glad that we finally made it happen.

Speaker 0

我很欣赏Tibo不仅谈到了开源的优点,也谈到了它的缺点。

I appreciated how Tibo talked about not just the upsides of open source, but also the downsides.

Speaker 0

最明显的是,竞争对手可以复制你正在公开开发的功能,然后在发布前抢先推出,这真的很让人难受。

Most notably how competitors can copy features you are just working on in the open right now and then ship it right before release and just how much this stings.

Speaker 0

而且你还会收到很多低质量的贡献,但你仍然需要想办法处理它们。

Plus you get a lot of low quality contributions that you still need to somehow deal with.

Speaker 0

另一个有趣的点是Tibo说,工具链总是比模型领先一步。

Another interesting one was Tibo saying how the harness is always a step ahead of the model.

Speaker 0

从内部来看,Codex团队认为他们的工作就是通过工具链、工具和设置说明来为模型搭建辅助设施。

From the inside, the Codex team see their job as building clutches for the model with the harness, the tools and the setup instruction.

Speaker 0

然后下一个版本的模型会经过训练,减少对这类辅助工具的依赖。

And then the next version of the model will be trained to need fewer of these clutches.

Speaker 0

说实话,作为开发者,听到这个有点泄气——我花精力做的东西,下个版本模型自己就学会了,我们就能把它砍掉了。

I'll be honest, as a dev, this sounds a little demotivating that the stuff I build in the next version of the model, it'll just know and we can get rid of it.

Speaker 0

而且我觉得,这不仅仅是做这些辅助工具的问题,还包括构建模型要用的各种工具。我希望下个版本的模型不会把 MCV 协议、缩放功能或者插件之类的东西再重新内置进去。

Plus, I do suspect that it's not just about building these clutches, but also building tools that models will use and it's not like the next version of the model will re embed an MCV protocol, scales or plugins, at least I hope not.

Speaker 0

我也很感兴趣,想听听从内部视角看,ChatGPT 和 Codex 合并的过程是什么样的。

I also enjoyed hearing what the merge, merging ChatGPT and Codex, looked like from the inside.

Speaker 0

要把之前完全本地的编码代理 Codex 整合进一个托管的云端架构,还得做到足够高效,才能塞进 OpenAI 每月 20 美元的套餐里。要知道在算力成本面前,20 美元其实并不多。

It was merging a previously fully local coding agent, Codex, into a managed cloud based stack, and doing it efficient enough so that it can be included in OpenAI's $20 per month plan when $20 is not all that much in terms of compute purchase.

Speaker 0

挺有意思的是,Codex 本身就像个记者,全程参与了整个项目。它出现在所有的 Slack 对话和文档里,所以能把所有重要的讨论和决策都记录下来。

It was pretty amusing to hear how Codex itself acted as a journalist of the whole project, as it was present in all the Slack conversations and all the documents, and so it could capture all the important debates and decisions.

Speaker 0

说实话,这部分让我感觉有点像老大哥在监视,AI 无处不在地观察着一切。不过这在未来的初创公司里说不定会成为新常态。

I'm not gonna lie, this part felt a little bit of a Big Brother feel to it, where the AI is always watching, but it could well become the new normal in in startups in the future.

Speaker 0

至于我对这件事到底持什么态度,我还没想好。

I have not yet decided how I feel about this.

Speaker 0

最后,我很欣赏Tibo给工程师们的建议:保持好奇心,快速理解问题,并且与你要服务的团队保持同步。

And finally, I appreciated Tibo's advice for engineers to succeed, be curious, understand symptoms quickly, and be in tune with the group you are building for.

Speaker 0

听到Tibo说基础仍然很重要,这让人感到安心。

It's reassuring to hear from Tibo as well how much the fundamentals still matter.

Speaker 0

请务必查看下面的节目笔记,深入了解Codex、Clock Code、Cursor是如何构建的,以及其他相关话题。

Do check out the show notes below for deep dives on how Codex, Clock Code, Cursor were built and other related topics.

Speaker 0

如果你喜欢这期节目,请在使用的播客播放器上给我们打个分。

If you like what you heard, please hit a rating on the podcast player that you're using.

Speaker 0

这对我个人和节目都非常重要。

It means a lot to me and to the show.

Speaker 0

谢谢,我们下期再见。

Thanks, and I'll see you in the next one.

关于 Bayt 播客

Bayt 提供中文+原文双语音频和字幕,帮助你打破语言障碍,轻松听懂全球优质播客。

继续浏览更多播客