乐于分享
好东西不私藏

读完 Claude Code 源码,我终于懂了什么叫 AI 产品

读完 Claude Code 源码,我终于懂了什么叫 AI 产品

有人把 Claude Code 的源码扒开了。

结论很惊人:Claude Code 的强,不是来自一段神秘的 prompt。

它是一整套 Agent Operating System

先说本质差异

大多数 AI 产品是这样的:

– 一个大模型

– 一堆工具

– 一段 system prompt

– 调用工具,返回结果

Claude Code 完全不是这个架构。

其他产品是”让模型能做事”,Claude Code 是”让模型的行为可治理”。

大部分创新都是把问题搞复杂化,但 Claude Code 恰恰相反——它把系统能力结构化了。

Prompt 不是文本,是编排器

这是第一个本质差异。

大多数产品的 system prompt 是一段静态文本——写好之后,每次对话都用同一份。

Claude Code 的 system prompt 是动态拼装的。

你打开一个新会话,它注入基础规范。

你加载了一个 MCP 服务器,它自动注入这个 MCP 的使用说明。

你切换了语言,它注入语言设置。

按需加载,动态拼装。

更关键的是,它还做了缓存优化——静态部分可以缓存,动态部分按会话变化。

这意味着什么?

假设你开 10 个会话,每个会话的配置不同。

普通产品:10 个会话 × 完整 prompt = 10 倍 token。

Claude Code:静态部分缓存 1 次 + 动态部分 10 次 = 大幅节省。

这是把 prompt 当作工程资源来管理,不是当作文案来写。

做对的事情,和把事情做对,是两回事。大多数产品的 prompt 是在”把事情做对”——写一段好文本。Claude Code 的 prompt 是在”做对的事情”——设计一个可治理的架构。

行为边界:解决 AI 的”手痒”问题

这是第二个本质差异。

你有没有遇到过这种 AI:

你让它改一个变量名,它顺便把整个文件的命名风格都统一了。

你让它加个功能,它顺便加了三个”可能有用的”功能。

你让它写个函数,它顺便写了完整的错误处理、类型注解、文档字符串。

这不是能力问题,是行为漂移

大多数 AI 的 prompt 里只写了”帮助用户完成任务”,没有写”不要做什么”。

Claude Code 在 prompt 里把”不要做什么”写死了:

– 不要加用户没要求的功能

– 不要过度抽象

– 不要瞎重构

– 不要乱加注释

– 不要做不必要的错误处理

– 先读代码再改代码

– 删除确认没用的东西,不搞兼容垃圾

做不好的就别做了,要做就必须做到非常好。Claude Code 用 prompt 把”不要做什么”写死了——这不是保守,是边界清晰。

Agent 分工:不是万能工人,是专家系统

这是第三个本质差异。

大多数产品的 agent 是一个万能工人——什么都做。

Claude Code 的 agent 是分工明确的专家系统:

Explore Agent:只探索,不修改。用 Glob/Grep/FileRead 快速扫代码库,给结果就走。

Plan Agent:只规划,不动手。输出实施计划,列出关键文件。

General Purpose Agent:执行。

Verification Agent:验证,而且是对抗性验证

草莽企业起于民间,抓住一个机会崭露头角。但速生速死,一岁一枯荣。大多数 AI 产品的 agent 就是草莽企业——什么都能做,但什么都不精。

Claude Code 的 agent 是腰部企业——每个 agent 有自己的生态位,有明确的边界。

Explore Agent 甚至在 prompt 里明确规定:

– 不能创建文件

– 不能修改文件

– 不能删除文件

– 不能运行任何改变系统状态的命令

它被故意裁成了一个只读专家

验证:不信任”看起来没问题”

这是第四个本质差异。

普通 AI 验证是什么?跑一下测试,过了就说”验证通过”。

你有没有遇到过这种情况:测试全绿,但上线就崩了。

Claude Code 的 Verification Agent 不一样。它的任务不是”确认没问题”,是 try to break it

它会:

– 再跑一遍 lint

– 再检查类型

– 再跑边缘用例

– 再测错误路径

– 再看有没有遗漏的文件

– 最后输出 VERDICT: PASS / FAIL / PARTIAL

需要说明书的产品不是好产品。Verification Agent 的设计恰恰相反——它不信任”看起来没问题”,它要跑、要测、要对抗。

它不信任表面,它要证明没问题。

Fork:让子任务并行但不污染主上下文

这是第五个本质差异。

假设你要开发一个大功能:先探索依赖库,再写原型,再写正式实现。

普通 AI 怎么做?

顺序执行。探索的输出塞进上下文,原型的输出塞进上下文,上下文越来越臃肿,后面的任务越来越难做。

Claude Code 的 fork 怎么做?

开三个子任务,每个独立跑。

主线程等结果,但上下文不膨胀。

而且三个子任务共享 prompt cache,不白烧 token。

延迟满足感程度在不同量级的人是没法有效讨论问题的。大多数 AI 产品的 fork 是”立即满足”——开个子任务,跑完就完。

Claude Code 的 fork 是”延迟满足”——子任务跑,主线程等,但 cache 复用,token 不白烧。

为什么其他产品做不到

不是技术难度,是产品思维的差异。

大多数 AI 产品的思路:

– 找一个好模型

– 写一段好 prompt

– 接一堆好工具

– 看效果

Claude Code 的思路:

– 把 prompt 当作可编排的运行时资源

– 把工具调用当作需要权限和治理的执行管线

– 把 agent 当作分工明确的专家系统

– 把 cache、token 成本、用户体验当作工程问题

一个是”堆能力”,一个是”建系统”。

一句话带走

Claude Code 的强,不是一段 prompt 的强。

是一整套 Agent Operating System 的强。

如果只能记住一件事:

好的 AI 产品,不是让模型更聪明,是让模型的聪明能稳定地变成行动。

什么叫稳定?就是 AI 改一个 bug,就只改那个 bug。不会顺便重构,不会加功能,不会引出新问题。

这叫稳定。

*基于 Claude Code 源码深度研究报告整理。*