← pinyu.ai
Engineering Deep Dive

Less Code, More Model

Claude Code 的构建哲学——一个关于"做减法"的产品故事。从 AppleScript 音乐控制到年营收 $500M+,Anthropic 创始工程师揭示了一系列反直觉的构建原则。

基于 The Pragmatic Engineer 深度访谈 · 2025.09 原文
Core Thesis

Claude Code 的成功不在于写了多少代码,而在于尽可能少写代码——让模型的原始能力直达用户
行业在拼命造更好的 AI 模型时,Anthropic 发现:模型的能力早已溢出,真正的瓶颈是包裹它的产品层。他们称之为 "Product Overhang"。

实证:Claude Code 90% 的代码由自身编写。每次模型升级,团队删除代码而非新增。Claude 4.0 发布时,他们删掉了一半的 system prompt。
01

从 AppleScript 到文件系统

一个偶然发现如何变成 $500M+ 产品

2024 年 9 月,Boris Cherny 加入 Anthropic,为了熟悉 API 开始在终端里做各种原型。第一个版本极其简陋——不能读文件,不能运行命令,唯一能做的是通过 AppleScript 告诉他正在听什么音乐。

转折来自一个简单的决定:给它访问文件系统的能力

I tried giving it some tools to interact with the filesystem… Suddenly, this agent was really interesting. I ran it in our codebase, and just started asking questions. Claude then started exploring the filesystem and reading files. It would read one file, look at the imports, then read the files that were defined in the imports! It went on, until it found a good answer.

— Boris Cherny, founding engineer
关键概念 · Product Overhang
模型已经能做某件事,但承载它的产品没有把这种能力释放出来。Boris 给了 Claude 文件系统访问权后,模型自发地沿着 import 链遍历代码库——这个能力一直在那里,只是从没有产品去"接住"它。

病毒式传播

Boris 开始每天在工作中使用这个原型,两个月后(2024 年 11 月)发布了内部 dogfooding 版本。

内部争论:该不该发布?
团队曾认真考虑将 Claude Code 作为内部"秘密武器",不对外发布。最终决策链:Anthropic 本质是模型安全公司 → 学习安全的方式是让人使用工具 → 全公司都上瘾了,说明外部用户也会用 → 发布它能学到更多关于模型安全和能力的知识。

反共识之处:大多数公司会把内部工具当护城河。Anthropic 选择把它变成学习安全的手段——把竞争优势转化为研究优势。
02

"On Distribution" 技术栈

选技术栈的新标准:AI 擅长什么比人擅长什么更重要

Claude Code 的技术栈:TypeScript + React (Ink) + Yoga + Bun。选择标准从"团队熟悉什么"变成了"模型在什么技术上已经很强"。

传统思维
团队熟悉 → 选技术栈 → AI 辅助
VS
新范式
AI 擅长 → 选技术栈 → AI 构建 90% 的代码
反共识
"On distribution" 是 AI 术语——模型训练数据覆盖良好的领域。团队选 TypeScript 和 React,原因很简单:Claude 在这些技术上训练数据最丰富,能直接上手写代码。

推论:如果你的目标是让 AI 写大部分代码,那技术栈选择的第一变量不再是人的偏好,而是模型的能力分布。

We wanted a tech stack which we didn't need to teach: one where Claude Code could build itself. And it's working great; around 90% of Claude Code is written with Claude Code.

— Boris Cherny

90% 自构建不是花哨的营销数字——它直接影响了开发速度:每位工程师每天约 5 个 PR,每天 60-100 次内部发布,每天 1 次外部发布。

90%
代码由 Claude Code
自身编写
~5
PR / 工程师 / 天
(行业常规 1-2)
60-100
内部发布 / 天

03

做减法的架构

最反直觉的工程决策——一个随时间变简单的产品

Claude Code 做了很多复杂的事:遍历代码库、读写文件、运行命令。但它的架构出奇简单——只是模型外面裹了一层极薄的壳。

  1. 定义 UI,暴露 hooks 让模型操控
  2. 暴露工具(文件系统、bash 等)供模型调用
  3. 然后,闪开

This might sound weird, but the way we build this is we want people to feel the model as raw as possible. We have this belief the model can do much more than products today enable it to do.

When you look at a lot of coding products, they get in the way of the model; they add scaffolding by adding UI elements and other parts that clutter things, so that the model running in those tools feels like it's hobbling on one foot.

— Boris Cherny
隐含批评
大多数 AI 产品在模型外面堆了太多"脚手架"——精心设计的 UI、复杂的 prompt 管理、各种中间层。这些本意是"帮助用户"的功能,实际上限制了模型。模型像是拄着拐杖走路。

每次模型升级,删代码

软件通常随时间积累复杂度。Claude Code 恰好相反:每次模型升级,他们删除代码

Every time there's a new model release, we delete a bunch of code. For example, with the 4.0 models, we deleted around half the system prompt because we no longer needed it. We try to put as little code as possible around the model, and this includes minimizing prompting and minimizing the number of tools. We constantly delete tools and experiment with new ones.

— Boris Cherny
反共识 · 反向复杂度
传统软件:功能累积 → 代码增长 → 复杂度上升。
Claude Code:模型变强 → 代码减少 → 产品变简单。

这意味着产品的技术债是负的——模型进步自动偿还债务。System prompt 减半、工具数量减少、业务逻辑精简。产品越来越轻,靠的是模型变强,无需额外重构。

不用虚拟化——本地运行

是否在 Docker 容器或云端沙箱中运行?团队选了最简单的方案:直接本地运行。读写文件系统,执行 bash 命令,没有虚拟化层。

With every design decision, we almost always pick the simplest possible option. What are the simplest answers to the questions: "where do you run batch commands?" and "where do you read from the filesystem?" It's to do it locally.

— Boris Cherny

最复杂的部分:不是 AI,是权限

Claude Code 中最复杂的部分是什么?不是代码生成,不是文件遍历——是权限系统

本地运行意味着 agent 可能做不可逆的事(删文件等)。团队设计了一个简单但多层的权限系统:执行操作前请求许可,用户可以一次性授权、永久授权或拒绝。设置可以按项目、用户、公司三级配置,团队间可共享白名单。

启示
当 AI 能力问题基本解决后,信任和安全才是最难的工程问题。这与行业对"让 AI 更聪明"的执念形成对比。Claude Code 的核心工程投入不在智能上,而在"如何安全地放权"上。
04

20 个原型 / 2 天

AI 如何改变设计探索的经济学

Boris 在两天内为 Todo List 功能做了约 20 个原型。以前两天能做两个原型就算快了。每个原型的迭代循环:

  1. 用自然语言给 Claude Code 描述想法
  2. Claude Code 生成可运行的实现
  3. Boris 试用、感受、微调
  4. 分享给同事获取反馈
  5. 如果感觉不对,用新 prompt 从头开始

原型演化路径

#1 列表式
#2 内联
#3-4 药丸按钮
#5-6 抽屉动画
#7-9 输入框上方
#10-20 Spinner

注意有多少方案被丢弃了。药丸按钮、抽屉动画、内联显示——每个都是可行的设计,但都不够"对"。传统流程中,每个方案可能花一天实现,根本不舍得扔;用 AI 迭代,丢弃成本趋近于零。

反共识 · 探索的经济学
传统原型的成本结构:实现贵 → 探索少 → 过早收敛到第一个"还行"的方案
AI 原型的成本结构:实现几乎免费 → 探索多 → 通过大量丢弃找到真正"对"的方案

关键收益是"探索了 10 倍多的设计空间",而不只是更快做完。产出质量来自探索的广度。
Subagents:3 天构建,2 天的工作被扔掉
Claude Code 的 subagents 功能(让主 agent 派出子 agent 并行工作)在 3 天内构建完成。但其中 2 天的工作被完全丢弃。

这不是失败——这是探索。当丢弃的成本降到足够低,"浪费"就变成了"搜索"。

05

Brooks' Law 失效

团队翻倍,产出不降反升 67%

Brooks' Law(《人月神话》,1975):向延期的项目增加人手只会让它更延期。原因:新人需要 onboarding,老人花时间带人,沟通成本 O(n²) 增长。

Anthropic 的工程团队在采用 Claude Code 的同时人数翻倍。按 Brooks' Law,人均 PR 产出应该下降。

Brooks' Law 预测
团队 2x → 沟通成本 ↑ → 人均产出 ↓
VS
实际结果
团队 2x + Claude Code → 人均 PR 产出 +67%
可能的解释
Claude Code 压缩了两个关键瓶颈:上下文获取(新人不用反复问同事代码怎么工作,问 Claude Code)和实现速度(写代码本身更快)。Brooks' Law 的核心假设——人际沟通是必要的知识传递通道——被 AI 部分绕过了。
不仅是程序员在用
Boris 在办公室走过数据科学家的工位时,发现他们也在用 Claude Code——自发地用它写查询和做可视化。产品名字叫 "Claude Code",但用户不在乎名字,只要工具能解决问题。

启示:当工具足够通用且足够简单时,它会自发渗透到设计者未曾预见的场景中。用户永远比产品经理更有创意。
06

AI-First 工程的形态

核心转变:围绕 AI 重新设计整个工程流程

文章揭示了 Anthropic 内部工程文化的几个特征,可能预示了 AI-first 团队的未来形态:

TDD 复兴

测试驱动开发回来了

AI agent 擅长写代码但不擅长自我验证。TDD 提供了客观的正确性标准——先写测试,让 agent 对着测试写实现。在 AI 时代,这成了纯粹的实用约束。

AI Code Review

Agent 做第一轮审查

让 AI agent 执行代码审查和测试。人类工程师聚焦在 agent 无法判断的部分:架构决策、产品方向、边界情况。

谨慎使用 Feature Flag

简化发布流程

高频发布(每天 60-100 次内部发布)要求极简的发布流程。Feature flag 的使用是谨慎的——因为它们增加了代码路径的复杂度,而团队的首要原则是简化。

事件自动化

Agent 响应 Incident

自动化 incident 响应。当系统出问题时,agent 可以参与诊断和修复流程——因为它已经能遍历代码库和运行命令。

重要的上下文
Anthropic 有独特条件:工程师水平极高,且他们自己构建底层模型。这些实践不一定能直接复制到其他团队。但作为趋势方向——AI 参与审查、测试、incident 响应——值得关注。

综合

七个反直觉原则

从 Claude Code 的构建中提炼出的范式转移

  1. Product Overhang:瓶颈不在模型能力,在产品设计。大部分 AI 产品的问题是"包得太厚",不是"模型太弱"。
  2. On Distribution Tech Stack:为 AI 选技术栈,不为人选。当 90% 的代码由 AI 写时,AI 的能力分布比人的偏好更重要。
  3. 反向复杂度:好的 AI 产品随时间变简单,不变复杂。模型进步 = 代码减少。
  4. 最小业务逻辑:不要试图"帮助"模型。暴露工具,闪开。脚手架越多,模型越瘸。
  5. 信任 > 智能:AI 产品最难的工程问题在于设计可信的权限系统,智能本身反而好解决。
  6. 探索 > 执行:AI 把原型成本降到接近零,设计质量来自探索 10 倍多的方案后的自然筛选。
  7. Brooks' Law 可被绕过:AI 替代了一部分人际知识传递,新人 ramp-up 更快,沟通成本的 O(n²) 增长被部分抵消。
Takeaway

Claude Code 的故事揭示了一个正在发生的范式转移:AI 产品的核心竞争力在于"挡在模型和用户之间的东西有多少能删掉"。最好的 AI 产品,是让你感觉不到产品存在的那一个。

延伸阅读
The Profession, Refactored →
Claude Code 引发了什么?Karpathy 从"slop"到"magnitude 9 earthquake"只用了两个月——三个模型的密集发布如何触发整个行业的认知翻转。
Closing the Loop →
Claude Code 90% 自构建、AI 写 AI——这背后的驱动力是什么?控制论提供了一个框架:反馈回路一旦闭合,加速就是必然。