2.0 Claude Code Overview¶
核心洞察
Claude Code 的State Management哲学可以用一句话概括:在单进程 CLI 内追求极致的 Prompt Cache 命中率。这个目标贯穿了所有State Management决策——system prompt 的静态/动态分区是为了缓存,六层压缩前三层是为了保护缓存,Fork Sub-agent 复用父级前缀还是为了缓存。理解了这一点,就理解了 Claude Code 的全部设计选择。
分析基础¶
| 项目 | 值 |
|---|---|
| 版本 | v2.1.88 |
| 来源 | npm source map 泄露的完整 TypeScript 源码 |
| 规模 | 1,884 个 .ts/.tsx 文件,~512,000 行 |
Claude Code 是一个单进程终端应用。所有状态驻留在进程内存中,进程退出即会话结束。这意味着它不需要处理持久化、序列化、数据损坏等问题——但也放弃了跨会话状态恢复。
State Management 核心原则¶
1. 先缓存,后计算
任何可以缓存的东西都会被缓存。system prompt 静态区跨组织共享(scope: 'global')、Context 函数用 memoize 每会话只算一次、Fork Agent 继承父级完整缓存前缀。这在后续的Context Management和 Sub-agent 章节中反复体现。
2. 用模型解决模型的问题
Memory 选择不用向量检索,用 Sonnet 判断相关性(Memory 系统);权限不用规则引擎,用 LLM 分类器推理安全性(Tool Management)。这是 Anthropic 调用自家模型边际成本极低的独特优势。
3. 显式优于隐式
Memory 系统有「不保存」清单和「信任验证」规则(Memory 系统);压缩有精确到个位数的 token 阈值(Context Management);Skill 有 16 个 frontmatter 字段精确控制可见性和行为(Skill 系统)。
独有的状态注入机制¶
Claude Code 有一个其他框架没有的设计:Attachment 系统。它是 system prompt 和对话消息之外的第三条状态注入通道,每个 turn 并行计算 30+ 类动态 Context(Skill 列表、文件变更、工具 Delta、任务提醒等),以 <system-reminder> 标签注入对话。这使得 Claude Code 的 LLM 在每个决策点能感知到比其他框架更丰富的「世界变化」。