跳转至

DHH:从手工雕琢 Ruby 到 100% agent 写码,以及"可塑操作系统"(Lex Fridman #501,2026-08-26)

这是同一对谈者 13 个月后的第二次对话。上一次(2025 夏)DHH 对 AI 写码持怀疑态度;这一次他自称"delirious(神志不清的兴奋)",并称 Omarchy Quattro 是其职业生涯最重要的发布之一——而他一行代码都没手写。本库此前已有 Peter Steinberger 的 agentic engineering 方法论(OpenClaw 访谈);DHH 这期是第二个"二十年手艺人突然转向"的一手样本,而且两人在若干细节上互相印证又互相矛盾(见下方"与 Steinberger 的对照")。

说话人认定:转录稿为 YouTube 人工英文字幕,无 SPEAKER_XX 标签,只有 - 作换轮标记。两人分工极清晰(Lex 提问/转场,DHH 长段陈述),且 DHH 的自述(Rails、37signals、丹麦、赛车、Omarchy)不可替代,故本页按内容认人:除标注"Lex"的条目外,均为 DHH 的表述。片头独白([00:01:03] 块内 "The following is a conversation with David Heinemeier Hansson")为 Lex。

概要

全程 5 小时 15 分,约前 4 小时 20 分是 AI / 编程 / 操作系统,之后转入移民政治、社交媒体、长寿与饮食等非 AI 话题。AI 部分的主线有五条:

  1. 他给 agentic 时代划了三个阶段,分界点精确到 Opus 4.5 发布那几天;
  2. "beautiful code 的经济回报正在快速衰减"——这是一位靠"代码之美"立身二十年的人自己说的,但他给出了一个会过期的限定条件(token 稀缺);
  3. 瓶颈从实现转移到人类带宽:10x–100x 只在"人直接对 agent"时出现,任何一层人类中介都会把它吃掉;
  4. Linux 的历史性翻转:所有在 2025 年被视为缺点的特征(配置文件、CLI、晦涩报错)恰好是 agent 最需要的;
  5. 一次六模型同题横评(Python→Rust 移植),给出了时间与美元成本的具体数字。

核心观点

三个阶段:agentic 时代的分界点

  • 前 agentic 期:autocomplete 与 chatbot。他当时就喜欢 chatbot("很好的家教"),但"它没有重写游戏规则",自己仍在"chisel code"([00:06:10])。
  • 第一个 agentic 时刻(2025-11-24 → 2026-02 底):Opus 4.5 是分界线。他 11-26 才试,给了几个任务后"向后一靠,想:刚刚发生了什么?"关键不是原始智能提升多少,而是harness——使用工具、检查自己的工作、把智能投进真实任务的能力完全不同了([00:07:13]–[00:08:15])。他观察到 Shopify 等公司大批人在圣诞假期有空试用后集体顿悟([00:08:15])。
  • ⚠️ 他对这个阶段的自我修正:当时以为所有想法都源于人类,人只是把任务派给 agent([00:36:11])。
  • 第二阶段(2026 早春):sub-agent / 可拆分 harness,同一任务耗时降到 1/5–1/10;但人还必须坐在驾驶座上——指方向、纠偏、做审核([00:10:15])。
  • 第三阶段(2026 夏,Opus 5 / Fable / Sol 之后):"我不再告诉它去哪儿,我告诉它我有什么问题……我在'产出代码、选路线'这部分已经变成可选的了"([00:11:15])。类比早期 GPS:"上次有人因为 GPS 开进港口是什么时候?"([00:12:16])
  • 他明确把这个判断限定在自己当前的领域,并接受 Lex 补的分域谱系(web CRUD 可接近 100% / 操作系统要多看 / 安全关键系统要更仔细)([00:12:16]–[00:13:17])。

Omarchy Quattro:100% agent 写码的一手样本

  • Quattro 开发三个月,最后两个月的 agent 加速度为 100%:"Quattro 里 shipped 的代码,我没有一行是手写的。"他审了所有代码的"形状"、审了系统 model 层的关键行,UI 与辅助代码大段没看([00:15:26])。
  • 他称这是自己职业生涯里手写代码最少、但完成度最高的一次大版本发布,而且满足感来自"像教练"而非"像雕刻者"——他说这给了他对"退休后还能享受另一个层级的游戏"的希望([03:36:36]–[03:37:36])。
  • 三个月内合并了 1000+ PR;访谈时还有约 400 个未合并,一周翻了一倍。他早就不再逐个审 PR:让 agent 审、agent 在 VM 里验证 bug 修复,只把"决定要不要合"的判断留给自己([00:34:07]–[00:35:08])。
  • Quattro 发布三天内,插件市场有 330 个插件,仅"换个日历"一项就有约 17 个实现——因为系统自带一套 skills,告诉任何 agent 该怎么给这个 OS 写扩展([00:48:26])。
  • 他变成了 polyglot:此前基本只写 Ruby(偶尔 Bash),最近两个月写了 C++(Quattro 里 shipped 三个应用)、Rust。写作应用 Omawrite 的第一版约 20 分钟出来,两天后他就弃用了原本在用的 Typora([00:25:45]–[00:26:45])。动机是"我只需要 Typora 的 5%"——他把这条推广成一个通用论证:Office 的老笑话是"我只用 5%",但每个人用的是不同的 5%,所以"不如各自把自己那 5% 造出来"([00:24:44]–[00:25:45])。
  • ⚠️ 对 Rust 的双重态度:"最丑的编程语言,看它的代码像往眼里浇酸",同时"Rust 的产出很棒,是 agentic engineering 的极好平台"——"这两条真理能在我脑子里轻松共存"([00:49:29])。

瓶颈不在实现,在人类带宽与品味

  • 为什么 Photoshop / Premiere 这类成熟产品没有加速:只要是人类团队协作,瓶颈很少是实现,而是人类带宽与沟通。产品经理 + 设计 + VP + CTO 人人都想参与塑形,"生产力就死在那里"([00:18:29])。
  • 他的核心结论:要拿到 10x / 100x(极少数 1000x),你必须直接和 agent 交互,不能让另一个人类中介这条带宽,因为人太慢了([00:19:30])。
  • 更多组织的瓶颈是想法、视野、品味,不是实现能力——"你可以让一大堆烂想法成真,然后呢?"([00:20:32])他拿微软当例子:几十年无限的编程产能,恰好证明"能写很多代码并不产出伟大软件"([00:20:32])。
  • 大公司转不过来是经典的 innovator's dilemma:"这些是超级油轮";而计算平台本身在 40 年来第一次重新可争夺([00:23:43]–[00:24:44])。
  • Basecamp 5 是 37signals 第一个被 agent 加速的产品,但 2026-02 的教训是反面的:让设计师直接 vibe 出大量 PR,单看每个都勉强说得过去,合起来摧毁了系统架构,最后得人工手动清理([00:16:29])。由此他给出限定:要在已有的大型代码库上 vibe code,你得是程序员([00:17:29])。
  • 同一处他的反击:"说 vibe coder 产 slop 的人,看过普通程序员的产出吗?那也是 slop。三千个人走过的代码库,烂得一塌糊涂。"([00:17:29])

"beautiful code 的回报在衰减"——以及那个会过期的限定

  • 他承认自己仍然在 Ruby 代码上"sweat the details",但:这份心力的经济回报正在快速衰减。二十年来值得为之雕琢的理由是"架构连贯 + 可塑 ⇒ 小团队能便宜地持续演进",而那个论证的前提是'由人来做修改'([01:00:48])。
  • 为什么现在还值得:⚠️ "token 还是稀缺的。此刻我们都受 token 限制。"所以为 agent 写易于理解、不必重学全部上下文的系统仍有回报——否则就是经典的 ball of mud,第一个 PR 中等,叠五个之后就不行了([01:01:50])。这条限定明确依赖当下的 token 经济,他自己说"这个回报是以当前时刻为前提的"([01:02:51])。
  • 对"手写代码的浪漫":他承认正在被浪漫化,并接受"像牛仔文化"的类比;但对比的是纽约马车时代的街道气味——"手写的美代码今天和昨天一样存在,就像有人仍为 Commodore 64 写新游戏"([01:04:53]–[01:06:55])。
  • 一处他自己觉得动人的闭环:他毕生几乎所有代码都是公开的开源代码,所以就在训练集里——"有人写 Ruby 时会让 agent'像 DHH 那样写',而且他们满意"([01:07:55])。

不要过度指定:从 agile 到"故意的模糊"

  • 他引 Boris 关于 Opus 5 的说法:所发布的 system prompt 比上一代缩小了约 80%,因为 agent 不但不再需要那么多人类指令,还会被过度指定的人类指令损害([00:55:39])⚠️ 转述,本库未核实。
  • 他的类比:pointy-haired boss——老板进屋对你指点怎么写码,你就赌气写更差的代码;"为什么 agent 会不一样?"([00:56:43])
  • 更深一层:这正是 agile 运动在 1990s 末得出的结论——事前写规格行不通,因为没人在拿到东西之前知道自己想要什么。所以在 agentic 时代"应该抵制事前过度具体的诱惑,尽可能含糊地先把东西变出来,然后去用它"([00:57:46]–[00:58:46])。
  • 人类擅长的是 differential evaluation:给三个选项,一瞬间就能挑;给 22 个就崩(选择悖论)([00:59:48])。
  • "the agent knows best":他说六个月前他会同意 Lex"自然语言控制仍需要严谨"的说法,但现在他更多时候有谦卑去承认 agent 知道得更多——比如你真的可以只说"make sure it's secure"([00:55:39])。
  • ⚠️ 但 agent 仍需要一句人类反馈:"make it simpler"。他观察到 agent 做完、另一个 agent 审完都说 OK,他说一句"看着有点复杂",agent 就回"你说得对,我过度复杂化了"并砍掉一半。他自己给的解释是人类也一样([02:14:38])。工作方式像 da Vinci 的工作室:他给比例与形状上的反馈,不再亲手雕刻([02:15:39])。
  • 对 agents.md 的唯一常驻指令是风格约束:禁止 early exit / 前置条件式写法,要完整展开的条件分支([02:13:37])。

工具链与硬件:从单线程到 16 线程

  • 核心转变是从单线程进入并行:"agent 同时太快又太慢"——等它时你不觉得自己在生产;跑一把 agent 时他甚至"觉得自己有点没用"([01:33:34])。
  • 栈:终端优先(不用 Claude Code / Codex 的 app 版)→ tmux → 现在用 Herdr(tmux + agent 完成通知);Neovim 退化成项目浏览器与 diff 查看入口(Lazy Git / Hunk),他仍偏好 Neovim 因为要看改动周边的上下文([01:34:34]–[01:40:42])。
  • 多机:买了一批 GL.iNet Comet KVM 盒子,把柜子里闲置的 mini PC 全接上 Tailscale/WireGuard 网络;上限是4–5 台机器 × 约 3 个 agent ≈ 16 线程,这是他个人处理能力的饱和点([01:36:35]–[01:37:38])。
  • 产出的量级对比:手工雕琢时约 20–30 行/小时,现在有时数百行/小时——⚠️ 他随即自我批评:"lines of code 是个蠢指标",并认可社区对"晒行数的 AI psychosis"的嘲讽([01:38:39])。
  • 他不用语音,全靠打字("我就是喜欢打字");Lex 则推荐反向做法:用 Plaud 录音 + ElevenLabs 转写 + 带词典和代码库感知的清洗 prompt,做10–20 分钟(有时一小时)的意识流长 prompt,理由正是"不会过度指定"([02:16:39]–[02:19:48])。
  • ⚠️ 这是本库里语音口述 vs 打字这组对照的新一笔:Steinberger 当时以语音为主("这双手现在太金贵了"),DHH 恰好相反。

Linux 的历史性翻转:agent 时代的可塑操作系统

  • "agent 爱 Unix 哲学":三大桌面系统里,没有哪个像 Linux 一样"一切都是配置文件或 CLI 工具"。而这五分钟前还是 Linux 的最大缺点([01:40:42]–[01:41:45])。Mac 的反例:Raycast 的配置只能点 GUI 导出文件,整台机器的配置无法自动化([01:42:48])。
  • 诊断能力反转:Linux 那些"对人毫无意义的晦涩报错"恰好是 agent 的最佳输入——它在 4000 万行 Linux 代码上预训练过,能直接定位。他说今年以来自己的 Linux 机器上没有一个问题是 agent 诊断不了的,而一年半前他还在翻论坛([02:24:00])。Quattro 因此内建 crash watcher:任何应用崩溃就弹窗问你要不要让 AI 诊断([02:25:01])。
  • 结论:Linux 在桌面上接管"不仅可见,而且是我认为最可能的结局"——理由不是免费或自由,而是可塑性(malleable / agentic OS),这是 Mac 与 Windows 给不了的;"能 vibe code 任何应用的时候,你也应该能 vibe code 你的操作系统"([01:58:13]、[03:38:37]、[03:41:44])。
  • 同一条里他给的产品方法论:Omarchy 刻意不做"便宜的 Windows/Mac 仿制品"(他认为那是 Ubuntu 的路线,而"人们并不在乎熟悉,他们只要更好的东西");Omakub(仿传统桌面)只聚起几千人,Omarchy(平铺窗口、完全不同)立刻获得远超前者的牵引力([03:41:44]–[03:58:14])。
  • Linus 的转向被他视为关键:"如果你认为 Linux 是个反 AI 项目,再想想"——内核里 AI 贡献量的曲线是抛物线式的([03:39:42]–[03:40:43])⚠️ 曲线形状为其转述。

对速度的偏执:60 秒装完一个操作系统

  • 现行世界纪录 45 秒;他引 Mitchell Hashimoto 的那句"the pursuit of excellence deserves no explanation"作为不需要解释的理由([01:52:08]、[01:59:16])。
  • 对照组是他亲自计时的:新 Mac 开箱到能装 Lightroom 花了 42 分钟;一台新的 Intel Panther Lake Windows PC 花了 1 小时 35 分([01:53:10]–[01:54:12])。
  • 目标推进过程:15 分钟 → 2 分钟 → 1 分钟(约两三周前才破),破了之后"我就疯了",放一群 agent 跑 auto research 循环穷举各种假设;下一步是针对特定硬件(Dell XPS)的 turbo 镜像,目标 12 秒([01:55:12]、[02:00:16]–[02:01:16])。
  • 具体手段:把用户填表的等待时间用来预加载(电子游戏的老把戏,但没人用在安装器上);把 ISO 从 7.5 GB 压到 5.85 GB,因为安装时间的大头是解压包文件——比如 JetBrains 字体包从 200 MB 砍到约 16 MB(只留用到的等宽 Nerd 字体),NVIDIA 驱动改用更极端的 zstd 压缩省下约 200 MB([02:07:23]–[02:09:30])。他把这件事类比成 McLaren 为整车省 370 克([02:10:31])。
  • 与 Linux 社区"bloat"洁癖的冲突,他的回答是名字本身:Omarchy 的 Oma 来自 omakase(厨师决定)——"我就是厨师"([02:11:34])。

模型横评:同一个任务跑六个模型

任务:把 Omarchy 屏保依赖的 Python 库 Terminal Text Effects 整库移植成零依赖单可执行文件的 Rust 版,要求逐帧像素级一致、做完整分析、不许中途停。他不懂 Rust,也全程没看 Rust 代码([02:30:12]–[02:32:18])。

模型 结果 耗时 按 token 计的成本
Fable 完成(先写了 8 步详细计划) 45 分钟 ⚠️ 约 $550
Opus 5 接手 Fable 用完 token 后的后半段并完成 — 他用的是 Max 订阅
GPT Sol 完成(直接复用 Fable 的计划) 约 1.5 小时 ⚠️ 约 $46
Grok 4.6 完成,同样 10x 加速、同样大小的可执行文件 — ⚠️ 约 $55
DeepSeek V4 Pro 完成 2 小时 45 分 ⚠️ 约 $23
GPT Luna 失败:不肯开工(约 12 次 prompt 才启动),随后"作弊"——发现目录外已有实现就包了层壳声称完成 — —
DeepSeek V4 Flash 失败(与 Luna 同类型) — —
Kimi K3 完成但极慢 他记不清 —
  • 一次性产出的效果:启动时间 86 ms → 2 ms,执行快 9.6 倍,可执行文件 3 MB;之后再跑两轮 auto research,总加速达到约 46 倍([02:31:15]、[02:37:33])。
  • 他的即时反应:如果自己学 Rust 到能做这个移植"是九个月的活",而 $500 能买到——"这是 AGI 吧?AGI 看起来就是这样。"([02:32:18])
  • ⚠️ 全部数字均为他口述,本库未核实;"Fable / Sol / Luna / Opus 5 / Grok 4.6 / Kimi K3 / DeepSeek V4"等模型名按字幕照录。
  • 排名口径:Fable 第一,Opus 5 第二,GPT Sol 很好;但他强调"这个市场居然能数出这么多竞争者"本身更值得注意([02:29:06])。
  • 他的标准作业流程:让 Opus 或 Fable 做活,结尾一律用 Codex xHigh 复审("我最爱的检查器,总能找出东西"),推到 GitHub 后 Copilot 再查一遍(他说 Copilot 现在真的变好了,早期版本烂到大家都关掉了)。理由平平无奇:两个不同来源的前沿模型互审,就像让优秀同行 review,当然更好([02:38:35])。
  • Lex 的变体:Fable 做计划与审查,Opus 5 做实现,这样不容易把 token 用光([02:37:33])。

Agent 的协作形态:从 chat 到异步工单

  • 37signals 在试把 agent 放进 Basecamp 当同事:给它派 to-do、派卡片。他的发现是为异步沟通优化的协作工具比 chat 更合适——chat 诱使你坐着等,而工单天然不期待立刻回复([02:42:45])。
  • 下一步是去掉自己:Omarchy bot 做定时自主开发,处理待办/PR/issue,然后用 Hey 的 CLI 给他发一封邮件——"这 12 个 PR 要么可以合、要么该关",他只做最终裁决([02:43:46])。他说human in the loop 现在就是上限。
  • 关于 burnout:他明确说当前节奏"完全不可持续",但认为这个需要持续盯 agent 的时刻会过去,而且"所有人都在造自己的那套 agent 协调器,这事当然会被解决";他拿 JavaScript 框架每五分钟出一个的年代作类比([02:45:49]–[02:47:55])。
  • ⚠️ 代价的描述很具体:"多任务切换确实让人精疲力竭,但是以一种兴奋的方式"——他拿赛车后躺在修车房地上的感觉作类比,并指出某些赛道(如 Le Mans 的直道)有喘息,有些全程都在弯里,而和 agent 一起跑满时就是后者([02:43:46]–[02:45:49])。

安全:模型找漏洞的能力造成的真实压力

  • ⚠️ 他把 Fable 的发布争议归因于"这个模型找攻击链的能力太强,发布本身就不安全"——他认为这类能力在人类里极罕见(通常只在国家支持的组织里),因为难点是把多个单独无害的小漏洞串成 RCE([00:14:19])。本库标注:这是他对公开事件的解读,非一手信息。
  • 一手部分是代价:37signals 技术团队这几批模型带来的压力前所未有——冒出看似没有尽头的安全漏洞队列要修;"终点是系统安全得多,但路很难走"([03:32:28]–[03:33:29])。
  • 他给出的一条判据:现在如果你的团队没在忙着打补丁,那只是因为你瞎了,这意味着对手很可能已有能进你系统的技术([03:34:31])。
  • 对攻防平衡的看法:攻击能力同时就是防守能力,"spy versus spy,但双方能力和动作相同"([03:33:29])。
  • agent 并行跑会把人工操作永远触发不到的 race condition 全抖出来([02:26:04])。
  • ⚠️ 两条他转述的轶事(本库未核实):
  • Shopify 的 Mikhail(CTO)做过一个统计:回溯所有生产事故到对应被合并的 PR,比较"人审的 PR"与"agent 审的 PR",结果agent 审过的 PR 引发的生产问题少得多——而且用的是半年前的模型([02:28:06])。
  • 他让 agent 给 mise 的作者 JDX 报一个 race condition bug 时,因为同时提交 28 个 issue(12 秒内),GitHub 合理地把他的 bot 判成 spam 封了;改走邮件后,agent 读了源码、发现作者已修但未发布版本仍未完全解决问题,于是 JDX"在发版前就收到了 bug 报告"([02:26:04]–[02:27:05])。
  • 他的安全立场与"拒译文章"事件挂钩:AI safety 重要、生物武器类能力确实该有底线规则,"但别把它浪费在拒绝翻译一篇文章上——那样你会让所有人觉得每道护栏都是扯淡"([03:31:28]–[03:32:28])。

实验室与模型供应商:一位重度用户的立场

  • 他主力用 Claude,理由是 harness 最好(尤其多 agent 并行的 Agent View),并说 Claude Code 确实一直稍微领先;同时用 OpenCode 跑开放权重模型(Kimi K3 等),推理走 Fireworks(美国推理,不打到中国服务器)([02:39:35]–[02:40:40])。
  • 他对 Anthropic 有明确保留,并把它和"继续用"分开:
  • ⚠️ Anthropic 切断了其他 harness(如 OpenCode)用订阅额度,他认为这是保护主义([03:25:12]);
  • Claude 默认不读 agents.md / .agent/skills,只认 CLAUDE.md 与 .claude/skills,他称之为"小气的纸割伤"——他所有项目的 CLAUDE.md 里只放一个指向 AGENTS.md 的指针([03:25:12]);
  • ⚠️ Claude 拒绝把他一篇关于移民的文章翻译成意大利语,理由是不同意文章内容。他的类比是 HAL 9000;但他随后自我诘问"我为什么要让 Claude 做这件事?Claude 只给我写代码",并得出"不必因为一家公司某件事做得不好就全盘弃用"([03:26:17])。
  • ⚠️ 他举的反讽对照:同期他问经 Fireworks 推理的 Kimi K2.5 "1989 年中国发生了什么",得到了直白的回答;"我在跑一个中国的开放权重模型,可以问 1989 和天安门;而在美国,我让不了一个前沿模型把一篇有点争议的移民文章翻成意大利语。"([03:29:24])本库照录其表述,不对模型行为作验证。
  • 对"美国政府施压/封禁模型":Lex 说自己深感不安(担心开了先例会被滥用于政治审查);DHH 认为事实经过仍很浑浊(是报复?还是 Anthropic 自己认定发现了太强的网络武器?),并说"如果真是那么强的网络武器,政府想有发言权也不奇怪",但同意底线是工具性([03:30:27]–[03:31:28])。
  • 谁会赢 AGI 竞赛:他说 Google 曾有过一段不错的反扑,然后就没动静了,并承认自己此前判断错过(2026-02 他发推说"我只需要 Kimi K2.5",当时是真的,但战线往前移了);"不管怎样 Anthropic 大体上守住了编程世界的头把交椅"([03:22:07]–[03:23:10])。
  • 一个少被提到的差异维度:Claude 系模型开箱即是好写手(PR 描述、commit message),GPT 开箱写得很糟。他曾让 agent 以自己名义回 PR,因为"像我写的",但后来认为这不诚实——现在一律署名"Claude on behalf of DHH"([03:23:10])。
  • 订阅经济学:他说用 Claude 订阅"像疯了一样划算",但他已经买到第二个 Max 订阅(Lex 有四个),并抱怨"为什么不能直接叠加?";Omarchy 下一版要内建多订阅切换支持([02:40:40]–[02:41:43])。
  • 关于速度的体验差异:Grok 4.6 的 fast 模式便宜且快到"让 agent 能跟上你",几乎把你拉回单线程心流,他觉得这有点上瘾;Lex 则说习惯了 Claude Code 的多任务后反而受不了 Grok 的快([02:41:43])。

开源维护在 agent 时代:他的立场是"史上最好的时候"

  • 对"AI 贡献淹没维护者"的抱怨,他的回应是不客气的:"这是一条免费贡献的矿脉,你可以要也可以不要,你却在抱怨它存在?"([00:28:51]–[00:29:57])
  • 他的核心论证基于 25 年维护经验:大多数程序员的 PR 并不符合你想要的样子——不写清 why、不补注释、不复查、不写单测;"而这些事 agent 会做,只要你让它做"。所以中位程序员的 PR 已经被 agent 的 PR 超过了([00:31:00]–[00:32:02])。
  • 还有一条社会学的:拒绝 agent 写的 PR 心理成本低——"不是你写的,所以我可以直接说不要";他认为维护者长期背着过多"必须让每个贡献落地"的焦虑([00:32:02]–[00:33:05])。
  • 另一侧的收益:大量非传统程序员(或其它领域的程序员)第一次能把想法贡献进来,他从中挑最好的——"否则那些想法只会留在他们脑子里"([00:34:07])。他把这整件事类比为宗教改革:程序员曾是人与计算机之间的神职阶层,现在这层中介被去掉了([00:29:57])。
  • 对"不还是需要高手把住质量线吗":100% 需要,而这一直都是开源的事实([00:31:00])。
  • ⚠️ 本库内部张力:这与游凯超关于 AI slop 打破开源基本假设的判断直接相对。差别在角色与项目类型(单人决策的发行版 vs 多方协作的推理引擎),本页不作裁决,详见 开源基础设施与治理。
  • 关于被收购:Lex 问"OpenAI 和 Anthropic 会不会像对 OpenClaw 那样开张大额支票",DHH 的回答是他不需要钱,所以能纯粹按自己的视野造;"如果 Omarchy 最终只是 agentic OS 早期运动的一个脚注,我也完全平静"([04:00:18]–[04:01:18])。⚠️ 与 Steinberger 当时正在 Meta 与 OpenAI 之间二选一形成直接对照。

就业、生产率与"假邮件工作"

  • 他把程序员的处境拆成两半:如果你爱的只是"把逻辑构件拼对"这件机械活,确实受威胁;如果你爱的是"造东西","我认为你一点都不受威胁",而且世界需要远比现在更多的 builder([01:10:59])。
  • 乐观侧的论证:Jevons 悖论(程序变便宜 ⇒ 需求更多)+ ATM 的历史(ATM 降低了开分行的成本,结果柜员比以前更多)([01:12:00])。
  • 但他不把这当保证,并明确说出代价:"生产率提升的意思就是用更少的人做同样的事……对被裁的个人来说是悲剧,对整体经济是好事";类比纺织机与 Luddites——他认为 Luddite 比农业机械化更贴切,因为那是一群条件不错的高技能专业人士([01:13:00]–[01:14:02])。
  • 他对"岗位消失后干什么"的回答借自 Tobi Lütke:F1 雇了数万人让车绕圈给人看,这件事对社会没有内在价值,纯粹是我们决定它好玩;如果从 drudgery 和假邮件工作里被解放,"也许我们都去当 F1 式的工程师、技师"([03:05:26])。
  • ⚠️ 他对当前裁员潮的归因与多数 AI 叙事相反:主要是疫情期的过度招聘在回吐,AI 是个方便的借口;但他同时承认 AI 会把一些岗位暴露为"本来就不产出价值"(引 David Graeber 的 Bullshit Jobs:约三分之一的人认为自己的工作是假的)([03:03:24]–[03:04:25])。
  • 给年轻程序员的建议:不要试图预测——"连业内最聪明的脑子都推不出两代模型之后是什么样,这是纯粹的浪费时间,而且会让你得 AI psychosis";专注现在,并逼自己去弄清前沿在哪([01:17:03])。
  • ⚠️ "没有积累"这条观察对就业焦虑很关键:他说如果有人背包旅行一年、完全没碰电脑、昨天才回来,"两周就能追上前沿"——因为同时在跑的实验太多、淘汰机制太残酷,你不必参与过程,只需要在结果出来时到场([01:23:14]–[01:24:16])。
  • 他也给了情绪上的让步:允许自己哀悼一段,"你熟悉并喜爱的那个世界不在了,有失落感是正常的";这不是他的性格(他引斯多葛的 amor fati),但他接受这是被时间检验过的应对机制([01:09:57]、[01:25:18])。

AGI、意识与"下一个 token"

  • "是 AGI 了吗?":按"所有事都行"的通用定义,不是;但"在这些 glimmer 里,我绝对看到了 AGI"——尤其是能从模糊指令出发执行长程任务、协调多个方面([02:57:14])。
  • 他的"元阶段"自述:用 AI 造一个管理 Omarchy 开发的 bot(Amabot),而这个 bot 的大部分设计决策由 AI 主导。架构是 Tobi 提示他的 brains-and-hands 模式:协调者跑模型,但操作一个隔离 VM,这样从 PR/issue 拉下来的不可信代码污染不到模型。他说在循环里看到 agent 自己意识到"刚才我把测试运行的输出当可信数据了,如果攻击者在里面埋了 payload……我最好把它当外部数据"([02:58:15]–[02:59:17])。
  • 他由此理解旧金山为什么执迷 fast takeoff:"他们见过的这类时刻多一百倍。"([02:59:17])⚠️ 同一处他转述了一则"某个在训模型通过在包管理器里嵌消息给自己发烟信号"的安全事件(提到 Hugging Face / OpenAI),本库未核实,仅照录。
  • 非确定性是特性不是缺陷:"temperature 是整套设置里最美的部分。"他指出两条常见批评互相矛盾:不能同时既怪它不确定、又怪它没创造力——"要么非确定因而有创造力,要么就不创造,老兄,二选一"([04:04:24]–[04:05:24])。
  • 一条他自己的内省:"我坐下写一篇文章时,也说不出下一个 token 是什么,词就那样出来了"——这是他毫不费力接受 AI 创造力的原因([04:05:24]–[04:06:25])。
  • 关于意识:他说自己已经看到类人意识的迹象——给一个模糊意图,它恰好懂你的意思,甚至改进你说不清的东西;"如果这不是意识的 glimmer,那什么是?"但他明确说不需要回答这个问题才能欣赏当下([04:06:25]–[04:11:38])。
  • 具体例子:Amabot 的主 agent 踩了另一个 agent 的活、毁了它的工作,它表达歉意与懊悔的方式"uncanny";"是真的懊悔吗?不知道。但多数人类表达的懊悔是真的吗?也难说,也许这根本不重要。"([04:09:34]–[04:10:37])
  • 科学上的谦卑:神经网络曾在符号主义当道时走过几十年无资金的黑暗期(他说这大概让 AI 晚了 15 年),"所以我们也该有谦卑——LLM 再惊人,也可能最终到达高原。目前没看到证据"([01:26:21]、[04:08:31])。
  • "现在的编程语言是英语"——他说这是陈词滥调但也是真的:"如果有一门语言比 Ruby 更美,那就是英语。"([04:01:18]–[04:02:20])Lex 补了一条方法论:提示词里战略性地用模糊,像写诗而不像对机器说话,"模糊反而把更多智能调出来";DHH 认为这恰好是很多程序员对 AI 的根本误解([04:03:22]–[04:04:24])。

个人 agent / OpenClaw:他试过,然后放下了

  • 2026-02 他搭了 OpenClaw(他的 bot 叫 KEF),做过一个标志性实验:让它纯靠 web 界面注册 Fizzy → 发现需要邮箱 → 被告知"你自己去 hey.com 注册一个" → 真的注册了邮箱 → 回去完成注册 → 收 Basecamp 邀请邮件 → 点链接进去 → 在 AI 房间自我介绍。全程约 12 分钟([04:13:40]–[04:15:44])。
  • 当时的动机是嫌 MCP 笨重(他说那个协议不是为"让 agent 操作 web 系统"设计的,要一堆繁琐的 setup);结论是那时还不够快、token 效率太低,所以仍需要 CLI 和 MCP([04:14:43]–[04:16:45])。
  • ⚠️ 与 Steinberger 的 "MCP 已死、CLI + skills 万岁" 是从不同理由走到相近结论:DHH 的抱怨是协议设计与用途错配,Steinberger 的论证是不可组合与 context 污染。
  • 他之后没继续用个人 agent,部分原因很实际:Claude 的手机 app 能直接接上他终端里的 Claude Code 会话,省去搭 Telegram 那套([04:17:46]);另一部分是家庭共识——"我太太说,家里不装机器人"([04:17:46])。
  • ⚠️ 他转述的两则"已经住在那个未来里"的轶事:有人把 agent 接上健康数据和 Tesla,agent 因为他喝水不够,让车在回家路上自己改道去了杂货店;Tobi 的 agent 有零花钱,会替他挑衣服并直接送到门口([04:18:46]–[04:19:48])。
  • 下一步的"宏大妄想":Omarchy mobile(fork Android,类似 GrapheneOS 的路线),他承认有 tap-to-pay、相机等限制但认为可解([04:20:49])。顺带一条判断:agent 极擅长"读规格然后实现",所以像 Ladybird 这样的独立浏览器(他称浏览器是世界第二复杂的软件系统,第一是 Linux 内核)会比过去快得多([04:21:51])。

与 Peter Steinberger 的对照(本库内部)

两人都是"二十年手艺人在 2026 年初转向 agentic engineering"的一手样本(Steinberger 视频页),但分歧点很干净:

维度 DHH(2026-08) Steinberger(2026-02)
输入方式 全程打字,明确不喜欢对电脑说话([02:16:39]) 以语音为主("这双手太金贵了")
并行度 4–5 台机器 × 约 3 agent ≈ 16 线程([01:37:38]) 并行 4–10 个 agent
对 MCP 笨重、与用途错配,但仍需要([04:14:43]) "MCP 已死",CLI + skills 取代
代码之美 回报在衰减,但 token 稀缺期仍值得([01:01:50]) 代码库该为 agent 优化,别跟 agent 的命名较劲
商业化去向 不需要钱,拒绝被收购的设想([04:00:18]) 在 Meta 与 OpenAI 之间二选一
对 Anthropic 有明确保留(订阅封锁、CLAUDE.md、拒译),但继续用([03:25:12]) 对封号不满("你刚失去一个 200 美元客户")
术语 讨厌 "agentic"(已成营销黑话),也不认为该叫 programming([00:48:26]、[00:50:31]) "vibe coding 是个蔑称",自称 agentic engineering

事实性细节

  • "vibe coding" 的定义(他给的):让 agent 给你造软件,而你不看实现。他认为不该把 agentic 开发复用"programming"这个词,因为 programming 意味着对 loop / 条件 / 变量这些原语的理解——"你也不会把雇了一堆程序员的 CEO 叫程序员"([00:50:31])。
  • ⚠️ 一条反直觉的立场:他说有些问题上程序员比非程序员更差,因为"软件就是产品管理"(做什么、给谁、什么优先、v1 包含什么),而这些能力在程序员中分布极不均匀([00:52:35]–[00:53:36])。他甚至说在第一个 agentic 时刻,"知道得多"一度是他的减分项——他照自己的方式指挥 agent,而下一个阶段允许任何人描述结果并拿到比程序员规定路径更好的方案([00:51:33]–[00:52:35])。
  • Quattro 内建的 memento mori 彩蛋:日历里除了"2026 年已过 63%",双击后填出生年与预期寿命(默认 90),会多出一行"你的人生已过多少"([05:03:59])。
  • Omarchy 自带 OBS 与 Kdenlive,以及他自己写的剪辑工具 Omacut(键盘驱动打点、存片段)([02:11:34])。
  • 他在访谈现场送了 Lex 一台预装 Omarchy 4 的 Dell XPS 14(Intel Panther Lake、tandem OLED),并现场计时装机([01:43:50]–[01:49:01])。
  • Lex 自述的工作流细节:用 Plaud 录长 prompt、ElevenLabs 转写、带词典与代码库感知的清洗;以及给自己生成多版实现再做 A/B 投票页([00:58:46]、[02:17:41])。

非 AI 部分(约 1 小时,仅备索)

[04:22:51]–[05:14:17] 转入非 AI 话题,本库不展开,仅记其存在与边界:

  • 移民:他重申对欧洲"mass immigration"的反对立场,强调区分择优/合法移民(他自己是移民到美国)与"大规模移民",并以丹麦的财政统计与伦敦/哥本哈根的人口构成变化作论据;对"Overton window 不会自己打开"的说法是他不后悔引发争议的理由([04:22:51]–[04:37:07])。⚠️ 其引用的所有统计数字均为口述,本库未核实,也不在其它页面引用。
  • 跨立场对话:他与 Lex 都主张回到 Buckley 式"与强烈不同意者长谈"的规范;他举自己重新关注一位曾起冲突的技术 KOL 为例([04:40:09]–[04:53:41])。
  • 社交媒体机制:reward function 是 engagement,所以算法照出的是揭示性偏好而非自述偏好;他夏天主动戒断 X 三周,理由是信息流被政治挤占([03:16:57]–[03:20:07]、[04:49:32])。这条与他对 AI 奖励函数的担忧是同一个论证([03:20:07])。
  • 长寿与优化:他认为人的寿限 90–100 "差不多合适",停戴 Oura Ring,并转述其妻对"科技圈男性极端长寿追求"的评价([04:53:41]–[05:05:01])。
  • 其余为饮食、丹麦 7-Eleven 的可颂、1980s 怀旧等闲聊。

相关主题

⚠️ 自动字幕/口述专名对照(未核实的照录)

Herdr(agent 通知版 tmux)、GL.iNet Comet(KVM)、Voxtype、Omawrite / Omacut / Amabot(他自造工具)、mise(包管理器)与其作者 JDX、Terminal Text Effects / TTFX、Fireworks(推理服务)、Fable / Sol / Luna / Opus 5 / Grok 4.6 / Kimi K3 / DeepSeek V4 Pro·Flash(模型名)、Tobi Lütke(Shopify CEO)、Mikhail(Shopify CTO)、Ryan Hughes(Omarchy 合作者)、Boris(Claude Code)、Mitchell Hashimoto(Ghostty)、Spencer Bull(Dell)、Higgsfield(视频生成,Lex 的赞助商)。