Eight More Months of Agents

AI Agent 编程实践八个月后的深度复盘
作者:David Crawshaw | 发布时间:2026年2月8日 | crawshaw.io
AI Agents Programming Developer Tools Future of Software

文章概述

David Crawshaw 是一位资深程序员,曾在 Google 等大型科技公司工作,后来创业。他在一年前写下了使用 LLM 辅助编程的经验,八个月前更新了关于 Agent 的探索。这篇文章是他对过去八个月的再次复盘——一个处于 AI 编程最前沿的从业者,对行业现状的冷静观察和深刻洞见。

文章的核心论点异常鲜明:Agent 的 harness(框架)没有多大进步,但模型能力的跃升已经彻底改变了编程范式。IDE 正在衰落,前沿模型是唯一选择,而大多数软件产品在当前时代已经「形状错误」——需要为 Agent 时代重新设计。

一、Agents 一年间的巨大进步

1.1 模型能力是关键,harness 只是配角

Crawshaw 在 Claude Code 发布 12 个月前就开始原型化自己的 Agent「Sketch」,所以他亲历了整个 Agent 浪潮的起步。他的判断非常直接:Agent harness 自那以后没有太大改进。六个月前 Sketch 能做的事情,今天最流行的 Agent 也做不到。

他将 Agent harness 的创新比作「1990年代兆赫兹爆发时期的编译器优化」——诚然重要,但不是当时最激动人心的领域。真正改变一切的,是模型本身

1.2 模型能力的定性跃升

Crawshaw 给出了一个极具说服力的个人数据点:

时间点模型Crawshaw 代码占比
2025年2月Claude Code(早期)约 25%
2026年2月Opus(最新)约 90%

他特别强调:所有这些代码都需要仔细阅读,经常需要调整——但现在他可以并且确实依赖模型来完成这些调整。这意味着 Agent 已经从「帮你写初稿」进化到了「帮你写、改、调全流程」。

1.3 没有「顿悟时刻」,只有持续积累

与 GPT-2 那种「突然开始对话」的质变不同,这一年的进步是巨大但渐进的增量改进。Crawshaw 认为,这种「全部可观察到的定性进步」是他今天看到的最积极的经济信号。

1.4 工作模式的彻底转变

Crawshaw 给出了一个令人震惊的工作时间分配变化:

场景读代码 : 写代码
大公司时期80 : 20
创业早期(Agent 前)50 : 50
现在(Agent 时代)95 : 5

这意味着他现在的编程工作几乎完全变成了阅读理解 + 指导 Agent,实际手写代码的时间压缩到了极限。这不是简单的效率提升,而是工作本质的转变

二、IDE 正在衰落

2.1 IDE 的历史悖论

Crawshaw 对 IDE 的历史做了一个精辟的回顾。IDE 的理念无可辩驳——提供一个完整一致的开发环境。但现实中,编程环境一直是「一团糟」(a hot mess)。Unix 很棒,但人们在它之上堆砌了太多东西;Win32 API 也经历了同样的命运。

"By far the greatest IDE I have ever used was Visual Studio C++ 6.0 on Windows 2000. I have never felt like a toolchain was so complete and consistent with its environment as there."
—— David Crawshaw

2.2 Copilot 让 IDE 看似不可战胜

2021年 GitHub Copilot 发布后,IDE 似乎成了必然选择。LLM 辅助的自动补全和编辑功能太强大了,让人不得不忍受 IDE 与环境的适配痛苦。Crawshaw 说 Copilot 让他的「打字效率提升了 50%」,而编程很大程度上是打字受限的,所以效果巨大。

"In 2021, the IDE had won."
—— David Crawshaw

2.3 Agent 带来惊人的逆转

然而仅仅四年后,Crawshaw 已经不再使用 IDE 了。这种「确信 IDE 是未来」到「回到 Vi」的惊人逆转,让他自己都感到意外。

"In 2026, I don't use an IDE any more. The degree of certainty I felt about a copilot future, and the astonishing whiplash as agents gave me a better tool not four years later still surprises me."
—— David Crawshaw

他现在唯一使用的「IDE 功能」是 go-to-def(跳转到定义),而这是 neovim 稍加配置就能实现的。所以他回到了 Vi——而 Vi 今年正好 50 岁

核心洞见:Agent 不是让 IDE 变得更好,而是让 IDE 变得不必要。当 AI 可以直接理解整个代码库、执行命令、修改文件时,IDE 提供的语法高亮、自动补全、项目管理等功能,相对于 Agent 的能力而言已经微不足道。一个轻量级的编辑器 + 一个强大的 Agent,胜过最复杂的 IDE。

三、使用非前沿模型是「主动有害」的

3.1 错误的学习成本

Crawshaw 的措辞非常严厉:使用便宜的模型(如 Sonnet)或二流本地模型,不仅仅是浪费时间,你会学到错误的经验教训

"But if you try some penny-saving cheap model like Sonnet, or a second rate local model, you do worse than waste your time, you learn the wrong lessons."
—— David Crawshaw

原因在于:Agent 工作的很大一部分是发现模型的能力边界。如果这些边界不断变化(现在确实如此),你需要不断重新学习。但如果你用一个弱模型来探索边界,你会形成对「模型能做什么」的错误认知——而这种认知会严重拖累你当使用前沿模型时的效率。

3.2 对本地模型的复杂态度

Crawshaw 自称比任何人都更希望本地模型成功。他坦言,直到 Mixtral 发布、他能在本地跑起来之前,他一直觉得 LLM 「完全无趣」。他相信本地模型最终会赢——当前沿模型面临收益递减时,本地模型会迎头赶上。

他的判断:

  • 前沿模型终将面临收益递减(diminishing returns)
  • 本地模型会迎头赶上,最终赢得市场
  • 那一天会很美好——我们不再受制于云端模型
  • 在那天到来之前,除非你使用最好的模型,否则你无法知道模型真正能做到什么

所以他给出的实用建议是:为 Opus 或 GPT-7.9-xhigh-with-cheese 支付高昂费用。别担心,这只是暂时的——「只需要几年」。

四、内置 Agent 沙盒不起作用

4.1 沙盒的噩梦

Crawshaw 描述了使用 Claude Code 和 Codex 时的挫败体验:Claude Code 不断请求运行 cat foo.txt 的许可,Codex 声称无法在其「非常复杂的沙盒」中执行 go build。这种内置沙盒的设计本意是安全,但实际体验是灾难性的——它不断打断工作流,制造无意义的摩擦。

4.2 解决方案:新鲜 VM

Crawshaw 尝试过几乎所有方案,最终推荐:使用一个全新的虚拟机(fresh VM)。这意味着你需要自己提供沙盒环境,而不是依赖 Agent 内置的限制性沙盒。

为什么 VM 更好:

  • 完整的环境控制权——Agent 可以执行任何需要的命令
  • 真正的隔离——不会影响主机系统
  • 可抛弃性——用完即弃,保持环境纯净
  • 这正是 Crawshaw 构建 exe.dev 的核心动机之一

五、程序数量暴增,编程乐趣倍增

5.1 从 TODO 笔记到真实程序

Crawshaw 说他现在拥有的程序和服务比以前多得多。这也是他建造 exe.dev 的原因——他需要一个 VM,里面运行着一个不受约束的 Agent,可以随手启动,然后把原本会写在 Apple Notes 的 TODO 里、然后遗忘的一句话,变成一个真实可用的程序。

"I need a VM, with an unconstrained agent, that I can trivially start up and type the one liner I would have otherwise put into an Apple Note named TODO and forgotten about."
—— David Crawshaw

很多时候,他的 Agent「Shelley」能把一句简单的描述变成一个有用的程序。

5.2 编程从未如此有趣

Crawshaw 说他现在比以往任何时候都更享受编程,因为很多以前「希望有时间写」的程序,现在真的存在了。他希望那些对 Agent 带来的变化感到恐惧的人也能体验到这种快乐。

"I am having more fun programming than I ever have, because so many more of the programs I wish I could find the time to write actually exist."
—— David Crawshaw

他理解恐惧本身——他对「智能即服务」(intelligence on tap)在社会中的终极走向也有担忧。但在「编写计算机程序」这个有限领域内,这些工具带来了前所未有的探索和乐趣。

六、对反 LLM 论点的无法理解

6.1 承认变化的复杂性

Crawshaw 首先展现了平衡的态度。他承认新技术带来挑战和合理担忧——他每周都会看到 Agent 灾难性失败几次;劳动力市场变化有好有坏。他用了一个有力的类比:

农业就业的类比:

  • 1900年:33% 美国人住在农场,40% 从事农业
  • 2000年:不到 1% 住在农场,1% 从事农业
  • 这是一个净收益——我们不必为了吃饭而工作
  • 但过程中确实发生了大量痛苦和心碎

所以「担忧是合理的」。但 Crawshaw 说,他看到的大部分反 LLM 论调,已经不是对现实的审慎分析了。

6.2 「就像说木工应该禁止使用电动工具」

Crawshaw 的核心论点:现在的反 LLM 强硬立场,对他来说就像有人说「木工应该禁止使用电动工具」一样不可理解。

"It sounds like someone saying power tools should be outlawed in carpentry. I deeply appreciate hand-tool carpentry and mastery of the art, but people need houses and framing teams should obviously have skillsaws. To me that statement is as obvious as 'water is wet'."
—— David Crawshaw

他区分了两件事:对「手工木工」的欣赏(他深表敬意)和对「电动工具禁令」的反对(他认为不言而喻)。LLM 是工具,而工具是为了解决问题。

七、软件的形状需要彻底改变

7.1 大多数软件已经「形状错误」

Crawshaw 的核心判断:大多数软件的形状是错误的,大多数解决问题的方式也是错误的。他用 Stripe Sigma 的例子来论证这一点。

7.2 Stripe Sigma 案例:三句话打败一个产品

背景:Stripe Sigma 是一个为 Stripe DB 提供的 SQL 查询系统,内置了一个 LLM 辅助写查询。但这个 LLM 不太好,而且 Sigma 先推出了 UI,API 还在 private alpha。

Crawshaw 的做法:他让 Agent 从零开始做 ETL——用标准 Stripe API 查询账户所有数据,构建本地 SQLite DB。现在他的 Agent 对这个本地 DB 的查询能力,远超 Stripe Sigma。

投入:三句话的描述。

产出:一个比商业产品更好地解决了他问题的方案。

"I implemented that entire Stripe product (as it relates to me) by typing three sentences. It solves my problem better than their product. That's the world we are in today."
—— David Crawshaw

7.3 为什么云是最糟糕的产品

Crawshaw 说,在这个新世界里,他每天不得不用的最糟糕的产品就是「云」(clouds)。这也是他建造 exe.dev 的根本原因——整个产品的核心理念是:你永远不应该觉得你的 Agent 需要重写产品的一部分

7.4 新的编程哲学

Crawshaw 提出了一条他现在应用于一切的编程哲学:

"The best software for an agent is whatever is best for a programmer."
—— David Crawshaw 的核心哲学

这句话的深层含义值得拆解:

  • 传统逻辑:产品经理必须温和地告诉工程师——你不是客户。产品需要为真实客户设计,而不是为开发者自己设计。
  • Agent 时代逻辑:每个客户都有一个 Agent,会为TA写代码来对接你的产品。如果你建造的是程序员喜欢的东西,那么每个人的 Agent 都能轻松使用它——于是所有人都跟来了。
  • 本质变化:「开发者体验(DX)」不再只是吸引开发者的策略,而是通向所有终端用户的门户

Crawshaw 希望这个哲学能经受住 LLM 未来一年变化的考验。

深度分析:这篇文章的价值所在

1. 来自一线从业者的真实信号

与很多「AI 评论员」不同,Crawshaw 是真正每天用 Agent 写代码的人。他的数据不是来自 benchmark,而是来自自己的 git history 和时间追踪。这种「定性的、但来自实践」的信号,可能比任何量化指标都更有价值。

2. 对「Agent 框架 vs 模型」的清醒判断

市面上充斥着各种 Agent 框架(AutoGPT、LangChain、CrewAI 等),但 Crawshaw 的观察是:框架创新有限,模型进步才是驱动一切的引擎。这与很多创业者的叙事相反——他们倾向于夸大自己框架的价值。Crawshaw 的「编译器优化」类比非常精准。

3. 对 IDE 死亡的预言

如果说 Copilot 让 IDE 变得不可或缺,那么 Agent 可能让 IDE 变得可有可无。这是一个巨大的范式转移——从「增强编程环境」到「替代编程环境」。Crawshaw 从 VS6.0 到 Vi 的 25 年轮回,是一个动人的个人叙事,也是一个行业隐喻。

4. 对软件产业的根本挑战

「软件形状错误」是一个深刻的诊断。当用户可以用三句话让 Agent 实现一个比商业产品更好的方案时,传统软件公司的价值主张是什么?API-first、文档质量、开发者体验——这些在 Agent 时代会变成核心竞争力,而 UI 和「功能列表」的重要性会下降。

5. 关于恐惧与乐观的平衡

Crawshaw 不是无脑乐观主义者。他承认恐惧、承认失败、承认社会转型的痛苦。但他拒绝让这种谨慎滑向「禁止使用电动工具」的荒谬立场。这是一种成熟的、有同理心的技术乐观主义。

关键收获

  • 模型 > 框架:Agent harness 的创新有限,前沿模型能力的提升才是改变一切的力量。投资模型,别过度投资框架。
  • IDE 正在过时:一个轻量级编辑器 + 强大 Agent 的组合,正在取代传统 IDE。编程从「打字」变成「阅读和指导」。
  • 只用前沿模型:用便宜模型不仅浪费时间和金钱,还会让你形成错误的认知边界。在本地模型赶上之前,为最好的模型付费。
  • 自建沙盒:内置沙盒体验糟糕,fresh VM 是目前最好的 Agent 运行环境。
  • 编程乐趣回来了:Agent 让许多「想做但没时间做」的程序成为现实,编程的快乐正在回归。
  • 软件需要重新设计:大多数现有软件的形状是错误的。API-first、优秀的开发者体验、可被 Agent 理解和操作——这些会成为新的核心竞争力。
  • 最好的 Agent 软件 = 最好的程序员软件:当每个用户都有一个 Agent 时,为程序员设计的接口就是为所有人设计的接口。