DHH:智能体工程、可塑操作系统与编程的下一步
coding-agents Linux 产品设计
13 个月前,DHH 还把 AI 更多当作检索与对话的助手。到这次与 Lex Fridman 的五小时对谈,他描述的工作已经不同:智能体承担大量实现,他更多说明问题、观察结果、决定下一步。这个变化并不只是换了一个更聪明的模型。在他的经历里,模型能否操作工具、检查自身工作、把任务分给子智能体,决定了它是否能真正进入日常开发。
这也是一场关于身份的访谈。DHH 用了二十多年打磨 Ruby 与 Rails 的代码,珍视代码的整洁、节奏和可修改性。如今他依然会读关键部分的实现,但不再把逐行书写视为唯一的创作方式。他更愿意把自己放在产品设计、编辑与验收的位置:让机器提出实现路线,再看它是否抓住了问题的形状。
从告诉模型怎么做,到告诉模型问题是什么
DHH 把最近一段时间粗略分成几步。最初的 AI 像更好的补全或聊天工具,仍由人把每一步路径讲清楚。后来,子智能体让任务可以并行,开发者不再只盯着一个窗口。再往后,他开始用一个更松的输入描述困扰自己的问题,允许模型自行选择路径。他承认这是一种个人体验,也只在自己熟悉的许多 Web 与 Linux 任务上建立了信心;它不是对所有系统、尤其不是对安全关键系统的通行结论。
这种变化使他重新划分了 Vibe Coding。按他的定义,如果用户让智能体做软件、自己不看实现,那才是 Vibe Coding。若开发者仍会理解关键改动、要求测试、关心架构与风格,则更接近智能体加速的开发。两者没有高下之分,区别在于人是否还承担实现层的审阅责任,以及项目能承受多少黑箱。
这套划分也解释了为什么同一个人能在不同项目中采用不同方式:为个人工具接受黑箱,不等于为已有用户的大型产品放弃检查。
DHH 认为,当实现越来越可委托时,软件的难点会更暴露地回到产品管理:为谁做、先做什么、第一版包含什么、界面应当如何让人使用。这些问题并不因为模型懂循环、变量或框架就自动有答案。相反,开发者越能把实现交出去,越必须对目标、优先级与最终感觉负责。
先做一个能用的东西,再知道自己要什么
他把这个观点接到敏捷开发的老经验上。需求不是把访谈记录写得足够长就能解决的;许多细节只有在拿到可操作的原型后才会出现。他的原话是:没人会在真正拿到软件前知道自己想要什么。
智能体让这一循环更短:先产生一个版本,亲手用它,再让系统依照新的观察继续修改。
这不意味着人应该放弃判断。DHH 反复谈到,人很善于在少量候选项中作出差异化选择。给出几个不同的设计、流程或实现方向,人往往能迅速说出哪一个更贴近自己的意图;可如果选项过多,判断就会失焦。因此,智能体应当把可比较的候选项送到人面前。人负责试用、否决、重定向,模型负责把反馈迅速落实。
人类给出的信息
问题、场景、优先级、审美与不能接受的结果。
智能体承担的工作
探索路径、写实现、运行检查、提出可试用的版本。
循环的终点
多轮试用和反馈,让产品判断逐渐变得准确。
架构没有消失,它变成理解上下文的成本
如果实现可以由模型生成,优雅架构还值不值得花时间?DHH 的回答不是简单的肯定或否定。过去,代码清晰的经济理由很直接:小团队更容易理解它,改动更容易局部化,也更不容易在一次修改后引进连锁 bug。如今修改者可以是智能体,这份回报会变化;但至少在眼下,它还没有消失。
原因是上下文仍然有成本。DHH 提醒说,普通用户的模型调用仍受 token 和预算限制。结构混乱的代码库会让智能体不断重读、猜测与补洞;连续叠加几个看似过得去的 PR,最后同样会变成一团难以演化的代码。清楚的边界能让下一次理解与修改不必从头开始。
在 Omarchy 的开发中,他越来越把自己看成编辑,而不是唯一的雕刻者。他会看整体比例、看复杂度是否超过问题本身、看一个变化有没有遗漏相邻上下文。自动测试能抓住一部分错误,却不会自动决定一个方案是否太绕。面对这种情况,他给智能体的反馈往往很短:把它做得更简单。
他感兴趣的是系统是否能据此重新整理方案,而不是人是否亲手敲下每个字符。
工作台从一个编辑器,变成一组正在跑的任务
手写代码的心流通常是单线程的:盯住一个问题,慢慢把它做完。智能体改变了等待的含义。一个任务可能比键入慢,却能在后台持续工作;人若只守着它,就会感到自己无所事事。DHH 的做法是让多个任务同时前进,把注意力留给分派、解堵与审阅。
他先用 tmux 的窗格管理多个终端,后来改用 Herder 接收完成和求助提醒,又用 KVM 与 Tailscale 把多台机器纳入同一网络。他估计自己同时管理约 16 条线程时就接近认知极限。这个数字只说明他自己的负荷:模型越快,人的切换与判断越容易成为系统瓶颈。它也解释了为何他不喜欢只用代码行数衡量产出;变更多,不代表交付了更多有用的东西。
终端在这套工作流里重新占据中心。对 DHH 来说,命令行并不只是怀旧界面。工具可以从 CLI 被调用、组合与记录;配置可以放进文件、纳入版本控制、在另一台机器上复现。图形界面仍然是许多人的入门方式,但当智能体需要操作和理解系统时,这种可组合性格外有用。
Omarchy:把 Linux 当作可继续改写的材料
DHH 把这个判断投入了 Omarchy。它不是试图做一个外观近似 macOS 或 Windows 的桌面,也不追求绝对空白。发行版预装他自己会用的录屏、剪辑、终端与智能体工具;这是一种有主张的默认配置。他把名字中的 Omakase 理解为主厨做选择:用户少做第一次开机时的拼装,先获得一台能工作的机器。
他对安装速度的执着是这个产品观最具体的一面。节目里,他对比了新 Mac 更新到能装 Adobe Lightroom 前的 42 分钟,以及另一台 Windows PC 从拆箱到可用的 1 小时 35 分;Omarchy Quattro 的目标则是约一分钟。他继续测试专门针对某些机型的镜像,尝试把时间压到约 12 秒。这里的数字来自他的口述比较,不是跨平台实验室测评;重点在于他如何拆问题。
用户填写账号和时区时,安装器可以先预加载不依赖这些信息的内容。ISO 体积也可以继续缩:他提到完整 JetBrains 字体包约 200 MB,而实际使用的精简版本约 16 MB;压缩 NVIDIA 驱动包也减少了介质大小。智能体则被用来重复测试安装顺序和不同假设。安装速度于是成了一个让底层约束显形的练习,而不只是一块宣传数字。
传统的 Linux 门槛
错误信息很具体,却要求用户知道去哪儿找、如何判断日志和配置。
DHH 想要的智能体体验
智能体读取日志和源码,定位问题,再由用户决定是否接受诊断或提交报告。
他提到 Omarchy 的崩溃观察器会在应用崩溃后询问用户,是否让默认智能体诊断。另一次,智能体在 QA 中一次发现 28 个问题、过快集中提交给 GitHub,结果触发疑似垃圾信息限制。改用邮件后,它又查到 meese 某个尚未发布版本的缺陷并报告给维护者。这是一个典型的智能体故事:诊断与执行速度同时放大,外部服务的节流与权限边界也必须随之设计。
模型不必只有一个,审阅可以来自另一个模型
DHH 没把模型选择说成永久排名。他当时最偏爱 Fable 的规划能力,也使用 Opus 5、GPT Sol、Grok 和 DeepSeek 等不同模型。他举了一个转译 Terminal Text Effects 的例子:给出 Python 源码,要求生成无依赖的 Rust 可执行文件。按他的描述,Fable 首版在 45 分钟左右完成,启动时间从 86 ms 降到 2 ms;之后他又让其他模型复做,并继续自动研究。这是一个具体任务的自述结果,不能直接推导到任何语言迁移项目。
不过他从这个实验得出的工作法很朴素:让不同来源的模型相互检查。一个模型做规划或实现,另一个模型负责 code review,CI 与 GitHub Copilot 再提供一层反馈。这不神秘,和让同事复查工作是同一种思路。它也比把所有信任放在单一模型的第一次回答上更符合他的工程直觉。
自然语言的含蓄,和系统的边界
DHH 说自己近几个月主要在用英语编程。他的意思并非程序语言已经无用,而是人向机器表达目标的主通道变成了自然语言。与其把每一步写成僵硬的指令,不如说明希望达成的结果、风格和约束,让足够聪明的系统利用上下文决定具体路径。他把这种写法比作诗:含蓄的表达也能让另一方从语言的方向感中推断更多。
这也让他欢迎模型的非确定性。他认为温度带来的差异是创造性的一部分;同样提示不总给出同一条路,才可能生成意外而可用的选择。可这并不会自动保证可靠性。输出会变,审阅、试用、回归测试和权限控制就更重要。尤其在安全关键系统中,不能因为一个模型能把模糊意图说得像理解,就放弃明确的验证条件。
在节目早些时候,他曾让智能体只借助网页完成注册、创建邮箱、接收 Basecamp 邀请并加入项目。那次流程约花 12 分钟,慢且耗 token,却让他看到未来交互的轮廓。今天他更常从手机接入自己终端里的 Claude Code 会话,而不急着把智能体接管整个家庭。别人家的智能体曾因主人喝水不足而让 Tesla 改道去商店的故事,对他而言既好笑,也说明自动化一旦碰到现实世界,授权范围必须比聊天窗口更严格。
技术加速之外,仍是人的时间
这期谈话没有把生产率描述成没有代价的礼物。DHH 一方面认为更便宜的软件会带来更多可建造的东西,另一方面也承认固定任务可能由更少的人完成,被替代的人会承受真实损失。他给年轻开发者的建议是先学习今天的工具、继续建造,并进入能互相推动的社群。
最后,话题回到有限的人生。Omarchy 的日历中有一个 memento mori 功能:除了一年进度,也能按照用户填写的出生年份和预期寿命显示人生进度。DHH 说它提醒自己时间有限。他谈到减少对睡眠与健康指标的过度追踪,也谈到孩子长大让人真切感到时间流逝。智能体、速度和可塑系统在这里重新有了尺度:它们应当让人更能创造与生活,而不把每一分钟都变成待优化的指标。