读完 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 源码深度研究报告整理。*
夜雨聆风