乐于分享
好东西不私藏

Claude Code 源码深度拆解:如何从“第一档”升级到 10x 输出

Claude Code 源码深度拆解:如何从“第一档”升级到 10x 输出

大多数人打开 Claude Code,输入一个 prompt,等回应,再输入下一个 prompt。

这就像买了法拉利,却只用一档开车。

我好奇为什么有些人能从 Claude Code 里榨出 10 倍价值,于是我做了一件“合理”的事——把整个源码读了一遍(当然,是让 Claude Code 自己读的)。

11 层架构,数千行代码,这根本就是一个伪装成终端聊天的 Agent 编排平台
下面是源码真正告诉你该怎么用它的 9 大核心洞察。

1. CLAUDE.md 每一轮都会被完整加载(最高杠杆配置)

这是最重要的一点,几乎没人用对。

源码显示:每次你发消息,Claude Code 都会重新读取你的 CLAUDE.md 文件,不是只在会话开始时读,而是每一轮都读

文件层级(从高到低):

  • ~/.claude/CLAUDE.md—— 全局(你的编码风格、偏好)
  • ./CLAUDE.md—— 项目级(架构决策、规范)
  • .claude/rules/*.md—— 模块化规则
  • CLAUDE.local.md—— 私有笔记(被 gitignore)

你有40,000 字符的空间,大多数人只用了 200 字符。
把架构决策、文件规范、测试模式、“绝不要做的事”全部写进去。
这样 Claude Code 就不再是通用助手,而是专属于你的、熟悉你代码库的专属助手
读完这篇后,只做这一件事就值了。

2. 子 Agent 共享 Prompt 缓存(并行几乎免费)

这是最让我震惊的部分。

当 Claude Code 分叉子 Agent 时,它会创建一份字节级完全相同的父上下文,API 会缓存它。
所以同时启动 5 个 Agent 处理不同模块,成本几乎等于 1 个 Agent 顺序执行。

源码内置三种执行模式:

  • fork:继承父上下文,缓存优化
  • teammate:独立 tmux/iterm 窗格,通过文件邮箱通信
  • worktree:独立 git worktree,每个 Agent 一个分支

你可以一次让它启动 5 个 Agent:一个做安全审计、一个重构认证模块、一个写测试、一个更新文档、一个修 Bug——全部同时进行,共享缓存。
源码就是为并行设计的,单线程使用简直是犯罪。

3. 权限系统是用来配置的,不是用来点“允许”的

每次弹出“允许此操作?”并点 Yes,都是配置失败的表现。

源码里有 5 级设置层级。在~/.claude/settings.json里可以用 glob 模式设置“永远允许”的规则。

三种权限模式:

  • bypass:完全跳过权限检查(快但危险)
  • allowEdits:自动允许工作目录下的文件编辑
  • auto(最新):让 LLM 分类器判断每个操作(推荐甜点)

auto 模式可以配置自己的允许/拒绝列表,而且会并行跑多个解析器,谁先响应就用谁。
配置一次,以后永远不用再点鼠标。

4. 5 种压缩策略:上下文压力是真实问题

源码内置 5 种上下文压缩方式:

  1. 1. microcompact —— 按时间清除旧工具结果
  2. 2. context collapse —— 总结对话片段
  3. 3. session memory —— 把关键上下文提取到文件
  4. 4. full compact —— 总结整个历史
  5. 5. PTL truncation —— 丢弃最早的消息组

实际用法

  • • 主动用/compact命令,别等系统自动压缩丢掉重要信息
  • • 默认 200K tokens,可用[1m]模型后缀开启 100 万 tokens(大重构必备)
  • • 长会话会自动积累“session memory”(任务规格、文件列表、工作流状态、错误、经验)
  • • 大文件工具结果只发 8KB 预览到模型,保持输入精简

高手把/compact当作游戏存档点:保留重要信息,清除垃圾,继续前进。

5. Hook 系统才是真正的扩展 API(25+ 生命周期事件)

几乎没人知道的隐藏神器。

源码暴露了 25+ 个生命周期钩子(PreToolUse、PostToolUse、UserPromptSubmit、SessionStart 等)。

支持 5 种 Hook 类型:

  • • command(执行 shell)
  • • prompt(通过 LLM 注入上下文)
  • • agent(完整 Agent 验证循环)
  • • HTTP(调用 webhook)
  • • function(运行 JS)

真实例子:

  • • 每次写文件前自动 lint
  • • 编辑后自动跑测试
  • • 自动把最新文档注入每个 prompt
  • • 任务完成发 Slack 通知
  • • 代码上线前验证安全规范

尤其是UserPromptSubmitHook,能在每次你发消息时自动附加测试输出、git diff、项目状态——完全不用手动输入。

这才是把 Claude Code 变成自定义开发环境的正确方式。

6. 会话持久化 + 可恢复(别每次都从零开始)

每段对话都以 JSONL 格式永久保存。

支持:

  • --continue:继续上一个会话
  • --resume:选择历史会话
  • --fork-session:从历史分支(作者最爱)

Session Memory 会自动提取关键上下文,跨压缩持久保存。
大多数人每次打开都新建会话,就像每小时重启 IDE 一样,所有上下文、失败记录、经验全部清零。
永远用--continue,让上下文和经验不断累积。

7. 60+ 工具 + 智能批处理

工具分为两类:

  • 并发:只读操作(读文件、搜索、glob)并行执行
  • 串行:修改操作(编辑、写入、bash)逐个执行,避免冲突

还可以连接 MCP 服务器扩展工具,源码使用延迟加载——接 5 个 MCP 也不会拖慢每次请求。

8. 流式架构:随时打断零成本

整个管道使用 async generators,按 Esc 就能干净中断当前流,之前上下文完全保留。
别等一个明显跑偏的回答生成完,直接打断重定向——源码就是为这种“实时 pair programming”设计的。

9. 重试系统远比你想象强大

  • • 10 次指数退避重试 + jitter
  • • 401/403 自动刷新 OAuth
  • • Opus 连续 3 次 529 错误自动 fallback 到 Sonnet
  • • 流式 90 秒卡住自动切换非流式
  • • 持久模式无限重试

这意味着你可以放心让它后台跑,不用一直盯着。

TLDR:最高杠杆操作(直接抄走)

  • • 写好CLAUDE.md(每轮加载,40K 字符,最高杠杆)
  • • 用子 Agent并行(fork 模式,5 个 ≈ 1 个的成本)
  • • 在 settings.json 配置权限(彻底告别点击疲劳)
  • • 主动用/compact(5 种压缩策略不是白写的)
  • • 设置 Hooks(25+ 事件,这才是真扩展 API)
  • • 永远--continue会话(积累上下文)
  • • 接入 MCP 服务器(延迟加载,零成本)
  • • 随时打断重定向(零惩罚)

总结:Claude Code 根本不是一个聊天工具,它是一个披着终端 UI 的 Agent 编排平台
真正 10x 输出的人,不是 prompt 写得更好,而是配置了它、并行化了它、Hook 了它、让上下文跨会话积累

源码把这一切写得清清楚楚。现在,你也知道了。

(x原作者 @mal_shaik 推荐转发支持)