2026年1月29日,The Pragmatic Engineer播客发布了一期访谈。主持人Gergely Orosz的嘉宾是Peter Steinberger,奥地利开发者,PSPDFKit创始人,以及更重要的,最近在开发者社区引发震动的开源项目Moltbot(原名Clawdbot)的作者。
这期节目的标题非常直白:"I ship code I don't read"——我发布我不读的代码。所以,显然谈的是他对AI编码的方法论。
就在这期播客发布的两天前,Anthropic向Steinberger发出了商标函,要求他将项目从"Clawdbot"改名。在改名过程中,他犯了一个操作失误:试图同时修改GitHub组织名和Twitter账号,结果在释放旧账号和注册新账号之间的10秒间隙里,加密货币诈骗者抢注了这两个账号。假冒的$CLAWD代币一度冲到1600万美元市值,然后在Steinberger公开否认后暴跌90%。与此同时,安全研究人员在项目中发现了真实的漏洞:通过Shodan搜索"Clawdbot Control",可以找到数百个暴露在公网上的实例,完整的API密钥、OAuth令牌、对话历史一览无余。
但这些混乱掩盖不了一个事实:Moltbot在一周内从100颗GitHub星涨到超过80000颗,成为GitHub历史上增长最快的开源项目之一。Andrej Karpathy称赞了它,David Sacks发推讨论它,MacStories称它为"个人AI助手的未来"。
Steinberger本人的故事同样戏剧性。2011年,他在维也纳创办PSPDFKit,一个PDF处理框架,最终服务于近10亿用户,客户包括Dropbox、DocuSign、SAP、IBM、大众汽车。2021年,Insight Partners以1.16亿美元(约1亿欧元)投资这家公司,Steinberger和联合创始人退出日常管理。然后他消失了三年。"我需要很长时间来减压,"他在播客中说,"有几个月我甚至没有打开电脑。"
2024年4月,他回来了。但这一次,他的工作方式完全变了。
1. 一个约会应用、一个愤怒的夜晚、一家十亿用户的公司
Peter Steinberger来自奥地利乡村。14岁时,一个暑期来访的客人带来了一台电脑,他从此迷上了编程。高中时他从学校偷了一个DOS游戏,自己写了个软盘复制保护程序,然后把它卖掉。
大学期间,他必须自己挣学费。在维也纳的一家公司做桥接工作时,他们给了他一本巨大的Microsoft MFC书籍。"我至今还会做噩梦,"他说。他偷偷把项目用.NET重写了,几个月后才告诉公司——"反正东西能用"。
2009年,一个朋友给他看了iPhone。"我摸了一分钟就立刻买了一台。"真正让他开始为iOS开发的契机更加私人:他在地铁上用一个同性交友应用,打了一条长消息,按发送的瞬间列车进了隧道,JavaScript禁用了发送按钮,错误消息弹出,但没有复制粘贴功能,也没有截图功能,消息就这么没了。
"我太生气了。我回家就下载了Xcode。"
他用正则表达式解析那个网站的HTML——"完全不是你应该做的事"——用iPhone OS 3 beta和各种黑客技术拼凑出一个应用,放进App Store,定价5美元。第一个月赚了1万美元。有一天他在夜店看到有人在用他的应用,想拍拍对方肩膀说"这是我做的",但觉得太奇怪了,没出声。
他去原公司辞职,想全职做这个。老板嘲笑他:"你在犯错误,这是一时的风潮。"Steinberger说:"那给了我一个chip on my shoulder(心里憋着一口气)。我心想,总有一天我的公司会比你的值钱。花了我八年。"
然后苹果来电话了。凌晨三点,一个美国号码,"你好,这里是苹果的John,你的应用有问题,有人举报了图片。"应用被下架。
他开始做自由职业,在WWDC的酒吧里被介绍给别人——"奥地利最好的iOS开发者之一"——拿到了一份美国的工作,搬去旧金山。后来有人找他修一个杂志阅读器应用,代码"是我见过最糟糕的,一个文件几千行Objective-C,用窗口当标签页"。他本来说一个月重写,结果花了两个月,但最终做出来了。
"你知道,在任何技术问题上,领域本身不是最重要的。你总能在任何领域找到有趣的问题。"PDF领域的有趣问题是:渲染一个PDF的C调用可能需要30MB内存,而整个系统只有64MB。如果你在后台不够小心,系统会直接杀掉你的应用。
他花了太多时间在细节上——旋转时页面动画要丝滑——这就是为什么一个月变成了两个月。但最终产品很好。一个朋友问他要代码,他卖给了对方。然后他想:如果他感兴趣,为什么不卖给更多人?
他用一个WordPress模板魔改出一个网站,托管在GitHub Pages上,购买流程的最后一步是Dropbox链接,指向他个人Dropbox里的源代码压缩包。一个下午搞定。他发了条推,那周三个人买了,每份200美元。更重要的是,有十个人发邮件抱怨——他们想要这个功能,但它没有。
"我被nerd sniped(技术难题吸引)了。'哦,没有文本选择功能?能有多难?'三个月后:'哦,真的很难。'"
这就是PSPDFKit的起源。公司名字来自他的首字母缩写(Peter Steinberger)、PDF、和SDK的"kit"。他花了五分钟想这个名字,然后再也没改过。
2. 十三年、七十人、十亿用户、然后燃尽
PSPDFKit从一开始就是远程公司。"我知道我在维也纳找不到我需要的人。"公司最终扩展到70多人,覆盖所有平台——iOS、Android、Web、服务器端——客户包括Dropbox、DocuSign、SAP、IBM、大众汽车、欧洲专利局。
他的营销策略是只关心开发者。"我知道是高管做决策,但如果我能说服公司内部的人,他们会替我做游说和营销。"他们从不做冷邮件或激进销售,全靠口碑,全靠写深度技术博客。
"如果人们理解做这个产品的人知道自己在做什么、热爱自己在做的事,这会反映在产品上。"他强迫团队每月花一整天写博客。"一天其实挺多的。我现在写博客也就几个小时。"
他对细节的执念近乎病态。"我花了那么多时间在每个空格、每个换行、命名上。"有一次一个客户投诉PDF加载要4分钟,他打开一看:5万页的加拿大法律文本,每页超过100个链接,总共超过50万个链接。他的数据模型假设每个PDF最多几百个链接,完全爆掉了。
"但那时候你已经有一个成熟的产品和API了。怎么在不破坏所有人的前提下完全重新设计内部结构?"他花了两个月,把所有东西改成懒加载,同时保持外部API不变。"最后我把加载时间压缩到几乎瞬间。"
做客服也是他的策略之一。"如果你发工单,CEO亲自回复帮你解决问题,这有影响力。"他的方法是倒序处理工单——如果你发工单后5分钟就收到回复,那是魔法;如果等一两天,差别不大。
到后来,有越来越多的"人的问题"。作为CEO,他成了"垃圾桶"——所有别人处理不了或搞砸的事最终都落在他头上。而且很孤独,因为很多事你不能公开谈论。
"有一个周末,凌晨五点我的联合创始人打电话给我:'有个大飞机公司,他们的飞机趴窝了,因为我们的软件崩溃了。'"他反汇编了对方的应用,证明是他们篡改了PSPDFKit的源代码触发了许可证回退机制。"那是一个'公司完蛋了'和'公司没事'之间的周末。"
"燃尽不一定来自工作太多,"他说,"更多是因为你在做不再相信的事,或者有太多冲突。"他犯了一个错误:试图更民主地管理公司。管理层内部争吵不断。
2021年,Insight Partners以1.16亿美元投资PSPDFKit。Steinberger和联合创始人Martin Schürrer退出日常管理,保留部分股份。
然后他消失了。
3. 三年空白期:当你不必再工作时会发生什么
"我需要很长时间来减压。我补上了很多我觉得自己错过的东西。我旅行了很多。有几个月我甚至没有打开电脑。"
有一段时间,他陷入了"为什么要费心"的状态。"你不应该这么早退休,或者说有这么成功的退出让你永远不必再工作。这把我的脑子搞乱了好一阵子。那是艰难的几年。"
4. 回归:一个约会分析工具、一个惊人的发现
2024年4月,他有了一个想法——一个Twitter分析工具——这是几年前就想做的副项目。他打开电脑,想用Web技术重写。问题是,他对Web几乎一无所知。
"在公司时,Web那边有个很聪明的人在管,我从不用操心。"回来后他发现自己得Google最基本的东西。"你知道,你越擅长一种技术,就越难跳到另一种。不是做不到,但太痛苦了。你在这边能盲打,在那边得查最基础的东西,感觉像个白痴。"
然后他看到了Claude Code。
"我把我那个大乱七八糟的副项目拖进Google AI Studio,拖进去一个1.3MB的markdown文件,打了'write me a spec',它生成了400行规格说明。我把这个拖回Claude Code,打了'build',然后一直按'continue'……它告诉我'100%生产就绪',我启动它,崩溃了。"
但他已经被吸引住了。
"四月份很多人还在合理地持怀疑态度。我觉得,部分原因是那三年我完全没碰电脑——在那几年里,你们测试过AI,学到了它很烂。"
他在四月五月尝试了Claude Code,然后是Cursor,然后是Gemini 2.5,然后是Opus 4。"我有一段时间很难入睡。"他在Twitter上告诉朋友们,有人凌晨五点给他发消息,他立刻回复。对方问为什么还醒着,他说:"哦,这是常态。我还在用Claude。太上瘾了。"
"就像老虎机一样。你按下去,叮叮叮,有时候出来一堆垃圾,有时候出来的东西真的让你震惊。"
他描述了一个具体的时刻。他的Twitter项目能运行了,但用久了会变得很慢很奇怪,然后又恢复正常,很难复现。问题是数据库里有一些触发器,在某些插入操作时会被触发,让数据库变得繁忙。"模型看不到,因为它被抽象得太远了,那个函数名字也不好grep,和其他东西没有明显关联。我问了无数问题,直到我问:'我们有没有任何针对这个的副作用?'然后它找到了,我修好了。"
"一切都只是一个正确问题的距离。但你必须知道要问什么问题。"
5. 新的工作流程:同时指挥5-10个AI agent
Steinberger现在的日常工作流程和传统软件开发几乎没有交集。
他使用OpenAI的Codex而不是Claude Code。原因很简单:Claude Code快,但输出经常第一次跑不通,而且它会回来问澄清问题,打断心流。Codex慢——一个任务可能要跑40分钟到一个小时——但它会安静地读10分钟文件,理解整个代码库的上下文,输出几乎总能直接工作。
"Claude Code会读三个文件就自信地开始写代码,你得不断推它去读更多。Codex会安静地读文件读10分钟,然后给你的输出几乎总是对的。"
如果你只开一个终端,这种等待确实难以忍受。但他同时开5-10个agent并行工作。
"我的一般策略是,我设计一个新功能或子系统,和agent对话,讨论方案——'这个功能有哪些实现方式?你考虑过这个边缘情况吗?这样设计和那样设计各有什么取舍?'我挑战它、调整它、推回去。等我满意了,我说'build',它去执行,我立刻切换到下一个任务。然后这个在煮、那个在煮、另一个也在煮……"
他说这种感觉像玩星际争霸——你有主基地,也有分矿,你在它们之间不断切换。
"通常有一个主项目占据我的注意力,然后有几个卫星项目也需要照顾——我可能在它们上面只花5分钟,它做半小时,然后我再试试看,不需要太多脑力。"
他甚至会故意写模糊的提示,让agent去探索他没想到的方向。"大概80%的时候出来的东西不行,但有时候会有两个点让我眼前一亮——哦,我没想过可以这样做。"
有一次他想给Moltbot加入电话功能——让AI能打电话给餐厅订座。这是一个大模块,会触及代码库的很多地方。他本能的反应是"这要变成臃肿软件了"。于是他问Codex:能不能设计一个插件架构?他引用了另一个他知道的项目里的插件系统让Codex参考。几个小时后,一个完整的15000行插件架构重构完成了。
"如果我自己写,要两周。"
6. 闭环:让agent能验证自己的工作
Steinberger反复强调的核心原则只有一个:闭环。让AI能够自己验证自己的工作。
"这就是为什么这些模型在编程上这么强,但在创意写作上往往一般——代码可以编译、可以lint、可以执行、可以验证输出。写作没有简单的验证方式。"
做Mac应用时调试很麻烦——要编译、启动、手动操作、观察结果。他的解决方案是让agent先写一个CLI,调用同样的代码路径,然后agent自己跑CLI、自己调试、自己修复。
"我告诉它:你去造一个调试用的CLI,调用所有相同的代码路径,然后你自己迭代修复。它就去煮了一个小时,最后告诉我——这里有个竞态条件,那里有个配置错误。我不需要看那些代码。"
最近他给Moltbot加入了多个消息平台支持,每个平台处理tool calling的格式都有细微差异。他意识到自己在手动调试上浪费太多时间,于是让Codex设计端到端测试:启动Docker容器、安装整个系统、用真实API key调用各个模型、让模型读图生图再检查输出。测试覆盖了所有平台——Anthropic、OpenAI、Google的GLM——agent自己把所有兼容问题都修好了。
"用agent写代码反而逼着你写出更好的代码,因为你必须更认真地思考架构,让系统更容易被验证。而可验证性本身就会导向更好的架构。"
这也影响了他对Web开发的态度。"即使是网站,我也会设计成能通过CLI运行的形式,这样就有完美的执行循环。浏览器循环太慢了。"
7. PR已死,Prompt Request万岁
Steinberger现在看Pull Request的方式完全变了。
"我对提示词比对代码更感兴趣。提示词告诉我的信息量更大——你是怎么想到这个解决方案的?你问了什么问题?做了多少引导?代码只是输出,提示词才是思考过程。"
他让贡献者把提示词附在PR里。如果有人提交的只是几行小修复,他会说:不用了,我自己打"fix"让Codex跑几分钟更快。真正帮他省时间的方式是把功能需求写得非常清楚,他直接把issue指给agent去实现。
他收到PR后的典型流程是:和agent一起从PR出发,然后按照他自己的设计思路重新实现。agent很少直接复用PR里的代码,但PR帮助agent理解目标。
"即使在Discord上,我们也不讨论代码。我们只讨论架构和重大决策。"
CI也变了。他不等远程CI(持续集成流水线),agent在本地跑测试,测试通过就合并。
"我有本地CI。agent跑测试,测试通过,我就合并。是的,有时候main会稍微滑一下,但通常很快就修好。我不想等远程CI那10分钟。"
他给这个本地验证流程起了个名字,来自agent自己的用语:"full gate"——linting、构建、运行所有测试。"我慢慢开始用它们的语言了。"
8. 为什么资深工程师用不好AI
播客中,主持人问他为什么很多资深工程师对AI编程持怀疑态度。他讲了一个具体的例子。
"一周前我看到Nala Coco的一篇博客,我非常尊敬他,从他那学到很多。但那篇文章在批评当前模型的工作方式。据我理解,他写了一个提示,放进Claude网页版,按发送,拿到输出,跑了一下,编译不过,然后他就失望了。"
"但你觉得我能第一次就写出没bug的代码吗?这些模型是我们集体人类知识的幽灵。它们在很多方面工作方式和人很像。当然你第一次不会做对。这就是为什么你需要闭环反馈。而且你不是发一个提示给模型,你是开始一段对话。"
他还提到:Coco抱怨模型用了旧API。"是的,因为你没指定macOS版本。所以它做了一个假设,默认用旧API,因为训练数据里旧数据比新数据多。"
"你越理解这些小东西怎么思考,你的提示就越好。这是一种技能,和其他技能一样需要练习。"
他观察到两类人在AI辅助开发上的分野:
适应很快的人:关心产品、关心结果、喜欢把东西做出来的人。他们可能不那么在意代码具体怎么写,但非常在意软件用起来什么感觉、能不能解决问题。
适应困难的人:真正热爱解决算法难题、享受亲手写代码的人。这恰恰是AI最擅长的部分,所以这类人会感到痛苦,甚至抗拒AI工具。
"有些人真的很喜欢解决硬问题,比如算法——他们不喜欢产品那一套,什么营销啊用户反馈啊。他们更喜欢单纯的技术挑战。但这恰恰是AI正在接管的工作。"
他自己在PSPDFKit管理过70多人团队的经历反而成了优势。带团队时你必须学会放手,接受下属写的代码不会完全符合你的风格。
"很多人没带过团队,没有这种经历——接受这不是我写的代码,但它能帮我达成目标,接下来我们可以改进它。这种迭代改进的思维方式,正是和AI协作需要的。"
9. Moltbot的诞生:一个"超级个人助手"的野心
Steinberger一直想要一个"超级个人助手"——不是那种每天早上发邮件说"这是你今天的三件事"的助手,而是一个真正理解你的存在。
"它会记住你上周和谁见了面。它会注意到你每次见某个朋友之后心情都不好,然后问你为什么。它会在某天早上叫醒你说:'嘿,我注意到你有三周没联系Thomas了,而且我查了他的Instagram,他现在在城里。要不要打个招呼?'——一个真正深度个人化的东西。几乎是电影《她》的反面。"
2024年夏天,模型还不够好,他搁置了这个想法。但他造了一大堆CLI工具——控制Google、控制床、控制灯、控制音乐——这些成了后来Moltbot的基础设施。
最初的版本叫"WhatsApp Relay"——他只是想用WhatsApp触发电脑上的操作。然后他去摩洛哥参加朋友的生日派对,整天在外面,只用WhatsApp和他的agent交流。
"它带我逛城市。它开玩笑。它能用WhatsApp以我的身份给其他朋友发消息。"
有一个时刻让他彻底被吸引住了。他在摩洛哥,发了一条语音消息——但他还没有实现语音消息功能,只是把文件路径当字符串传过去了。30秒后,agent回复了他的语音消息。
"我说:'你怎么做到的?'"
"'哦,你发了一个文件给我,我看了文件头,发现是OGG格式。我用FFmpeg把它转换了。然后我在你电脑上找Whisper,但没装。但我找到了OpenAI的API key。所以我curl了一下OpenAI的服务器,让它转写了。'"
"我当时想:holy cow。"这是Opus 4.5,它如此resourceful(足智多谋)。
他开始用它当闹钟。agent在伦敦的Mac Studio上运行,通过SSH连接到他在摩洛哥的MacBook,打开音乐,如果他不回复就把音量调大。为了让它工作,他加了心跳机制——每隔几分钟发一个提示"做点有趣的事,给我惊喜",让它变得主动。
"从安全角度看,这绝对是疯狂的。大概是史上最贵的闹钟。但太好玩了。"
他把这个展示给一起旅行的朋友。每个人都被迷住了。
10. 为什么是CLI而不是MCP
播客中,主持人问他为什么用CLI而不是MCP(Model Context Protocol,Anthropic推出的让AI调用外部工具的标准协议)。
"MCP作为权宜之计可以,但整个概念有点蠢。你必须在session加载时预先导出所有函数、所有工具、所有参数说明,然后模型发送精确的JSON,拿回JSON。但模型真正擅长的是使用bash。"
"想象一个天气服务。模型问有哪些城市,拿回500个城市。但它不能过滤这个列表,因为MCP不支持过滤。然后它问伦敦天气,拿回温度、风速、降水、50个字段——但我只想知道会不会下雨。用CLI的话,我可以用jq只取我要的字段。我可以把命令串起来。"
"我写了一个叫make-porter的工具,可以把任何MCP转换成CLI。所以你可以在Moltbot里用任何MCP——从手机上说'用Vercel的MCP做这个',它会去网站找到MCP、加载它、使用它——全部按需进行。"
11. 爆发:把有完整电脑权限的agent放进公开Discord
2026年1月1日,Steinberger做了一件"绝对疯狂的事":把他的agent——对他的电脑有完整读写权限的agent——放进了一个公开的Discord服务器。
"有人给Discord贡献了支持功能。我不确定要不要合并,最后还是合并了。然后我想:让我们试试,把我的agent加到Discord里。"
人们亲眼看到他用语音让agent查摄像头、控制家居、放音乐、看屏幕判断其他Codex任务跑完没有。
"它在后台看我的屏幕。我在厨房,告诉它'看看我的屏幕,我的agent们完成了吗?'它能看到终端,点进去,告诉我'你的Codex说这个这个'。"
一周之内,GitHub从100星涨到3300星。(到播客发布时,已经超过80000星。)
"每个亲身体验几分钟的人都上瘾了。这是某种新品类。有点像你当初不理解iPhone的广告、但一摸到实物就懂了的那种感觉。"
他说技术本身消失了。"你只是在手机上和一个朋友聊天,这个朋友恰好无限足智多谋,能访问你的邮件、日历、文件,能帮你建网站、做行政工作、抓取网页、给朋友打电话、给商家打电话订位。你不用想什么是上下文窗口。"
onboarding流程也是agent完成的。"最后两周,当项目真正火起来的时候,我告诉人们直接把agent指向代码库来配置它。我没有手动设置流程,因为agent可以做这个——而且因为产品是由agent构建的,它们对代码的命名方式和结构非常熟悉,所以它们特别擅长导航这个产品。"
12. 如果今天重建PSPDFKit
播客中,主持人问:如果今天用AI工具重建PSPDFKit,会有什么不同?
"我大概只需要30%的人。"
"找到合适的人会很难。你需要真正资深的工程师,真正理解他们在构建什么,但同时也能适应委托工作、知道哪些部分真正重要需要专注、哪些部分可以'vibe'。"
"你需要那种有产品愿景、能同时做设计和开发的人——高自主性、高能力——但人数可以大幅减少。"
他说现有公司会很难高效使用AI。"需要的不只是重构代码库,而是重构公司本身。"
13. 对前端规划方式的影响
传统上,前期规划很重要,因为修改成本高。现在还是这样吗?
"我仍然会规划,但我不会投入那么多,因为现在试一试、看结果、再调整变得容易太多了。调整和试验变得更像玩耍。"
"在公司时,我坚持每个功能都要先写提案。因为改动成本高——让下属改方向可能要花一两天。现在那个成本变成了分钟级别。"
"我一直有这种感觉,你不可能在构建之前就知道你想要构建什么。你在构建过程中学到太多东西,这些会反馈到你对系统最终形态的思考中。这是一个螺旋上升的过程。"
他仍然非常关心架构、技术债、可扩展性、模块化。Moltbot成功的原因之一是它非常容易扩展——他花了大量精力让添加新功能变得简单。"但我不需要读每一行代码。我只需要理解结构。"
14. 对新人的建议
"你需要无限的好奇心。学习的方式变了——你可以问一个无限耐心的机器任何问题。你可以checkout一个复杂的开源项目,问它为什么这样设计,它会解释给你听。但你必须真的想知道。大学目前还没设置好来教这些。"
"进入这个市场会更难。你需要构建东西来获得经验。我不认为你需要写很多代码,但你需要构建系统、理解系统。"
"通过痛苦来学习这种好奇心——这通常不是被教出来的。"
新人也有优势:他们不会被经验污染,会用老人想不到的方式使用agent——因为他们不知道"这样不行",而到那时候可能真的行了。
15. 未来:人人都会有一个AI朋友
"未来每个人都会有一个AI朋友——它理解你,了解你的一切,能替你做事,会主动帮你安排事情。需要大量token,但随着技术民主化,会逐渐普及到所有人。"
"我其实为Anthropic做了最好的营销。我不知道有多少人因为Moltbot订阅了200美元的订阅,很多人本来就有一个、又开了第二个,因为太耗token了。这不是说它低效——是因为人们太喜欢它了,一直在用,而它在后台spawn子agent、做一大堆事情让体验变得丝滑。"
Moltbot的设计哲学是让技术消失。你走在路上,看到一个活动海报,给Claude发张图片,它不只告诉你这个活动的评价,还会检查你的日历有没有冲突、朋友有没有在群里聊过这个。因为它有这么多上下文,它能给出比任何活在自己小盒子里的工具好得多的回答。
他造了一个记忆系统。"不完美,没什么是完美的。但已经感觉像魔法了。"
16. 关于"vibe coding"
"我不喜欢'vibe coding'这个词。"
"我称我做的事为**'agentic engineering'(agent工程)**,带个小星号。vibe coding从凌晨三点开始。"
"我仍然在心流状态中。和以前写代码时完全一样的感觉。但精神上更累,因为我不是管理一个员工,而是同时管理5-10个,在不同部分之间切换——这个新子系统、那个功能、那边的bug——我一直在脑子里跳来跳去。"
"我希望不必这样做。我相信这是过渡期的问题,总有一天模型和系统会快到我不需要这么并行化。但现在,要保持心流状态,我必须大量并行。"
他现在用来描述写代码的词语都变了。"weaving code into existing structure"(把代码织入现有结构)——织入。有时候你得改变结构让代码能织进去。
"我比以前写出更好的代码了——当时我自己写的也是真的好——但现在我有更好的文档、更好的测试覆盖。我从来不喜欢写测试,写文档也是。对我来说从来不是创造性表达。现在每次我设计一个功能,我都会问:这个怎么测试?我们怎么闭环?这自动把我推向更好的架构。"
Steinberger的核心洞察是:代码正在变成输出,提示词才是工作本身。他不读自己合并的大部分代码,但他对系统架构了如指掌。他让agent自己跑测试、自己调试、自己修复,他的工作是设计反馈循环、把握产品方向、做架构决策。
在播客的最后,主持人问他推荐什么非技术相关的工具或产品。他说是一个便宜的Android照片相框,可以上传照片、朋友可以发邮件给它显示照片。"从技术角度看很垃圾,运行Android,动画都有点卡。但它给我无限的快乐,因为它是低科技,只是显示照片,提醒我生活中的快乐时刻。我买了iPhone 17,到现在还没拆封,因为懒得把SIM卡移过去。这个200块的小设备给我的快乐比最新的iPhone多。"
什么帮他保持理智?去健身房,和教练练,把手机锁在柜子里。"然后我真的有一个小时只感受自己,在当下,不被通知分心,不想摸手机。我们需要更多这样的时间。"
有时他出门散步,把手机留在家里。"感觉很吓人。手机几乎像一个器官了。你的身体知道它在哪里,如果你不知道手机在哪里,你会panic。"
Q1: 用AI agent写代码最重要的原则是什么?
闭环(Closing the Loop)。设计系统让agent能够自己编译、运行测试、验证输出。如果agent不能验证自己的工作,你就要花大量时间手动检查;如果它能自己验证,你只需要设定目标然后检查结果。这也会倒逼更好的架构——因为你必须把系统设计成可验证的,而可验证性本身就导向好设计。
Q2: 为什么Steinberger选择Codex而不是Claude Code?
Claude Code快但输出经常第一次跑不通,而且会回来问澄清问题,打断心流。Codex慢——一个任务可能要40分钟到一个小时——但它会安静地读大量文件,理解整个代码库上下文,输出几乎总能直接工作。如果你同时开5-10个agent并行处理不同任务,Codex的慢反而不是问题,整体效率更高。
Q3: PR和代码审查在这种工作流里还重要吗?
PR的性质变了——Steinberger现在更想看提示词而不是代码,因为提示词反映思考过程,代码只是输出。代码审查在他的工作流里基本消失了,取而代之的是架构讨论。本地测试通过就合并,不等远程CI。他甚至说,如果有人提交几行小修复的PR,他宁愿自己打"fix"让Codex跑几分钟——这比review PR更快。