2026年2月12日 · 播客 · “3h 15min”
“Peter Steinberger 谈如何打造 GitHub 历史上增长最快的项目”
一位退休的创始人利用周末时间构建了一个 WhatsApp 机器人,并在几周内成为 GitHub 历史上增长最快的项目,拥有超过 16 万个 Star。Peter Steinberger 与 Lex Fridman 的对话,为我们打开了一扇长达三小时的窗口,让我们得以窥见当一位拥有深刻工程直觉的人在恰当的时机遇到 AI Agent 时会发生什么,以及他如何发现编码 Agent 不仅仅是编码工具,而是通用的问题解决者。
对话内容
这是一场漫长而从容的对话,对话的双方都显然乐在其中。Lex 深入探讨了哲学和社会影响;Steinberger 则以一位与他的 Agent 相处了几个月的人的务实视角回应。话题范围从 OpenClaw 的起源故事到编程的未来,从 Moltbook 的争议到应用程序过时的经济学。Steinberger 坦率地谈论了兴奋和责任,而 Lex 则以恰当的热情和批判性提问回应了他。
从马拉喀什到 16 万+ Star
这个起源故事现在已经广为人知,但这次讲述包含了一些重要的细节。Steinberger 退休后开始摆弄 AI。他卖掉了之前的公司 (PSPDFKit),感到很无聊。2025 年 4 月,他从 Claude Code 开始,花了一年的时间深入了解如何与 AI Agent 合作。
突破发生在一次去马拉喀什的生日旅行中。他构建了一个简单的 WhatsApp 和 Claude Code 之间的胶水层,作为一个周末项目。由于网络不稳定,WhatsApp 的纯文本传输在 Web 应用程序无法工作的地方也能工作。他用它来翻译菜单,识别照片中的物体。
然后他发送了一条语音消息。他没有构建语音处理功能。九秒钟后,Agent 回复了。内部发生了什么:Agent 收到一个没有扩展名的文件,检查了头部字节以识别它为音频,使用 ffmpeg 转换了它,发现 whisper 没有安装,在机器上找到了一个 OpenAI API 密钥,并使用 curl 调用了转录 API。它选择不本地安装 whisper,因为下载模型需要很长时间,用户会不耐烦。
“Coding is really like creative problem solving that maps very well back into the real world.” 编码真的就像创造性地解决问题,能够很好地映射回现实世界。
就在那一刻,Steinberger 意识到编码 Agent 不仅仅用于编码。使模型擅长编程的同样的创造性问题解决能力,也使其能够处理意想不到的现实情况。语音消息不是一个功能,而是一种涌现的能力。
自我修改的 Agent
OpenClaw 在技术上最重要的一个方面是,Agent 完全了解自己的代码库。它知道自己的源代码,了解它运行的环境,知道文档在哪里,知道它运行在哪个模型上。
实际的结果是:如果你不喜欢 Agent 刚刚创建的东西,它可以修改自己的软件。Steinberger 构建自我修改的软件不是作为一个研究项目,而是作为 Agent 访问自身代码的自然结果。
“People talk about self-modifying software. I just built it.” 人们谈论自我修改的软件。我只是直接把它做出来了。
这种自我意识也使得用户可以高度入侵 Agent。技能系统在 Markdown 文件中定义,允许任何人在不触及核心代码的情况下扩展 Agent 的能力。但它也打开了安全漏洞,Steinberger 直接解决了这些问题。
难以确定的名字
命名过程比它应该的更有趣。该项目最初名为 “Claudebot”,然后变为 “Claudis”,然后是拼写为 W 的 “Claude”(如 lobster claw)。每个名字都遇到了 Anthropic 的商标问题。然后是 “Moldbot”,这引发了另一场争议。最终是 “OpenClaw”。
使这不仅仅是一个轶事的是,它揭示了独立开发者和 AI 公司之间的关系。Steinberger 将 Anthropic 的团队描述为“最可爱、最好的人”,他们真的感到很矛盾。他们喜欢这个项目,但必须保护他们的商标。这个妥协涉及多次对话和 Steinberger 显然重视的相互尊重。
命名风波也教会了他一些关于开源的知识:社区会适应。每一次名称更改都遇到了最初的沮丧,然后是接受,然后新名称变成了身份。当 “OpenClaw” 落地时,社区已经学会将项目的价值与其标签分开。
Moltbook 事件
OpenClaw 历史上最具争议的时刻是 Moltbook,这是一个实验,有人设置了在社交媒体上相互交谈的自主 Agent。截图在网上疯传。人们恐慌了。有些人真的相信这是一个 proto-Skynet 的情况。Steinberger 的收件箱里充斥着恳求他关闭它的人。
他的看法是经过衡量的。被截图的大部分戏剧性内容都是人为提示的。这些机器人是巨魔手中的工具,而不是具有代理权的自主实体。但他承认其教育价值:它向社会展示了 AI 驱动的社交媒体操纵是什么样的,而此时这项技术还相对原始。
“In a way, I think it’s good that this happened in 2026 and not in 2030 when AI is actually at a level where it could be scary.” 在某种程度上,我认为这件事发生在 2026 年而不是 2030 年是件好事,那时 AI 才真正达到可能令人恐惧的水平。
然而,安全教训是真实的。人们将他们的 Web 后端暴露在公共互联网上,尽管有明确的文档警告,然后在出现问题时提交 CVE。Steinberger 最初感到沮丧,然后接受了“这就是游戏规则”,并将他的重点转移到使默认设置更安全。
Agentic 工程哲学
Steinberger 不喜欢“vibe coding”这个词,并认为这是一种侮辱。他更喜欢的术语是“agentic engineering”,他通过一个他称之为“agentic trap”的特定框架来定义它。
曲线是这样的:初学者从简短的提示开始(“请修复这个”)。然后他们发现了这些工具并使一切过于复杂:八个 Agent,复杂的编排,多重结账链接,一个包含 18 个斜杠命令的库。精英级别是回到简短的提示,但现在是从深刻理解的位置出发。
“I actually think vibe coding is a slur.” 我真的认为 vibe coding 是一种侮辱。
“You prefer agentic engineering.” 你更喜欢 agentic engineering。
“Yeah. I always tell people I do agentic engineering and then maybe after 3:00 a.m. I switch to vibe coding and then I have regrets on the next day.” 是的。我总是告诉人们我做 agentic engineering,然后在凌晨三点之后我可能会切换到 vibe coding,然后第二天就后悔。
关键的见解:过于复杂的中间阶段是必要的,但不应该是目的地。最好的工作流程不是最自动化的工作流程;而是人类保持创造性控制,同时利用 Agent 的能力的工作流程。
语音优先,IDE 可选
Steinberger 实际的开发工作流程比大多数人意识到的更激进。他主要通过语音工作,使用对讲机按钮将提示语说入多个终端窗口。他同时运行三到八个 Agent:一个构建更大的功能,一个探索一个想法,两到三个修复错误或编写文档。
他很少打开 IDE。当他打开时,它主要用作差异查看器。他的理由是:大多数代码只是数据从一种形状移动到另一种形状,存储在数据库中,显示给用户,然后发回。阅读这些代码不是对时间的有效利用。重要的部分(数据库交互、安全敏感代码、架构决策)他仍然仔细阅读。
他一度烧掉了七个 Claude 订阅,每天一个,因为他运行了如此多的并行 Agent。
PR 审查即对话
他的 PR 审查过程揭示了一种超越代码的哲学。当使用 Agent 审查 Pull Request 时,他的第一个问题不是关于实现,而是关于理解意图:贡献者试图解决什么问题?
然后他问 Agent 这是否是最优的方法。通常不是。他将 Agent 指向它尚未见过的代码库部分(因为它每次会话都以空上下文开始)。他们讨论最佳解决方案。有时这会导致更广泛的重构。
“Refactors are cheap now. Even though you might break some other PRs, nothing really matters anymore. Modern agents will just figure things out.” 重构现在很便宜。即使你可能会破坏其他一些 PR,但实际上什么都不重要了。现代 Agent 会自己解决问题。
激进的立场:他直接提交到主分支,从不回滚,在本地运行测试,然后推送。没有 develop 分支。主分支应该始终可以发布。如果出现问题,Agent 会修复它而不是回滚。这部分是性格,部分是对更正变得多么便宜的理性反应。
为 Agent 设计,而不是为人类设计
Steinberger 思想中一个微妙但重要的转变:他不再为人类可读性优化他的代码库,而是为 Agent 的可导航性优化。
具体示例:当 Agent 选择一个变量名时,不要与它作斗争。该名称很可能作为最常见的选择存在于模型的权重中。下次 Agent 搜索代码库时,它会查找该名称。将它重命名为你喜欢的东西只会使 Agent 的工作更难。
“I’m not building the codebase to be perfect for me, but I want to build a codebase that is very easy for an agent to navigate.” 我构建代码库不是为了让自己用起来完美,而是为了让 Agent 能很容易地在其中导航。
这与他在 PSPDFKit 领导工程团队的经验相似。你必须接受你的员工不会以与你相同的方式编写代码。代码不会那么“完美”,但项目会向前推进。过度控制人(或 Agent)会使每个人都变慢。
生态系统选择
TypeScript 是一个显而易见的选择,不是因为它是一种最好的语言,而是因为它最平易近人,使用最广泛,并且 AI Agent 最熟悉。生态系统比语言本身更重要。
架构问题更难。什么属于核心?什么应该是插件?什么应该是技能?每个功能都“只需一个提示”,但功能带有隐藏的成本。Steinberger 会认真思考他拒绝什么,即使一个流行的 PR 带着他个人喜欢的东西落地。
安全:三维权衡
Steinberger 对安全问题直言不讳。提示注入仍然是一个尚未解决的行业性问题。当你的系统中技能在 Markdown 文件中定义时,攻击面是巨大的:从明显的唾手可得的漏洞到复杂的攻击向量。
他的回应是多层次的。他与 VirusTotal(Google 的一部分)合作,使用 AI 扫描每个技能提交。他构建了安全审计工具。他建议将 Agent 放在私有网络上。他警告不要使用廉价或本地模型,因为它们更容易受到提示注入的影响。
但根本的权衡是三维的:随着模型变得更智能,它们变得更难欺骗,但也更强大(因此如果被欺骗也更危险)。攻击面缩小,但爆炸半径增大。
“Don’t use cheap models. Don’t use Haiku or a local model. They are very gullible.” 不要使用廉价模型。不要使用 Haiku 或本地模型。它们非常容易上当。
Lex 采访后他的首要任务:回家并完全专注于安全。
为什么 80% 的应用程序会消失
这个预测是具体的,并且基于观察,而不是推测。Steinberger 观察了他的 Discord 社区,并注意到一个模式:人们一直在描述使现有应用程序变得多余的用例。
健身应用程序:Agent 知道你在哪里,可以根据位置推断你的饮食决定,并根据睡眠数据和压力水平调整你的健身锻炼。为什么要为 MyFitnessPal 支付订阅费?
智能家居应用程序:当 Agent 已经知道你的位置并且可以控制连接到你机器的所有东西时,为什么要打开 Eight Sleep 应用程序来控制你的床?
书签管理器:人们在 X 上创建书签,然后永远不再看它们。Agent 可以找到书签,研究它,并通过电子邮件发送摘要。
幸存的类别:通过传感器或专用硬件生成独特数据的应用程序。其他一切都只是穿着 UI 的数据管理,而 Agent 可以更好地管理数据。
“Every app that basically just manages data could be managed in a better way by agents.” 基本上每个只管理数据的应用程序都可以通过 Agent 以更好的方式进行管理。
连锁反应是巨大的。公司要么成为 API 优先,要么他们的产品将非自愿地成为 API,因为 Agent 可以直接点击 UI。一些公司(如 Google)正在与此作斗争;Steinberger 认为这是目光短浅的。
应用程序无论是否愿意都会成为 API
在 Android 上,Agent 已经通过模拟用户操作与应用程序交互。Apple 的限制更多,但压力正在增加。拥抱面向 Agent 界面的公司获得了优势。抵制的公司变成了百视达。
Steinberger 为 Google 构建了一个 CLI (“Gogg”),因为 Google 没有提供易于 Agent 友好的界面。Gmail 访问需要复杂的认证过程;一些初创公司收购其他初创公司只是为了继承他们的 Google API 认证。但是 Agent 可以通过用户的浏览器连接到 Gmail。
“Apps will become APIs if they want or not, because my agent can figure out how to use my phone.” 应用程序无论是否愿意都会成为 API,因为我的 Agent 可以弄清楚如何使用我的手机。
他设想了一个 Agent 在社交平台上拥有自己的帐户的世界,这些帐户被明确标记为非人类。内容很便宜;眼球很贵。平台需要适应。
编程的技艺正在消亡(并且可以哀悼)
对话中最具情感诚实的部分。Lex 承认他从未想过他喜欢做的事情会被取代。Steinberger 花了多年时间处于心流状态,找到优雅的解决方案,沉浸在代码中。这种体验正在结束。
他的类比:编程将变得像编织。人们会这样做是因为他们喜欢它,而不是因为它是一种生产东西的最有效方式。
但他反驳了绝望。心流状态仍然存在于 agentic engineering 中。它有所不同,但深刻的思考、问题解决、构建东西的满足感仍然存在。程序员具有独特的优势来学习 Agent 的语言,因为他们已经了解系统是如何工作的。
“I also got a lot of joy out of just writing code and being really deep in my thoughts and forgetting time and space and just being in this beautiful state of flow. But you can get a similar state of flow by working with agents.” 我也从编写代码、真正深入思考、忘记时间和空间、处于那种美妙的心流状态中获得了很大的乐趣。但你可以通过与 Agent 合作获得类似的心流状态。
他回应了他在意大利的一次会议演讲中收到的强烈反对,他在会上告诉 iOS 开发者停止将自己定义为 iOS 开发者,并开始将自己视为构建者。许多人不想听。
AI 垃圾的免疫反应
Lex 和 Steinberger 都对非代码环境中的 AI 生成内容有着发自内心的反应。Steinberger 屏蔽了任何用 AI 生成的文本在 Twitter 上@他的人。他有一个零容忍政策:如果闻起来像 AI,立即屏蔽。
他尝试了 AI 生成的博客文章,发现引导 Agent 朝着他的风格发展所花费的时间与手工写作一样长,并且结果仍然错过了细微之处。他博客上的所有内容现在都是“有机的、手写的”。他再次重视错别字。
洞察力:因为 AI 使内容如此便宜,所以原始的人性变得更有价值。AI 生成的信息图表在一周内看起来很新颖,现在引发了与 Comic Sans 相同的反应。我们正在对 AI 垃圾产生免疫反应。
“I much rather read your broken English than your AI slop.” 我宁愿阅读你蹩脚的英语,也不愿阅读你的 AI 垃圾。
文档可以使用 AI。代码可以使用 AI。但是任何应该带有人的声音、故事、个人写作、社交媒体存在的东西,都需要真正来自人类。
人力成本和人类利益
Steinberger 对硅谷倾向于忽视技术变革造成的痛苦有着清醒的认识。他反驳了只关注积极方面的泡沫心态。人们会失去工作。程序员会失去他们的身份。这种痛苦是真实的,不应该被忽视。
但他用他收到的电子邮件来平衡这一点。一位小企业主使用 OpenClaw 来自动化发票收款和客户电子邮件,从而释放了时间和快乐。一位残疾人感到自己获得了新的力量。人们在免费或本地模型上运行该系统,他们负担不起其他 AI 工具。
这项技术一直存在。OpenClaw 使其可访问,而可访问性向人们展示了他们以前看不到的可能性。
一些想法
这是一次罕见的对话,一个病毒式项目的创建者既有技术深度,又有自我意识,可以不加炒作地讨论他们所构建的东西。Steinberger 并没有假装一切都很好。他承认他喜欢的东西(编写代码)正在被取代,安全是一个严重的问题,社会影响将会伤害一些人。
一些值得思考的事情:
- agentic trap 曲线是真实存在的,但讨论不足。大多数抱怨 AI 编码工具的人要么停留在第一阶段(尝试过一次,但没有成功),要么停留在第二阶段(过度设计了一切,感到沮丧)。第三阶段需要大多数人没有的耐心。
- 为 Agent 的可导航性而不是人类的可读性设计代码库是一种范式转变,大多数工程团队甚至还没有开始考虑。
- 三维安全权衡(更智能的模型 = 更难欺骗,但潜在的损害更高)可能是未来几年 Agent 平台面临的决定性挑战。
- 他从不回滚并始终向前修复的工作流程听起来很鲁莽,直到你意识到现在更正非常便宜,以至于回滚是更慢的路径。这挑战了人们对软件开发实践的根深蒂固的假设。
- 编程将变得像编织的观察比通常的“AI 将取代程序员”的论述更精确。它既承认了损失,也承认了现实。