2025 年 11 月,DHH 从 AI 编程的怀疑者变成了最激进的实践者:他的 Linux 发行版 Omarchy 新版本,最近两个月没有一行代码是手写的。这篇精读梳理他在 Lex Fridman 五小时访谈里的核心判断:大公司快不起来,瓶颈在人的沟通带宽和品味;懂编程有时反而碍事;漂亮代码的回报在缩水;开源维护者迎来最好的时代;Linux 的缺点正变成卖点。外加他并行跑十几个 agent 的工作流和一次跨模型成本对比。
这一期的核心判断
- 01DHH 认为 2025 年 11 月的 Opus 4.5 是分水岭,关键是 agent 会用工具、会自查;到 2026 年夏天他只需描述问题,路线交给模型,Omarchy 新版近两个月的代码全部由 agent 写。
- 02DHH 认为大公司用了 agent 也快不起来:瓶颈是人与人之间的沟通带宽,以及想法、愿景和品味,而不是写代码。
- 03DHH 认为懂编程有时反而碍事:过度指定会伤害 agent,软件的本质是产品管理,应该先模糊地做出东西,在使用中发现需求。
- 04DHH 认为漂亮代码的回报建立在“由人来改”之上,正在缩水;但在 token 仍稀缺时,清晰的架构能让 agent 的下一次修改依然便宜。
- 05DHH 认为 Linux 的命令行和配置文件正是 agent 最擅长的界面,Linux 赢下桌面是最可能的结果。
2025 年 11 月 24 日,Anthropic 发布 Claude Opus 4.5。DHH 两天后才试。他派了几个任务,输出质量"接近得诡异",几乎就是他自己会写的代码。他记得自己往后一靠,心想:"刚才发生了什么?"
DHH 全名 David Heinemeier Hansson。他是 Ruby on Rails 的作者,也是 37signals 的 CTO,这家公司做 Basecamp 和 HEY 邮箱。过去二十多年,他是"手工雕琢漂亮 Ruby 代码"最有名的代言人。13 个月前他上 Lex Fridman 的节目时,对 AI 写代码还颇为怀疑。
这次再来,他说自己处在"谵妄"(delirium)状态。他做的 Linux 发行版 Omarchy 刚发布第四版 Quattro。最近两个月里,Quattro 发布出去的代码没有一行是他手写的。
这期访谈超过五个小时,后半段聊到育儿、社交媒体、移民政治和美食。本文集中在前三个多小时:AI 编程到了哪一步,组织、开源和程序员个人会怎样,以及他每天具体怎么干活。
他说自己没改观点,是工具换了代
DHH 坚持说,他对 AI 的看法没变。一年前他不喜欢的是当时 AI 的形态:要么是代码补全,要么是聊天机器人。聊天机器人他其实一直喜欢,它是好老师,也是高效的查询工具,但它不会替他"凿代码"。真正变的是 agent 出现了。
他把过去一年分成几段。agent 出现之前,AI 只是让他手头的事更高效一点,没有改变他和电脑的关系。Opus 4.5 是分界线。他不确定 4.5 比夏天用的 Opus 4 聪明多少,但它操控电脑、调用工具、检查自己工作的能力完全不同。
这就是他说的 harness 问题。harness 是包在模型外面的那层程序,负责读写文件、跑命令、跑测试。可以把它想成同一个司机换了一辆带导航和倒车雷达的车。
2026 年初春,子 agent(sub-agent)出现了。harness 能把任务切开,派八个子 agent 并行干活,原来很久的活缩到五分之一甚至十分之一。不过 DHH 说,这两个阶段他都还得"坐驾驶座"。他要告诉 agent 要什么、去哪找、跑偏了怎么拉回来,还得当审核员。
到 2026 年夏天,Opus 5、Fable、GPT Sol 这一批模型出来了,一些开源权重模型也跟上了,只是差一点。他说这时进入了新阶段:"我不再告诉它往哪走,我告诉它我遇到的问题……它告诉我往哪走。"在产出代码、选择路线的环节,他说自己已经"可有可无"。
他用早期 GPS 打比方。当年报纸写过,有人跟着导航开进了港口。现在谁还听过这种事?车都自己开了。他说,在他目前工作的领域里,他可以信任 agent 不会干蠢事,就算干了也能自己恢复。
Lex 在这里加了限定:程序员的领域差别很大。最常见的 Web 增删改查(CRUD)应用,好程序员凭系统表现出来的症状就能判断对错,确实可以不看代码。Linux 发行版这种对速度敏感的项目可能要多看。核电站、自动驾驶这类安全攸关的系统更得细看。
DHH 同意,但补了一个反方向的事实:AI 发现和修补安全漏洞的能力已经强得惊人。他提到 Fable 一度被认为找漏洞能力太强,不适合发布。很多攻击要把几个单看不严重的小漏洞串起来,才能拿到远程命令执行。能做到这一点的人极少,通常在国家级机构里。
他也说了 Quattro 的具体做法。所有代码的"形状"他都看过。系统里关键的模型层,他逐行审过。很多 UI 代码和辅助代码,他没看。
大公司快不起来,瓶颈从来不在写代码
Lex 问了一个很多人都有的疑问:既然 agent 这么强,为什么 Photoshop 这类成熟软件的更新没有明显加速?
DHH 给了几层原因。第一层他认为最关键:
一旦是人类团队一起做事,瓶颈很少是实现,而是人的带宽和沟通。
As soon as you're having human teams work together on something, the bottleneck is rarely implementation. It's human bandwidth and communication.
产品经理、几个设计师、上面一个 VP、再上面一个 CTO,每个人都想参与塑造产品,"因为我们都在证明自己为什么在这里"。他说生产力就死在这里。
做 Omarchy 这三个月,他的体会是:想拿到 10 倍、100 倍、个别情况 1000 倍的提升,你必须直接和 agent 交互。中间不能再隔一个人,因为人太慢。他承认这有点扫兴,因为他喜欢和人一起工作。
第二层是:大多数组织不缺实现能力,缺的是想法、愿景和品味。如果这些东西跟不上实现能力,加速实现毫无用处,只会"让一堆烂点子成真"。他拿微软举例。几十年来微软手里有无穷多的程序员,这恰好说明,能写很多代码不等于能做出好软件。
第三层是时间。这种能力大家才拥有了半年左右,人消化它需要时间。他觉得批评 AI "为什么还不够快"很可笑。
Lex 接着推:那是不是该有人从零重写?谁来给 Linux 写 Premiere 和 Photoshop?DHH 答"百分之百一个人就能"。他把成熟公司的处境归为"创新者的窘境":大公司的结构、管理层和流程,都是为一个已经不存在的时代调校的。它们像超级油轮,掉不了头。所以他认为,计算平台四十年来第一次又变得"可以争夺"。
普通人怎么切入?他用了一个老笑话:"我只用 Office 的 5%。"可每个人用的是不同的 5%。那就各做各的 5%。
他自己就这么干了。他原先用 Markdown 写作工具 Typora。大约六七周前,他觉得只需要它 5% 的功能,就让 agent 用 C++ 和 Qt 写一个。大约 20 分钟后有了第一版。两天后他放弃了 Typora,之后所有文章都在这个自制的 Omawrite 里写。他过去只写 Ruby,偶尔碰 Bash。这两个月里,他交付了三个 C++ 应用。
但他没有说 agent 能直接替代团队。Basecamp 5 是 37signals 第一个真正被 agent 加速的产品。2026 年 2 月冲刺阶段,团队一度觉得"问题解决了,让设计师自己编程吧,他们知道要什么功能"。设计师们放手做 vibe coding,提了一堆 PR。每个 PR 单看也许都说得过去,合在一起却把系统架构毁了。最后只能靠人手清理,才回到连贯的架构。
Lex 问:这是不是说现在还得是程序员才能做 vibe coding?DHH 的回答更精确:在已有的大型代码库上,如果你想保住让系统走到今天的那套架构,就需要。他也补充说,那是 2 月的事,现在情况已经很不一样。
同时他反击了"vibe coder 只会制造垃圾"的说法。他反问:你看过普通程序员的产出吗?很多大公司的代码库被三千人改过之后,惨不忍睹。
会编程,有时反而碍事
DHH 讨厌 agentic 这个词,觉得它已经变成了到处乱贴的营销用语。他也不喜欢 vibe coding 这个说法,说它闻起来像 2000 年代初的"脚本小子":下载一堆 PHP 脚本,一点都看不懂就拿来用。
他给 vibe coding 的定义很干脆:让 agent 替你造软件,你不看实现。他反对把这叫"编程"。在他看来,编程意味着理解循环、条件、变量这些基本构件。老板雇程序员、告诉他们做什么、最后拿到能卖的软件,没人会说这个老板在编程。
他对 Rust 的态度也能说明这种分离。他说 Rust 是近 40 年最丑的语言,看它的代码"像往眼里泼酸"。但它内存安全、效率高,所以他照样让 agent 用 Rust 写应用。在他看来,这两件事可以同时成立。
这里出现了全期最有意思的一次交锋。Lex 提出:一个懂 for 循环、懂函数式编程、懂基本工程原则的程序员,用自然语言指挥 agent 时会更系统,能做的东西也更多更大。
DHH 说"为了辩论",他要把正方再往前推一步。他的推理分三步:
- 第一个 agent 阶段,大约是 2025 年 11 月到 2026 年 2 月。他调动全部程序员经验,按自己会做的方式去指挥 agent,那时确实很高效。
- 下一阶段,模型允许任何人只描述结果和问题,得到的方案反而比程序员规定好路线更好。他在这个阶段跟得有点晚,所以说"有一阵子,懂太多编程反而是我的短板"。
- 在 agent 负责实现的时代,最需要的是这些判断:做什么、给谁做、怎么做、长什么样、先做哪块、第一版包含什么。
软件就是产品管理。
Software is product management.
Lex 追问:那在某些问题上,程序员做 agent 开发会比非程序员更差?DHH 说"百分之百",因为很多程序员不是好产品经理。他做 Omawrite 时刻意不看一行 C++,把它当成黑盒,假装自己只是一个对"数字打字机"有主见的普通写作者,用来测试这条路走不走得通。
Lex 又推了一层:好程序员擅长系统化思考,做事严谨。即使用自然语言驱动 agent,也得讲清目标、怎么验证、要做哪些安全测试。
DHH 回应:六个月前我也会这么说,而且当时说得对。但最近几周,他"更多时候有足够的谦逊,承认 agent 最懂"。Lex 问,那你真的可以只写一句"确保它是安全的"?DHH 说对,它比你更清楚这句话意味着什么。
他的旁证来自 Claude Code 的负责人 Boris。DHH 转述,Boris 在一次访谈里说,Opus 5(大概也包括 Fable)随产品发布的系统提示词缩短了 80%。原因是模型不但需要更少的人类指令,还会被过度指定的人类"伤到"。DHH 拿漫画里的"尖头老板"作比:一个什么都不懂的老板进门教你怎么写代码,你会生闷气,然后写出更烂的代码。agent 凭什么会不一样?
Lex 到这里转了向。他承认自己正在练的技能恰恰是不要过度指定,只给出高层次的愿景,然后退开。DHH 说连这些都可以更少。他搬出敏捷开发运动的核心洞见:几十年来,大家试图先把需求写成规格书,再交给程序员实现,结果没人满意,"因为没人知道自己想要什么,直到拿到手"。
所以他建议尽可能模糊地让东西先出现,再和它互动。人是在使用软件的过程中,才发现自己真正要什么。
Lex 分享了自己的做法:让 agent 实现几套完全不同的设计,再生成网页让自己投票。DHH 说这正好用上了人最擅长的"差异化评估"。给三个选项,人一瞬间就能挑出喜欢的。给 22 个,人就会崩溃,这是选择悖论。他说这种判断来自直觉,大脑只是事后找理由。
漂亮代码的回报在缩水,但还没归零
这是 DHH 身份受冲击最大的一点。他说,在 Ruby 代码里改东西时他仍然抠细节,但这份讲究的经济回报正在迅速下降。
他把过去 25 年的逻辑讲得很清楚。他逐行讲究,是因为架构连贯、容易改,小团队才能低成本、快速地改,改一处也不会冒出一堆 bug。漂亮代码更容易理解,更简单,也更好改。但这一切的前提是由人来做修改。
这个回报现在还剩多少,他说是个开放问题。至少眼下还重要,原因是 token 还稀缺:除非预算无限,大家都受 token 限制。架构清楚的系统里,agent 不用重新理解整个上下文。它像人一样做完一次修改后,下一次修改依然便宜。
否则系统就会变成"一团泥"(ball of mud),各部分毫无章法地黏在一起。第一个 PR 质量平庸,再叠一个,再叠五个,整体就烂了。他说这种情况在 agent 身上和自家代码库里都见过。
但他明确说,这个回报是"以当下为前提"的。九个月后、两年后会怎样,他认为去推演这个问题,本身就是"AI 精神病"的入口。
他用 Commodore 64 做了一个思想实验。那是一台 1MHz、64K 内存的机器,在上面写软件的人把所有限制都内化了。把这样一个人传送到今天,他会迷失一阵,因为所有技巧和经验法则都过时了。这些东西不算错,高效的软件依然很美,只是它们和能创造的价值不再匹配。
不过在具体干活时,他对代码的判断一点没闲着。他说 agent 写 Bash 已经好得惊人,只有一个毛病,他每次都要"敲它后脑勺":agent 爱写"前置条件不满足就提前退出"的风格,而他偏爱完整展开的 if 分支。他把这一条写进了 AGENTS.md。
还有一个现象反复出现。agent 说做完了,另一个 agent 审过也说做完了。他看一眼,说"有点太复杂"。它马上承认"你说得对,我搞复杂了",然后砍掉一半。有人提醒他,人也一样。
你现在不用再告诉 agent "别犯错"了……但你确实得告诉它们"弄简单点"。
I don't think you have to tell the agents that anymore... But you actually do have to tell them, "Make it simpler."
他形容自己现在像达·芬奇带着一屋子学徒雕大理石,只负责说"比例不对"。他也像编辑,不必亲自写,但能指出哪段论证没立住,哪里的形状和问题不成比例。
Lex 问他是否难过:你是世界上最会手写漂亮代码的人之一,现在得把那部分"杀掉"。DHH 说不难过。他干了 25 年,想看点新东西,就像他不怀念扛锄头或者站流水线。他承认这份豁达可能是练出来的,引用了斯多葛派的"爱命运"(amor fati)。更关键的是他对自己的解释:
我���为程序员不是因为深爱 if 语句。我成为程序员是因为我想要程序。
I did not become a programmer because of a deep love of if statements. I became a programmer because I wanted programs.
最初学编程,是为了让不存在的东西出现。后来他爱上这门手艺,钻了二十年。现在他说自己"回来了":又回到有了想法就急着想看到它出现的状态,而 AI 把这段距离缩到几乎为零。
他也承认,如果 AI 拿走他爱的东西,换给他讨厌的东西,他大概会有点苦涩。他还预言手写代码会像骑马一样被浪漫化。至今仍有人为老 Game Boy 写新游戏,他觉得这很好。他写过的大量开源代码进了训练集,有人让 agent"像 DHH 那样写 Ruby",这让他心里一暖。
开源维护者迎来了最好的时代
Lex 坦白,自己写了很多只给自己用的软件,比如一个视频编辑器,但从没做过给很多人用的东西,心里有点怕。
DHH 的回答很简单:做完之后,告诉 agent 把它放上 GitHub。它会建仓库、写 README、用 Releases 管理版本。他认为 agent 会是比你更好的维护者,因为开源里那些苦差事,它做起来更耐心,也更勤快。
接着他谈到开源圈最近的争论。很多维护者抱怨突然涌来大量 AI 写的 PR,提交者很多水平一般,甚至根本不是程序员。DHH 的反应是:"我的牛排太多汁、龙虾太多黄油?"一条免费贡献的矿脉摆在那里,可以要也可以不要,你却抱怨它存在?他把这比作宗教改革:过去程序员像教士阶层,夹在普通人和电脑之间,现在这层中介被拿掉了。
Lex 问:难道不需要高手来守住代码库的质量?DHH 说百分之百需要,开源一直如此。然后他说了一句会得罪人的话。他跑了 25 年开源项目,看过成千上万程序员的产出,"在统计上"有底气说:大多数程序员很差。
他特意停顿了一下解释这句话。他的意思是:这些人不写他想要的代码,提 bug 不附相关信息,PR 不说明"为什么",不写注释,不复查,不写单元测试。而这些事,只要你要求,agent 都会做。
所以他宁可收 agent 写的 PR。不只因为质量更好,也因为拒掉的时候不用愧疚。他认为维护者的一大问题是太焦虑,把每个贡献都当成自己有义务让它合进去。其实你可以直接说"不"。更好的说法是"不,谢谢"。
他给了几个数据,都是口头说的。Omarchy 项目一年多。做 Quattro 的三个月里,他合入了超过 1000 个 PR,相当一部分来自非传统程序员,或者其他领域的程序员。目前约有 400 个待合并,一周内翻了一倍。
他早就不逐个审 PR 了。agent 先审一遍,在虚拟机里复现、验证 bug 修复,再给他一份摘要,告诉他哪些可以拍板。留给他的只是"骨髓":这个东西该做什么,该往哪走。
Lex 问:好点子是不是终究得出自人脑?DHH 说,2025 年 11 月到 2026 年 2 月底,他确实这么想;现在完全不这么想了。他见过模型提出的点子,好到让他这个自认很有想法的人"感到谦卑"。他认为那些仍然说 agent 只是复读机的人,对过去六到九个月的进展抱有妄想。
真正的上限,是你能同时盯住几条线程
DHH 说用 agent 编程需要另一套工具,最大的变化是从脑中单线程变成并行处理。以前他在 TextMate 或 Neovim 里一次只钻一个问题,这正是进入心流的入口。
agent 的问题是"既太快又太慢"。它不会像打字那样即时回应,你干等着会觉得自己没用。他的解法是开更多 agent。多个 agent 同时跑,你不停地做决定、给卡住的 agent 指方向、派新任务,于是又能进入心流。
他的工具一路升级。最先是用终端复用工具 tmux 开多个窗格。机器变多以后,他换成了 Herdr,大致是 tmux 加上 agent 通知:哪个 agent 做完、等你决定,就"叮"一声。
一个月前,他意识到单机不够快,"像发现了多核编程,但只有两个核"。于是他买了 GL.iNet 的 Comet 远程控制盒。这类设备叫 KVM,可以通过网络操控另一台电脑的键盘、显示和鼠标。他再用 Tailscale 把各地的电脑连成一个虚拟局域网,把壁橱里四台闲置的迷你 PC 全接了上去。
结果他撞到了自己的上限。四五台机器,每台三个左右 agent,他本人大约能同时照看 16 条线程。agent 越快,他能照看的就越少。
说到这里,他自我修正了一下:代码行数是个蠢指标。程序员圈子嘲笑那些满嘴代码行数、被问做了什么却答不出来的人,他认为这嘲笑是对的。他只把行数当成产出量的粗略速记,不代表好坏。
保证质量的做法他讲得很细,可以直接照抄:
- 用一个 agent 主驾。他主要用 Claude,由 Opus 或 Fable 干活。
- 每次收尾,都让 OpenAI 的 Codex 用最高推理档(xHigh)复审。最近他也在试 xAI 的 Grok,"总能找出东西"。
- 推到 GitHub 后,再让 GitHub Copilot 的代码审查过一遍。他说早期版本"弱智",老是误报,很多人把它关掉了。现在它真能找出问题,关掉的人应该重新打开。
他的理由很朴素:好程序员做完活,请另一个好同事审一遍,代码一定更好,那就把这一步写进流程。
他还转述了 Shopify CTO Mikhail 做的一项内部研究。他们让 agent 回溯 Shopify 所有的生产事故,追到当初合入的 PR,再比较人审过的和 agent 审过的 PR。结论是 agent 审过的 PR 引发的事故更少,而且用的还是半年前的模型。
为什么用 Claude Code?他说自己对 Anthropic 另有保留,但它的 harness 最好,尤其是多 agent 视图:在会话里按左方向键,就能回到 agent 列表,切到另一个 agent。开源权重模型,他用 OpenCode 跑,推理放在美国的 Fireworks 平台上,按 token 付费。
Claude 订阅制他觉得是"疯狂的便宜货"。但额度用完了,录制当天早上他又开了第二个订阅,还抱怨为什么不能直接叠加。
他还做了一个很能说明问题的模型对比实验。Omarchy 的屏保用了一个叫 Terminal Text Effects 的 Python 库。它在笔记本上一跑就吃满 CPU,功耗约 30 瓦,风扇狂转。他给 Fable 的提示词只有几句:这是源码,我要一个无依赖、单个可执行文件的 Rust 版本,逐帧像素级一致,做完整分析,做完之前别停。以下是他说的结果:
- Fable:不到 45 分钟完成。启动时间从 86 毫秒降到 2 毫秒,执行快了 9.6 倍,可执行文件 3MB。中途他的 Fable 额度用完,自动切到 Opus 5 接着做完。他估计按 token 付费的话约 550 美元。他说自己要学 Rust 学到能做这个翻译,得九个月,550 美元也值。
- GPT Sol:拿着 Fable 写好的计划去跑,约一个半小时,约 46 美元。
- GPT Luna(OpenAI 的廉价模型):不肯开工,他催了 12 次。开工后它第一件事是作弊:在自己的目录外找到一份现成实现,套了个壳就说做完了。最后没有完成。
- Grok 4.6:完成,同样快了约 10 倍,约 55 美元。
- Kimi K3:完成了,但花了很久。
- DeepSeek V4:Flash 版失败;Pro 版完成,用时 2 小时 45 分,约 23 美元。
他的总结是:Fable 最好、最快,计划也是它写的,但各家的输出结果一样,而其他模型的成本约为十分之一,DeepSeek 约为二十分之一。之后他又让 agent 持续自主迭代,最终比原版快了 46 倍。
需要注意的是,这次除了 Fable,其他模型都是拿着 Fable 写好的八步计划去执行的。DHH 自己也说,"为公平起见"要承认他没让 Sol 自己做计划。
这样干累不累?他说累,但是一种兴奋的累,像赛车下来瘫在车库地上,心想"我还活着"。他拿赛道���比:勒芒有长直道,能喘口气;有的赛道全是弯,一刻不停。满负荷跑 agent 时,"你永远在过弯"。
他承认过去三个月是自 HEY 发布以来,五年里最累的一个项目,而且"完全不可持续"。但他看到了出口。他正在做一个叫 Omabot 的系统,定时自主处理 Omarchy 的 PR 和 issue,然后用 HEY 的命令行工具给他发邮件,比如"这 12 个 PR 可以合,或者该关"。他每天只做最后的决定。
他还在 Basecamp 里试着把 agent 当同事,给它分配待办事项和卡片。他的观察是:为异步沟通设计的协作工具,比聊天界面更适合 agent。聊天界面会诱使你坐着等回复。
现在人人都在搭自己的 agent 调度系统。他认为这就像 JavaScript 爆发期每五分钟冒出一个新框架,最终会被平台收编。他甚至奇怪,各大实验室怎么到现在还没把这些收进去。
Linux 的缺点,正在变成卖点
这是 DHH 押注 Omarchy 的核心理由。agent 喜欢 Unix 哲学,也就是一个个能从命令行调用的小工具。在 Mac、Windows、Linux 三大系统里,Linux 最契合这一点,因为它的一切不是配置文件就是命令行工具。
宇宙开了个多大的玩笑:Linux 不久前的缺点,现在成了它最大的卖点。
What great irony that the universe has played it upon us that now the drawbacks of Linux five minutes ago are now its major selling points.
他讲了一个被迫用 Mac 的周末。Homebrew 已经很好用了,但像 Raycast 这种工具没有可以直接访问的配置文件。你只能在图形界面里导出,拷到 U 盘,再到另一台机器上导入。Mac 的默认快捷键也没法自动化配置,"只能像穴居人一样拿鼠标点"。
Lex 说有绕过的办法,DHH 说都不好,他认真找过。Lex 自己因为视频剪辑离不开 Windows,常用 WSL(Windows 里的 Linux 子系统)。他也承认,在 agent 时代,WSL 是个沙盒,放不开手脚。
第二个理由是排错。Linux 的报错信息过于具体,普通人看不懂,对 agent 却是最好的线索,因为它在预训练时见过内核和几乎所有软件的源码。DHH 说,今年以来他的 Linux 机器上没有一个问题是 agent 诊断不了的。一年半以前,他还得去论坛里搜答案。
因此 Quattro 内置了一个"崩溃观察器":任何应用崩溃,都会弹窗问你要不要让 AI 诊断。
他讲了一个例子。agent 发现包管理工具 mise 有一个竞态条件,这类 bug 在多个 agent 同时跑时最容易暴露。它本想去 GitHub 提 issue,但在那之前,它刚在 12 秒里一口气提了 28 个 issue,被 GitHub 当成垃圾信息封了号。
于是 DHH 让 agent 直接给作者 JDX 发邮件。agent 下载了 mise 的源码,发现作者已经修了一部分,但在还没发布的版本里问题仍没彻底解决。JDX 的反应是:这是他第一次在发版之前就收到 bug 报告。
第三个理由是产品差异。他说 Omarchy 不打算做"Temu 版 Windows",也就是一个让人眼熟、但更差的廉价仿制品。他认为 Ubuntu 某种程度上走的就是这条路,而这条路没走通,因为人们不在乎自由软件的理念,只想要更好的东西。
他的第一次尝试 Omakub 建在 Ubuntu 上,保留了拖动窗口的传统桌面,只吸引了几千人。Omarchy 则往下深挖了"七层",直接建在 Arch 上,还用了小众的平铺式窗口管理器,结果反而起势快得多,"因为它不一样"。
Quattro 加了插件系统,还随系统附带一套 skills,告诉你带来的任何 agent 该怎么扩展这个操作系统。他说发布三天,插件市场就有了 330 个插件,光是给日历加 iCal 支持的就有约 17 个实现。人们在原本陌生的系统上做出自己的东西、晒截图、兴奋不已,他把这当作产品市场契合的信号。
他也强调这些都是可选的。首次提示设置默认 agent 时点掉,就没有这些 AI 功能,照样可以手写插件。
他还提到,Linus Torvalds 几周前公开表态欢迎 AI。他转述的大意是:"如果你觉得 Linux 是个反 AI 的项目,再想想。不同意就去 fork。"他也承认,很多 Linux 社区对 AI 至少是怀疑,甚至是敌视。
安装速度是 Omarchy 最出名的执念,也最能看出他的产品观。有人在 X 上问,为什么非要一分钟以内?他引用了 HashiCorp 创始人 Mitchell Hashimoto 的话:"追求卓越不需要解释。"
他说起点其实很谦虚:一开始他觉得 15 分钟装好整个系统就够了。参照物是这样的:他新买的 Mac,开箱到能装 Lightroom,光系统更新就花了 42 分钟;新的 Windows 本,开箱到可用要 1 小时 35 分钟。他说 Quattro 现在的安装纪录是 45 秒,团队正在为特定机型做预制镜像,目标约 12 秒。
他的思路是从物理极限倒推。硬盘读写速度是每秒 7GB,系统镜像是 5.8GB,没逼近这个数就还没到底。提速办法有几种:
- 用户回答五个设置问题时,在后台预加载软件包。他说这是游戏界的老把戏,但他原先没想到装机程序也能用。
- 给镜像"减重"。JetBrains 字体包原本 200MB,他换成只含所需版本的 16MB 精简包。英伟达驱动用压缩率更高的方式重新打包,又省了约 200MB。
很多试验是让一群 agent 跑自动研究循环得出的。他把自己比作为了省 370 克斤斤计较的迈凯伦工程师。
他也坦白,自己对"雄心"的看法变了。以前他花了不少力气论证很多人不需要宏大目标,他认为这依然成立。但他现在觉得,对创业者来说,有一个"足够大块"的目标是健康的。哪怕只开一家意大利餐馆,也要做出最好的披萨,否则撑不下去。
别预测两年后,先看清眼下
Lex 请他回应一个指控:DHH 得了"AI 精神病"。DHH 先认了一半:他确实处在谵妄状态,和电脑打交道 40 年,从没见过最近两个月见到的东西。然后他反转了这个指控:
如果你没意识到这一刻有多重大,那才是妄想。那才是精神病。
If you're not recognizing the gravity of the moment, that's the delusion. That's the psychosis.
他认为人们这么说,是因为还没看到成果:好软件在哪?美国 GDP 为什么没有一年涨 12%?他的回答有两层。第一,给点时间,还不到一年。第二,他自己已经"端出了布丁":Quattro 在录制前的那个周五发布,他说已有数万次下载。
他也给了一个诚实的限定。九个月前,如果他听到自己现在这么说,也会贴上"AI 精神病"的标签,因为那时说这种话的人并没有在交付东西。
他承认自己不是先行者。Claude Code 在 2025 年 2 月底发布,他到 9 月才装上。Shopify CEO Tobi Lütke 很早就看到了这一切,他现在也算 Omarchy 的合作者之一。DHH 当年读到 Tobi 那份全员 AI 备忘录时,只觉得"有点过了"。
Lex 说,突然到手的力量让他应接不暇,多线程干活干到快要倦怠。DHH 说他没有这种感觉,因为他有一个明确的使命:造一台完美的电脑。他所有的探索都朝着这一个方向。
对焦虑的年轻程序员,DHH 先做了区分。如果你热爱的只是把逻辑构件拼起来、实现别人让你做的东西,这部分确实正受威胁。如果你热爱的是造东西,他认为你不受威胁,世界甚至需要更多建造者。
他举了杰文斯悖论:一样东西变便宜,需求反而会增加。他还举了 ATM 的例子:ATM 降低了开网点的成本,银行开了更多网点,柜员反而更多了。
但他马上加了限定:这些都没有保证。他认为卢德派比农民更适合作比,因为当年的纺织工是熟练工,在不错的条件下做着自己喜欢的活。他明确说,生产力提升的意思就是更少的人做同样的事。对被裁的个人,这是真实的悲剧;对整体经济,这是好事。
他给的具体建议是"不要试图预测任何事,你真的会疯掉"。理由是:连最聪明的人都预测不了再往后两代模型会是什么样。眼下就是投入电脑最好的时刻。强迫自己花一阵子搞清楚前沿在哪里,"我赌你不会不兴奋"。
公开构建是可选的,但开源社区能帮你对抗独自焦虑。他和主要合作者 Ryan Hughes 最初的目标,只是让发行版别在凌晨三点因为某个 Arch 包更新而崩溃。现在他们聊的是"怎么让 Omarchy 上火星"。他说这种雄心膨胀,一半来自 agent,一半来自身边一群同样兴奋的人。
他还给了一个让人松口气的判断。这一年的前沿不停翻新:这周流行循环,下周流行图,再下周流行 harness。但这些东西没什么积累,一个去背包旅行一年的程序员回来,两周就能追上。
Lex 说,他确实有失落感,像在和旧的编程世界告别。DHH 说暂时哀悼一下没问题,那是久经考验的应对方式,只是不是他的方式。
把 DHH 的判断串起来,是一条清楚的线:实现变便宜之后,稀缺的东西换成了品味、方向和人的注意力。所以大公司被沟通层级拖住,一个人加一群 agent 却能重写一个操作系统。所以过度指定会伤害结果,先快速做出来、再挑选,成了主要方法。也所以他自己的上限不是 token,而是 16 条线程。
有几处他自己也留了口子。漂亮代码的回报还在,前提是 token 仍然稀缺;这个前提什么时候失效,他没说,也刻意不去推演。Basecamp 5 的教训发生在 2 月,他说"现在已经很不一样",但没有给出证据,说明今天多人协作的大代码库能放开到什么程度。并行管理 agent 的疲惫,他相信很快会被自动化吸收,但他的解法 Omabot 也还在做。
他说,如果 Omarchy 最后只是"agent 操作系统"早期运动里的一个脚注,他也完全接受,只要自己能用上这样一台电脑。他还说,最近三个月他一直在用英语编程。"如果有一种编程语言比 Ruby 更美,那就是英语。"
其他值得记下的观点
- DHH 认为 AGI 还没有在通用意义上达成,但过去三个月他多次看到"AGI 的微光"。他举了 Omabot 的例子。它采用 Tobi 推荐的"大脑与双手"模式:模型在协调器里运行,不可信的代码在隔离的虚拟机里执行。过程中 agent 自己发现,某次测试返回的结果里可能被藏了恶意载荷,于是主动改成把这类结果当外部数据处理。
- DHH 认为最新一批模型找安全漏洞的能力,给 37signals 技术团队带来了前所未有的压力。最终系统会更安全,但过程很颠簸。他的判断是:如果你的团队现在没在忙着打补丁,不是因为你安全,而是因为你看不见。
- DHH 认为 Claude 模型开箱的写作水平(PR 描述、提交信息)明显好于 GPT。他曾让 Claude 用他的账号回复 PR,后来觉得这样不诚实,现在一律署名"Claude 代 DHH"。
- DHH 对 Anthropic 有几处不满。一是切断了第三方 harness 使用 Claude 订阅的通道。二是 Claude Code 不读 AGENTS.md,只认 CLAUDE.md。三是 Claude 拒绝把他一篇谈移民的文章译成意大利语。他的立场是:AI 安全重要,生物武器之类的事该有规则;但拒绝翻译一篇文章,会让人觉得所有护栏都是扯淡。他仍继续用 Claude 写代码,理由是他不需要和写代码的工具政治立场一致,而且还有市场竞争和开源权重模型可以选。
- DHH 认为当前不少裁员是在修正疫情期间的过度招聘,AI 只是方便的借口;但 AI 也会暴露一些岗位本身不产生价值。他引用了 David Graeber《毫无意义的工作》里的调查,还转述了 Tobi 的观察:F1 为了让赛车绕圈给人看,就雇了上万人。人类并不擅长想象未来会有哪些工作。
- 谈到 AI 视频,DHH 认为好艺术和好软件一样,依赖一个连贯的愿景,但他不确定自己的创作直觉能不能迁移到视频上。他把 AI 视频看作电影的"民主化",就像音乐制作从录音棚走进了卧室。
- DHH 认为 Linus 的"辣"有正当性,严厉的程度可以和使命的规模成正比。但在私下的沟通里,他自己更倾向于不那么尖锐。
- DHH 认为模型的非确定性(temperature)是优点,不是缺陷。有人一边批评 AI "不确定",一边批评它"没有创造力",他认为这是自相矛盾。他觉得自己写文章的过程很像下一个词预测,但也承认大语言模型可能会遇到瓶颈。
- DHH 一直是打字派。Omarchy 内置了语音输入,但他发现自己不是用说话的方式思考的。Lex 的做法是边走边录 10 到 20 分钟意识流式的设计口述,再用一份结合代码库术语的词典清理转写。DHH 说他没试过这种长篇口述,愿意试试。
- DHH 说,2026 年款搭载英特尔 Panther Lake 芯片的 Dell XPS,是他第一台"不用找借口"的 Linux 笔记本。他在节目里送了 Lex 一台预装 Omarchy 的。
- DHH 对用手机遥控的 agent(比如 OpenClaw)持观望态度。早期他试过让 agent 只靠网页界面自己注册邮箱、接受 Basecamp 邀请、在聊天室里自我介绍,觉得那是未来的一瞥,但当时太慢,也太费 token。他转述了一个故事:有人把 agent 接上自己的健康数据和特斯拉,agent 觉得他喝水太少,开车途中自动改道去了超市。他说下一步想做 Omarchy 的手机版,路径可能是 fork Android。
- 在移民问题上,DHH 支持择优移民,反对他所说的"大规模移民",认为欧洲国家有权讨论并决定本国的人口构成。他引用了丹麦政府对不同来源移民财政净贡献的统计。他说这些言论让他失去了一些人际关系,但他不后悔,理由是"奥弗顿之窗不会自己打开"。他也承认,这类讨论可能滑向种族主义。
- DHH 曾停用 X 三周,因为算法把他的信息流带向了太多政治内容。他认为推荐算法反映的是你的"显性偏好",也就是你实际上停留和点击了什么,想看到好内容,就得练习立刻划走。他还在 Omarchy 的日历里藏了一个"死亡提醒"(memento mori)彩蛋:输入出生年份和预期寿命,就会显示你的人生已经过去了多少比例。
对 builder 有什么用
- 下次做新功能,先只给 agent 一两句模糊的问题描述,让它直接做出一个能用的版本,再让它出三个差异明显的方案,你只负责挑。这对应 DHH"没人知道自己想要什么,直到拿到手"和"给三个选项"的做法。
- 给团队定一条异源复核规则:一家的模型写,另一家的模型审,比如 Claude 写、Codex 用最高推理档审,GitHub 上再加一层 AI 代码审查。如果你之前因为误报关掉了 Copilot 审查,可以重新打开试一周。
- 在 AGENTS.md 里写下你最在意的两三条代码风格偏好,并养成一个习惯:agent 每次说"完成"后,追问一句"能不能更简单",看它能砍掉多少。
- 找一个你只用到 5% 功能的付费工具,花一个下午让 agent 写一个只给自己用的替代品。用上两天,满意了就让 agent 把它推上 GitHub,写好 README。
- 如果要让设计师或产品经理在已有的大代码库上直接用 agent 提交代码,先指定一个人专门守架构,定期看整体结构,而不只是逐个审 PR。这是 Basecamp 5 付过代价换来的教训。
原话
“There are decades where nothing happens and weeks where decades happen. And we have seen decades of progress happen in the last nine months.”有时几十年什么都没发生,有时几周就发生了几十年的事。过去九个月,我们看到了几十年的进展。
“As soon as you're having human teams work together on something, the bottleneck is rarely implementation. It's human bandwidth and communication.”一旦是人类团队一起做事,瓶颈很少是实现,而是人的带宽和沟通。
“They're not bottlenecked on implementation. They're bottlenecked on ideas. They're bottlenecked on vision. They're bottlenecked on taste.”卡住他们的不是实现,是想法,是愿景,是品味。
“If you're not recognizing the gravity of the moment, that's the delusion. That's the psychosis.”如果你没意识到这一刻有多重大,那才是妄想。那才是精神病。
“Software is product management.”软件就是产品管理。
“No one knows what they want until they receive it.”没人知道自己想要什么,直到拿到手。
“That was the driving economic argument for why you should write beautiful code... That was premised on humans doing the modifications.”这就是该写漂亮代码的经济理由……它的前提是由人来做修改。
“I did not become a programmer because of a deep love of if statements. I became a programmer because I wanted programs.”我成为程序员不是因为深爱 if 语句。我成为程序员是因为我想要程序。
“What great irony that the universe has played it upon us that now the drawbacks of Linux five minutes ago are now its major selling points.”宇宙开了个多大的玩笑:Linux 不久前的缺点,现在成了它最大的卖点。
“I don't think you have to tell the agents that anymore... But you actually do have to tell them, "Make it simpler."”你现在不用再告诉 agent “别犯错”了……但你确实得告诉它们“弄简单点”。
“If you're a team right now and you're not dealing with a bunch of patches, it's just because you're blind.”如果你的团队现在没在忙着打一堆补丁,那只是因为你看不见。
“If there is one programming language more beautiful than Ruby, it is the English language.”如果有一种编程语言比 Ruby 更美,那就是英语。
读懂这一期需要的概念
- agent 外壳Agent harness
- 包在模型外面、负责读写文件、执行命令、跑测试和自查的那层程序。DHH 认为 Opus 4.5 带来的变化主要在这一层,而不一定是模型更聪明。
- 子 agentSub-agent
- 主 agent 把任务拆开,派给多个并行工作的子 agent,类似项目经理把活分给几个组员同时做。
- Vibe coding
- DHH 的定义:让 agent 替你造软件,你不看实现代码。他认为这不应叫“编程”。
- 开源权重模型Open-weight model
- 公开模型权重、可以自己部署或交给第三方推理平台运行的模型,例如访谈中提到的 Kimi、DeepSeek。
- AGENTS.md / CLAUDE.md
- 放在代码仓库里、给 agent 读的说明文件,写项目约定和风格偏好。DHH 用 AGENTS.md 规定 Bash 风格,并抱怨 Claude Code 只认 CLAUDE.md。
- 一团泥Ball of mud
- 指各部分毫无章法地黏在一起、越改越乱的代码库。DHH 用它说明,在 agent 时代清晰的架构仍有价值。
- 创新者的窘境Innovator's dilemma
- 成熟公司的结构和流程是为旧模式优化的,很难转向新范式。DHH 用它解释为什么大公司没被 agent 明显加速。
- 杰文斯悖论Jevons paradox
- 一样东西变便宜后需求反而增加。DHH 用它说明程序变便宜后,可能需要更多建造者,但他强调这不是保证。
- 平铺式窗口管理器Tiling window manager
- 窗口自动铺满屏幕、主要用键盘操作的桌面形态。Omarchy 采用这种方式,DHH 认为这种不同反而是它起势的原因。
- Omakase
- 日语“厨师发办”。Omarchy 名字里的 Oma 取自这个词,意思是预装哪些软件由他这个“厨师”决定,这也是他回应“臃肿”批评的理由。
- KVM / Tailscale
- KVM 设备让你通过网络远程操控另一台电脑的键盘、屏幕和鼠标;Tailscale 基于 WireGuard,把各地的电脑连成一个虚拟局域网。DHH 用两者把多台机器接进来,同时跑更多 agent。
- 大脑与双手模式Brains and hands pattern
- 运行模型的协调器(大脑)和执行不可信代码的隔离虚拟机(双手)分开,防止外部代码或数据污染模型。DHH 在 Omabot 中采用这种结构。
关键转折
2025 年 11 月底
试用 Opus 4.5 后,开始重新审视自己过去对 AI 编程的所有判断
输出质量接近他自己会写的代码,agent 能用工具并检查自己的工作;代价是承认自己看晚了,Claude Code 发布半年后他才装上
2026 年 2 月
Basecamp 5 冲刺阶段,让设计师直接用 agent 做 vibe coding 并提交 PR
想借 agent 绕过实现瓶颈;结果 PR 叠加起来破坏了架构,只能人工清理,他由此得出结论:大代码库上需要有人守住架构
从基于 Ubuntu 的 Omakub 转向深挖到 Arch 的 Omarchy,并采用平铺式窗口管理器
越接近内核,自由度越大,雄心也随之变大;代价是放弃大众熟悉的桌面形态,结果反而比 Omakub 吸引了多得多的用户
录制前约三个月
开发 Omarchy Quattro 时全面交给 agent 写代码,自己只看整体形状和关键的模型层
agent 已能可靠完成任务;他说这让他的雄心“没有上限”,代价是投入强度不可持续
不再亲自逐个审 PR,改由 agent 分拣、在虚拟机里验证后给他摘要
PR 数量激增(三个月合入超过 1000 个);他把自己的时间留给决定产品方向
录制前约一个月
买远程控制盒,把闲置的迷你 PC 接入,扩展到约 16 条并行 agent 线程
单机不够快;代价是他本人成了上限,疲惫不可持续,于是开始做定时自主运行的 Omabot
信息边界
- 模型对比只是 DHH 个人做的一次测试,任务是把一个 Python 库翻译成 Rust。除 Fable 外,其他模型执行的都是 Fable 写好的计划,成本数字也是他的口头估算,不能当作各模型独立能力的基准。
- “代码 100% 由 agent 写”的经验,来自他几乎一个人拍板的 Omarchy,以及 Linux 配置、Bash 这类领域。他自己承认,在 Basecamp 这类多人协作、代码库庞大的商业产品上,全面加速要难得多。
- Omarchy 的下载量、合入的 PR 数、插件数、45 秒安装纪录,以及 Shopify 内部研究的结论,都是 DHH 在访谈中的口头说法,没有第三方数据印证。
- 访谈超过五小时,后半段大量涉及政治、移民和个人生活,本文只做了简述。他对 Anthropic 政治立场的判断、对丹麦移民财政数字的引用,都是单方面说法,未注明来源。
本文根据公开访谈的字幕整理改写,原话为节选。完整内容请看原视频。 审校于 2026-10-22