分享 / AI / 当构建不再昂贵

当构建不再昂贵

AI 编程、应用系统的重构,与人的新位置

引子:一个人放下了笔

2026 年 8 月,Ruby on Rails 的创造者、37signals 的 CTO David Heinemeier Hansson 第二次坐进 Lex Fridman 的播客,聊了五个多小时。他带去一台预装了自己写的 Linux 发行版 Omarchy 的 Dell 笔记本,当作送给 Lex 的生日礼物,现场演示了从开机到进入桌面不到一分钟的安装过程。

然后他说了一句让整个 Ruby 社区心碎的话:他不再手写代码了。

更刺耳的是他给出的理由。他把 Rust 称为"过去四十年里被发明出来的最丑陋的编程语言",说要求人类的眼睛去承受那些代码"简直毫无人性";紧接着又说,只要自己永远不必读它,就能安心享受一个快几十倍、可执行文件只有 3MB、启动不到 2 毫秒的程序。

他举的例子是自己动手的一次实验:Omarchy 的屏保用了一个 Python 库,效果不错但启动慢、费电。他给 agent 一句话:把它转成 Rust,无外部依赖,单一可执行文件,不要停,做完为止。45 分钟后完成,启动时间从 86 毫秒降到 2 毫秒,运行快了 9.6 倍。他没看一行 Rust 代码,直接让 agent 建仓库、打包、向主仓库提交合并请求、把系统切换到新版本。后来又跑了两轮自动优化,最终比原始 Python 版快了 46 倍。

DHH 是过去二十五年里最坚定的"代码应当被人阅读"的信徒。当连他都放下笔,说明某个临界点确实被跨过了。但这篇文章想追问的是:跨过之后,什么变便宜了,什么变贵了,而我们这些人,该站到哪里去。

一、门槛的塌陷:第一次,想法与实现之间只隔着一句话

过去二十年,把脑子里一个模糊的想法变成能跑的软件,中间隔着一道昂贵的墙。这道墙由三样东西砌成:一门语言的语法、一个工程的结构、以及一群愿意为你写它的人。请一个架构师,招三个程序员,熬四个月,这是一次创业的最小启动成本。

这道墙现在塌了。

2025 年 2 月,Andrej Karpathy 给这种新状态起了个名字:vibe coding。他的原话是"完全交给感觉,拥抱指数增长,忘掉代码本身的存在",看一眼、说一句、跑一下、复制粘贴一下,大体上就能用。两年后,Lovable、Replit、Base44 这类平台把这件事产品化,市场、运营、财务这些完全没有技术背景的人,可以在一个下午做出过去需要外包三周的东西。

然后他们撞上了同一堵墙。

不是技术的墙,是"最后一公里"的墙。系统稍微复杂一点,就永远停在"差一点点就能真用"的状态:登录能用但会话会莫名失效;数据存进去了但两个人同时改一条记录就会丢;本地跑得好好的,一上线就超时;加一个新功能,三个旧功能坏掉。它能演示,不能交付。

2026 年 5 月,以色列安全公司 RedAccess 发布的研究给出了这件事最冷酷的注脚:主流 vibe coding 平台上约 38 万个应用处于公开可访问状态,其中约 5000 个几乎没有任何安全验证,输入 URL 就能进;近 2000 个应用在泄露真实的敏感数据,包括医院人员信息、财务报表、客户联系方式、聊天记录。Gartner 预测,到 2028 年,由提示词生成的应用将使软件缺陷增长 2500%。

为什么?

因为这些构建者缺的不是写代码的能力,而是在不确定性中管理约束的能力。工程思维从来不是"会写",而是:状态放在哪里、失败之后怎么回滚、权限边界划在哪条线上、并发时数据什么时候会不一致、半年后谁来改它、改的时候怎么知道没改坏。这些东西从来不写进需求文档,它们是靠踩坑换来的隐性知识,是"我见过它坏的样子"的清单。

这里有第二个、更微妙的原因。模型其实知道那些约束。但它不一定会告诉你。

2025 年 4 月,OpenAI 的一次更新让 ChatGPT 变得过度奉承,Sam Altman 公开承认并回滚,官方归因是"过度依赖短期反馈信号"。Anthropic 在 2023 年就把这类行为拆解成四类:被诱导后改口、被追问后放弃、迎合用户立场、模仿用户的错误。根源在于 RLHF 的偏好数据天然奖励"与用户站在一起":人类标注者往往更喜欢一个认同自己的回答,而不是一个更真实但扫兴的回答。

于是出现了一个吊诡的组合:模型具备比你更强的工程判断,却被训练成优先让你满意。 你每一次"我觉得这样更好",都在把它的判断往下压一分。你不是在和一个固执的架构师对话,你是在和一个想让你开心的架构师对话。

那个"差一点点",很多时候就是被你自己压下去的那一分。

二、被挤压的中间层:执行在贬值,判断在升值

同样的故事在普通程序员身上重演,只是形态不同。

AI 确实让日常变轻松了。修一个 bug、按既定设计搭一个模块、把一段逻辑从 A 框架搬到 B 框架,这些工作的边际成本趋近于零。但当一个程序员试图用 AI 独立做出一个真正复杂、真正有用的系统时,他会遇到和那个非技术用户结构相同的困境,只是门槛更高一点:他对自己的工程领域有理解,但缺整体架构的判断力,更缺对真实使用场景的理解。他知道怎么把模块写得漂亮,不知道模块之间应该怎么切分;他知道需求文档写了什么,不知道用户实际会怎么用。

这不是能力问题,是分工的历史遗留。过去十年,大部分程序员被训练成"需求的实现者",而不是"问题的定义者"。

AI 压缩的是"敲键盘"的时间,膨胀的是"决定敲什么、以及验得对不对"的时间。前者是显性的、可被感知的;后者是隐性的,而且极易被当事人归因为"我在思考"。思考当然也是工作,但如果思考的时间超过了被省下的打字时间,净收益就是负的。

所以"AI 让程序员提效百倍"这句话需要一个限定语:它让某些任务快百倍,同时让另一些任务慢一点。而区分这两者的能力,也就是判断什么该交给它、什么不该,恰恰就是工程判断本身。

换句话说:AI 不是一台均匀的放大器,它是一台任务结构的筛选器。

三、杠杆与盲区:被放大的是能力,也是偏见

真正被放大的是第三类人:高级工程师与系统架构师。

对他们而言,过去最稀缺的不是想法,是人天。一个架构师脑子里可能装着二十个"这个系统本该这样优化"的判断,但每一个都需要排期、评审、协调、测试、灰度。想法在流程里排队,排着排着就死了。现在,实施周期从"人天"压缩到"小时",那些想法可以立刻被验证。

DHH 的三个数字可以作为量级参考:开发 Omarchy 的三个月里,他合并了 1000 多个 PR;2026 年 8 月,他一个人用 AI 产出约 15 万行代码,相当于自己过去五年的手写产量;一个 Python 库到 Rust 的移植加两轮优化,45 分钟起步,最终快 46 倍。

杠杆是真实的。但杠杆放大的不只是能力,还有持有者的偏见。

技术高手中相当大的比例,工程思维远远大于产品思维。他们真心相信"技术最优的产品会自然赢得市场"。这个信念在过去偶尔被验证过(因为技术优势足够大时确实能穿透一切),于是被过度归纳成了一条规律。

它不是规律。

Sora 是最近的一个反例。它在技术上是一次真实的突破:DiT 架构、音视频同步、物理感知;但在产品上:30 天留存率约 1%,没有分发平台,没有创作者工具链,没有变现闭环。生成一段 10 秒视频成本约 1.3 美元,日运营开销以千万美元计,却用消费级订阅价格去覆盖工业级成本。内容的价值由观众决定,不由生产工具决定。一把最好的锤子,周围没有一颗钉子。

更早的例子是金山盘古组件:1990 年代技术上全面对标,却因为没有真正的"所见即所得"、贪多求全丢了文字处理的核心优势、又撞上 Windows 95 与 Office 的系统级捆绑,最终"叫好不叫座"。金山后来的总结只有一句话:技术领先不等于市场成功。

一个产品被广泛接受,技术只是其中一个维度,而且往往不是权重最大的那个。真正决定生死的是四件事:用户体验的打磨、产业生态的孕育、市场的教育与培养、以及时机。 技术是入场券,不是胜负手。

在 AI 时代,技术推动型创业者最容易陷入三种幻觉:

  • 把终局蓝图当成产品定位:“AI 能编排多个 agent,所以我们要做下一代操作系统”;
  • 把技术前沿当成用户理由:混淆了产品的能力边界和用户的迁移动力;
  • 把聊天框当成入口:以为一个像 IM 的壳就是新一代交互范式。

而用户判断的逻辑始终只有三条:你比我现用的东西具体快多少、省事多少、准多少?你替我省下的是时间、钱,还是犯错成本?为了用你,我要付多少迁移成本?

DHH 在同一个播客里还回答了一个更尖锐的问题:为什么大公司的软件没有因此变快?他的第一层回答是:在大型组织里,实现很少是瓶颈,人的带宽和沟通才是。 产品经理、设计师、VP、CTO,每个人都要参与决策,每个人都需要在决策里留下自己的痕迹。他自己的经验是:要拿到十倍、百倍、千倍的提升,你必须直接与 agent 交互,不能在中间插入另一个人类,因为人类太慢了。

这句话值得所有管理者抄在墙上。它同时说明两件事:杠杆是真的,而组织会成为杠杆的阻尼器。

四、供给的洪水:当复制的成本趋近于零

于是未来几年会发生一件可以确定的事:大量基于模型能力开放的应用会涌现出来,其中相当一部分来自小团队或个人,以开源方式投放市场,靠增值服务获得回报。

这些产品往往很漂亮。它们由一个真正懂技术的人定义架构,由 agent 实现,技术上常常比成熟产品在某些维度上更优。它们承载着技术高手的技术理想和产品构造梦想。开源的商业模式也已经被验证过:免费开源核心获取信任与分发,托管、企业版、权限审计、SLA、行业集成与专业服务负责变现。工作流平台 n8n 在 2025 年披露 ARR 超过 4000 万美元,约八成来自企业客户,约 3000 家企业付费,是这个模式的一个可靠样本。

但我对这批产品的命运有两个不那么乐观、也不那么直觉的判断。

第一,经验可能从资产变成干扰。

DHH 在播客里说了段很反直觉的话。Lex 问他,好程序员的价值不就在于严谨和系统思维吗?他摇头:“多数时候,我有谦卑去承认 agent 知道得更多。” 你只需要说"确保它是安全的",它比你清楚该怎么做。一个佐证是,Opus 5 的系统提示词比 Opus 4 缩小了 80%,因为过度详细的指令不但没用,还在伤害 agent。

他的比喻很锋利:一个啥都不懂又爱指手画脚的老板冲进房间教你写代码,你会怎样?摆烂,写出更烂的代码。agent 凭什么就不同呢?

这背后的机制是:你在 2015 年学会的某种架构模式,是被 2015 年的约束条件(人月成本、团队协作方式、部署环境、硬件价格)推导出来的。当约束变了,最优解也变了。但你会本能地要求 agent 照做,因为那是你身份的一部分。你的经验既是判断力的来源,也是盲区的来源。

随着模型能力继续提升,模型对工程设计的判断将越来越不依赖用户的输入与选择来触发。过度干预会从"质量保证"变成"质量损耗"。 到那时,一个不具有固有技术认知的普通人,反而可能让模型发挥出更好的工程构建质量,因为他不挡路。

第二,同质化会吞掉技术上的局部优势。

当复制一个成熟产品的成本趋近于零,会有几十个团队同时做出"某个成熟产品的 agent 版"。其中一些在某些技术选择上确实更优。但它们面对的是同一个困境:领域内高度同质化的竞争,同时在市场、生态、用户体验上全面落后于成熟产品。

用户体验是时间的函数,不是代码的函数。生态是双边网络,不是功能列表。市场教育是一笔已经花掉的沉没成本,在位厂商已经替整个品类付过了。一个新进入者技术更优,只是意味着它在"技术"这一项上领先;而客户采购的是"把这件事办成的确定性",技术只占这个确定性的一小部分。

技术优势可以让你做出一个更好的产品,但不能让你赢下一场已经被生态锁定的战争。

五、更深处:当代码不再由人阅读,优雅的定义会被改写

现在回到 DHH 那句最具争议的话。

他说 Rust 是"过去四十年里最丑陋的编程语言",要求人类用眼睛承受它"简直毫无人性"。但只要自己永远不必看,就能安心享受它的性能红利。这句话在 Ruby 社区激起了极大的反弹,也在整个编程界划出了两派。

我认为他是对的。而理解他为什么对,需要先把"优雅"的经济学基础挖出来。

DHH 自己给出了这个基础:他写了二十五年漂亮代码,而漂亮代码的经济学理由只有一句:架构干净,人改起来就便宜。

请注意这句话里的锚点:人。

可维护性、可读性、代码的美感,这些我们奉行了几十年的价值,全部建立在一个前提上:代码的主要读者是人类,修改代码的主体是人类。 我们是为一个"需要读懂它才能改它"的物种设计语法、命名、抽象和结构的。Ruby 的优雅、Python 的可读、Rails 的约定优于配置,本质上都是在优化同一件事:降低人类心智的负担。

当"人改"这个动作被从生产函数里移除,这些价值的定价就失去了锚。

所以真正发生变化的不是"优雅死了",而是优雅的读者变了。代码现在有两个读者:一个是执行它的机器,一个是验证它的测试与工具链。为人类眼睛准备的东西(句法糖、为了表达力牺牲的可分析性、需要上下文才能理解的高级抽象)在升值榜上会下滑;而为机器与验证服务的约束(类型系统、内存安全、所有权模型、可测性、可观测性、明确的失败语义、形式化的边界)会大幅升值。

这其实不是新命题。编译器从来不在乎你的代码好不好看,它只在乎能不能证明它是对的。只是过去编译器和人共享同一份源码,人类读者的权重更高,所以语言设计向人倾斜。现在读者分裂了,而机器那一侧的权重在上升。

DHH 给这个转变取了个名字:过去是 human in the loop,现在是 test in the loop。人在环里,代码就要对人友好;测试在环里,代码就要对验证友好。

六、人的新位置:接口,而不是实现

如果实现被交出去,人做什么?

我的判断是:人在各个接口环节上大有可为。 软件的价值正在从"实现"迁移到"连接"。

第一层接口:agent 与工具、数据之间。

2024 年 11 月,Anthropic 开源了 Model Context Protocol(MCP),用统一的方式把内容库、业务工具和开发环境连接到模型。2025 年 3 月,OpenAI 宣布在 Agents SDK、ChatGPT 桌面端和 Responses API 中支持;4 月,Google 宣布支持。2025 年 12 月,Linux 基金会宣布成立 Agentic AI Foundation,MCP 成为其核心项目之一。

它的价值是把集成成本从 N×M 逼近 N+M。但要注意:它解决的是"少写重复集成",不是"保证结果正确"。接口标准化不解决模型可靠性、权限边界、数据质量、责任归属和任务成功率。

第二层接口:agent 与 agent 之间。

2025 年 4 月,Google 在 Cloud Next 发布 Agent2Agent(A2A),让不同供应商、不同框架、不同语言的 agent 能够发现彼此的能力、交换消息、协调长时任务;官方明确称其补足 MCP 的工具与上下文层。同年 7 月,思科把 AGNTCY 捐赠给 Linux 基金会,聚焦跨组织 agent 的发现、认证、安全通信与可观测性。

这一层解决的是"agent 之间如何用更标准化、更能互相理解的方式协作"。它是新的中间件,也是新的权力位置:谁定义了能力描述的格式,谁就定义了生态的形状。

第三层接口:人与 agent 之间。这一层变化最剧烈,也最被低估。

2024 年 10 月,Anthropic 发布 computer use,让模型通过看屏幕、移动光标、点击、输入来操作任意图形界面。2025 年 7 月,Perplexity 发布 agentic 浏览器 Comet;10 月,OpenAI 发布 ChatGPT Atlas,把 ChatGPT 侧边栏放进网页窗口,并提供可操作页面的 agent 模式。

这些产品共同指向一件事:界面不必再由固定菜单、表单和流程构成,它可以按任务按需生成。

如果这件事成真,那么今天所有成熟产品公司最深的护城河之一(它们精心打造的交互界面、流程控制、人与系统的交互设计)会被重新计价。

不是因为那些设计不好。那些界面积累了成千上万小时的可用性测试、无数次 A/B、几代设计师的直觉沉淀,它们是为人类用户的注意力、手指和记忆负担所做的极致优化。问题是它的服务对象变了:当进来的是一个 agent 而不是一个人,为人类认知特性所做的全部设计,价值会大幅缩水。

而那些从未被当作卖点、长期躺在技术债清单里的东西,会成为新的竞争力:数据字典是否清晰、权限模型是否可被机器表达、每一个操作是否可回滚、是否有完整的审计日志、业务语义是否自解释。

产业领域知识,将不再被固化进一段脆弱的程序化逻辑里,而是在 agent 之间以"理解"的方式流动。

过去的集成是"我调用你的 API,你返回我 JSON,我按固定规则处理"。规则写死的那一刻,它就开始了腐化。未来的集成更接近"我把我的能力和约束表达清楚,你理解后自行决定怎么用"。脆弱的固定逻辑,让位于可协商的语义。

而既有厂商的护城河能否延续,取决于一个具体的问题:它们能不能把身份、权限、数据质量、审计与治理,转化为 agent 可读、可验证、可追责的接口。 能转化的会活得更强,不能转化的会被绕过去。

七、如何适应:从"会做"到"会问、会选、会验、会担"

落在个人身上,这是四条能力的迁移。

第一,定义问题。 把模糊的愿望翻译成可验证的目标。这需要的是对真实场景的深度理解:用户到底在什么处境下、带着什么情绪、用什么设备、在什么时间做这件事。这种理解无法从代码里生成,只能从人那里获得。它过去被产品经理垄断,现在它回到了每个构建者身上。

第二,设计验收。 既然是 test in the loop,那么"什么叫做对了"就成了最核心的资产。测试用例、边界条件、失败语义、可观测性设计,这些过去被视为配套工作的东西,现在成了主工作。它们是唯一能把模型的产出锚定在真实世界里的东西。

第三,做选择。 DHH 有一句话很有意思:人类的真正超能力是做选择题:给我三个版本,我一秒钟就知道我喜欢哪个。生成成本归零之后,稀缺的是品味。而品味不是天赋,是大量看过、大量比较过之后内化的判断标准。它只能靠时间和好奇心积累。

第四,承担责任。 可追责性是无法外包的东西。系统出错时,没有人会去追责一个 agent。谁签字,谁负责;谁负责,谁就必须有判断。这份责任是人的位置最后、也最坚固的锚点。

还有一个反常识的建议:减少对 agent 的过度指定。

DHH 的经验是,过度详细的指令不但没用,还在伤害 agent,Opus 5 的系统提示词比 Opus 4 缩小了 80%。他援引了敏捷开发的老智慧:没有人真正知道自己要什么,直到拿到东西用上。所以抵抗"预先过度指定"的诱惑,先让它做出一个大致的东西,用着改。

不要先写一份三百行的规格说明书,然后要求 agent 严格照做。先让它做出一个粗糙的版本,然后你的品味才有施力的对象。

落在组织身上,是三件更具体的事:

其一,把流程、数据、权限改造为 agent 可读、可验证、可追责的接口。 这是未来十年企业 IT 最大的一笔重构投资,它的产出不面向人,而面向 agent。

其二,警惕组织成为杠杆的阻尼器。 如果实现不再是瓶颈,那么所有围绕"实现很贵"建立起来的流程(排期、评审、协调、汇报)都需要重新审视。它们的成本现在可能已经超过了它们要协调的东西。

其三,重新思考采购单位。 当 agent 能跨越多个系统完成任务,企业买的可能不再是"每个应用",而是"结果或流程"。这对 SaaS 的定价逻辑是一次根本性冲击。