神人拆解CC源码!源码里真正的高杠杆用法;ClaudeCode本质上是一个多Agent编排平台

AITNT
未登录
正文
资源拓展
神人拆解CC源码!源码里真正的高杠杆用法;ClaudeCode本质上是一个多Agent编排平台
2026-04-01 10:13

神人拆解CC源码!源码里真正的高杠杆用法;ClaudeCode本质上是一个多Agent编排平台


Claude Code 源码泄露为业界一下子打开了 Agent 进化的大门。


就在刚刚,X上一位联合创始人@mal_shaik 将这次事故比做“反向产品发布”。


他在拆解完源码之后,给出了一个被严重低估的事实:Claude Code 从来就不是一个聊天式编程工具,而是一套已经成型的 Agent 编排系统,只是被包裹在一个过于“轻量”的终端界面之下。


从架构设计来看,这套系统的核心不在于模型能力本身,而在于一整套围绕上下文管理、任务并行、工具调度和系统扩展构建的工程体系。比如,CLAUDE.md 在每一轮对话中的重复加载,本质上是在用“持续注入上下文”的方式,将一次性 prompt 变成长期配置;而子 Agent 共享缓存的机制,则直接把并行执行的成本压缩到接近单线程水平,这在当前大模型产品中并不常见。


更值得注意的是,Claude Code 在多个关键环节都表现出明显的“平台化”倾向。Hook 系统提供了超过 25 个生命周期切入点,使其具备类似插件系统的扩展能力;MCP 工具的延迟加载机制,则意味着它天然可以接入外部服务生态,而不会牺牲基础性能;会话持久化与 session memory 的设计,让上下文不再是一次性资源,而是可以累积、复用的长期资产。


与此同时,CC源码也侧面印证了当前大模型工程的一个现实瓶颈:上下文管理已经成为系统复杂度的核心来源。五种压缩策略、分层权限控制、流式中断与重试机制,本质上都是在对抗“上下文膨胀”和“系统不稳定性”这两个问题。


综合来看,真正拉开用户差距的,并不是谁更会写 prompt,而是谁开始把 Claude Code 当作一套“可配置的开发基础设施”来使用——包括前置规则设计、并行任务拆分、自动化流程嵌入,以及跨会话的上下文经营能力。


话不多说,这份CC源码拆解,希望能给到大家以新的启发。


11层架构、CC本质上是伪装成聊天工具的Agent编排平台


大多数人打开 Claude Code,输入一个提示词,等待回复,再输入下一个提示词。


这就像买了一辆法拉利,却一直挂在一档开。


我想搞明白,为什么有些人从 Claude Code 里获得的效率比别人高 10 倍。于是我做了一个“正常人都会做”的决定:把它的全部源代码读了一遍(我说的“我”,当然是指 Claude Code 自己)。


11 层架构,成千上万行代码——一个伪装成终端聊天工具的 Agent 编排平台。


下面是源代码真正揭示的使用方法:


1. CLAUDE.md 每一轮都会被加载


这是你能做的杠杆最大的一件事,但几乎没人用对。


大多数人的 CLAUDE.md 不是空的,就是写成了一本“圣经”。


但源代码显示:Claude Code 会在每一次查询迭代中读取你的 CLAUDE.md,而不是只在会话开始时读取。这意味着——每次你发消息,它都会重新读一遍你的指令。


而且它有一整套层级结构:


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


你有 40,000 字符的空间,这非常多。但大多数人只用了 200。


把你的架构决策写进去。文件约定写进去。测试模式写进去。以及那些“绝对不要这样做”的规则。


模型会在每一轮读取它们。


这就是 Claude Code 从“一个通用助手”变成“一个真正懂你代码库的专属助手”的关键差别。


如果你读完只做一件事,那就做这个。


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


这是最让我震惊的一点。


当 Claude Code fork 一个子 Agent 时,它会创建一个与父上下文字节级完全一致的副本。而 API 会对这个上下文做缓存。


所以——同时启动 5 个 Agent 处理不同任务,成本几乎和 1 个 Agent 顺序执行差不多。


再读一遍。


5 个 Agent,成本≈1 个。因为它们命中了同一个 prompt cache。


但大多数人是怎么用的?把 Claude Code 当成一个单线程打工人:


做一个任务 → 等 → 再给下一个任务。


而源码里,子 Agent 有三种执行模型:


  • fork —— 继承父上下文,缓存最优
  • teammate —— 在 tmux 或 iTerm 中开独立面板,通过文件“邮箱”通信
  • worktree —— 每个 Agent 一个独立 git worktree,各自分支隔离


你完全可以让 Claude Code 同时跑 5 个 Agent:一个做安全审计,一个重构认证模块,一个写测试,一个更新文档,一个修 bug——全部并行执行,共享缓存


这个架构本来就是为并行设计的。


你却把它当单线程用,简直是在浪费。


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


每当 Claude Code 弹出“是否允许这个操作?”而你点了“是”,这不是一个功能,这是配置失败。


源码里有一个五层权限配置体系:


policy > flag > local > project > user


在 ~/.claude/settings.json 里,你可以用 glob 模式定义哪些操作默认允许,例如:


{

 "permissions": {

  "allow": [

   "Bash(npm *)",

   "Bash(git *)", 

   "Edit(src/**)",

   "Write(src/**)"

  ]

 }

}


有三种权限模式:


  • bypass —— 完全不做权限检查(危险但极快)
  • allowEdits —— 自动允许工作目录内的文件编辑
  • auto(新模式)—— 每个操作都由一个 LLM 分类器判断(最平衡)


auto 模式也支持你自定义 allow / deny 列表。源码显示,它会并行触发多个“裁决器”:用户点击、hook 分类器、bridge 等,谁先返回就用谁的结果


你每点一次“允许”,都是在浪费时间。


配置一次,就别再点了。


4. 一共有 5 种上下文压缩策略:

context 压力是个真实存在的问题


源码里提供了 五种在对话过长时压缩上下文的方式:


  1. microcompact —— 基于时间清理旧的工具结果
  2. context collapse —— 对一段对话进行摘要压缩
  3. session memory —— 提取关键上下文到文件
  4. full compact —— 对整个历史进行总结
  5. PTL truncation —— 丢弃最早的一组消息


这其实在传递一个很重要的信号:上下文溢出是工程团队投入了大量精力解决的核心问题。


对你来说,这意味着:


  • 主动使用 /compact。不要等系统自动压缩,把你在意的上下文一起“误杀”。
  • 默认窗口是 200K tokens,但你可以通过使用 [1m] 模型后缀扩展到 100 万 tokens。在跨多文件的大规模重构中,这非常关键。
  • 长会话会逐渐积累“session memory”——包括任务描述、文件列表、工作流状态、错误和经验总结的结构化信息。这也是为什么继续一个会话比重新开一个更有价值
  • 大型工具输出会被存储到磁盘,模型只会看到一个 8KB 的预览。如果你粘贴一个超大文件,模型可能只看到其中一小部分——所以输入要尽量聚焦。


真正把 Claude Code 用到极致的人,会把 /compact 当成游戏里的“手动存档点”:保留关键内容,清掉噪音,然后继续推进。


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


这是一个几乎没人知道的“高手功能”。


源码显示,有超过 25 个生命周期事件可以被你挂钩(hook):


  • PreToolUse —— 任意工具执行前触发
  • PostToolUse —— 任意工具执行后触发
  • UserPromptSubmit —— 你发送消息时触发
  • SessionStart / SessionEnd —— 会话开始 / 结束
  • 以及另外 20 多个事件


同时支持 5 种 Hook 类型:


  • command —— 执行 shell 命令
  • prompt —— 通过 LLM 注入上下文
  • agent —— 运行一个完整的 agent 校验流程
  • HTTP —— 调用 webhook
  • function —— 执行 JavaScript


你可以做什么?


  • 每次写文件前自动跑 lint
  • 每次修改后自动执行测试
  • 自动把相关文档注入到每一个 prompt
  • 任务完成后发 Slack 通知
  • 在代码发布前校验安全规范


其中最离谱的是 UserPromptSubmit 这个 Hook:你可以在每一条消息发送时自动注入 additionalContext


这意味着什么?


你可以在每次提问时,自动附带测试结果、最近的 git diff、当前项目状态——而不需要手动复制粘贴。


这才是你构建“自定义开发环境”的方式——不是写更好的 prompt,而是直接改造系统本身的行为


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


每一段对话都会以 JSONL 格式保存到:


~/.claude/projects/{hash}/{sessionId}.jsonl


源码支持:


  • --continue —— 继续上一次会话
  • --resume —— 指定恢复某个历史会话
  • --fork-session —— 从过去的对话分叉一个新分支(这一点非常好用)


session memory 会在多次压缩中保留关键上下文:任务描述、文件列表、工作流状态、错误和经验。


但大多数人是怎么做的?


每次打开 Claude Code,都新开一个 session。


这相当于你每工作一小时,就把 IDE 关掉,再从零打开一次——之前做了什么、哪里失败了、学到了什么,全没了。


正确用法是:


用 --continue。一直用。


让上下文不断积累,让 session memory 持续沉淀经验。


源码已经把这套机制搭好了,你不用,才是真的浪费。


7. 工具系统:60+ 工具 + 智能批处理执行


Claude Code 内置了 60 多个工具,但更关键的是——它是怎么调度这些工具的


源码把工具调用分成两类:


  • concurrent(并发)——只读操作(读文件、搜索、glob 匹配)可以并行执行
  • serial(串行)——有修改行为的操作(编辑、写入、bash 命令)必须逐个执行,避免冲突


这意味着什么?


当 Claude Code 需要读取 10 个文件来理解你的代码库时,它会同时读取这 10 个文件;但如果要修改 3 个文件,它会一个一个来,保证一致性


在内置工具之外,你还可以接入 MCP Server 来扩展更多工具能力。源码里用了“延迟加载”(deferred loading)机制——只有在真正需要时才加载 MCP 工具,所以就算你接了 5 个 MCP Server,也不会拖慢每一次请求。


另外还有一个 ToolSearch 机制,用来动态发现 agent 还不知道的工具。


现实意义很直接:


如果你的工作流涉及外部系统(数据库、云服务、CI/CD),就把它们通过 MCP 接进来。底层架构会帮你处理复杂性,你只是在“白拿能力”。


8. 流式架构:随时打断,几乎没有成本


整个执行链路是基于 async generator 的,每一步都会以事件流的形式逐步输出。


按下 Escape,可以干净地中断当前响应,同时不会丢失已有上下文。


这听起来是个小点,但会彻底改变你的使用方式:


不要傻等一个你已经知道走偏的回答。立刻打断,重新引导。


源码就是这么设计的:之前的上下文保留,被打断的输出被干净丢弃——没有任何惩罚


更好的类比是结对编程:


如果你的搭档开始写错方向,你不会等他写完,你会直接说:“等等,换个思路。”


就是这种节奏。


9. 重试系统,比你想象得更“抗打”


源码里这一块做得非常工程化:


  • 最多 10 次重试,带指数退避 + 抖动(基准 500ms)
  • 遇到 401/403 自动刷新 OAuth token
  • 模型自动降级:如果 Opus 连续 3 次 529 错误,会自动切到 Sonnet
  • 流式输出 90 秒无响应,会自动切换为非流式
  • 持久模式下支持“无限重试”,最大退避 5 分钟


这背后的设计意图很明确:


Claude Code 是可以“放在那里跑”的系统。


API 抖动、限流、短暂故障——它会自己处理,你不需要盯着它。


让它在后台跑,过一会回来拿结果就行。


总结:源码里真正的高杠杆用法


  • 写一个像样的 CLAUDE.md → 每轮都会加载,4 万字符,是最高杠杆配置
  • 用子 Agent 并行 → fork 共享缓存,5 个 ≈ 1 个成本
  • 在 settings.json 里配置权限 → 永久告别“点允许”
  • 主动用 /compact → 5 种压缩策略的存在,本身就说明上下文是瓶颈
  • 上 Hook → 25+ 事件、5 种类型,这才是真正的扩展 API
  • 永远用 --continue → JSONL 持久化 + session memory = 上下文积累
  • 接入 MCP Server → 延迟加载,几乎零成本扩展能力
  • 随时打断 → 流式架构让你重定向没有代价


底层结论


Claude Code 本质上是一个披着终端 UI 外壳的 Agent 编排平台


那些效率高 10 倍的人,不是更会写 prompt——而是:


他们做了配置、做了并行、接了 hook、让上下文持续积累。


源码已经把答案写得很直白了。现在你知道它底层到底在干什么了。


参考链接:

https://x.com/mal_shaik/status/2038918662489510273


文章来自于"51CTO技术栈",作者 "mal"。

1
AI工作流

【开源免费】字节工作流产品扣子两大核心业务:Coze Studio(扣子开发平台)和 Coze Loop(扣子罗盘)全面开源,而且采用的是 Apache 2.0 许可证,支持商用!

项目地址:https://github.com/coze-dev/coze-studio


【开源免费】n8n是一个可以自定义工作流的AI项目,它提供了200个工作节点来帮助用户实现工作流的编排。

项目地址:https://github.com/n8n-io/n8n

在线使用:https://n8n.io/(付费


【开源免费】DB-GPT是一个AI原生数据应用开发框架,它提供开发多模型管理(SMMF)、Text2SQL效果优化、RAG框架以及优化、Multi-Agents框架协作、AWEL(智能体工作流编排)等多种技术能力,让围绕数据库构建大模型应用更简单、更方便。

项目地址:https://github.com/eosphoros-ai/DB-GPT?tab=readme-ov-file



【开源免费】VectorVein是一个不需要任何编程基础,任何人都能用的AI工作流编辑工具。你可以将复杂的工作分解成多个步骤,并通过VectorVein固定并让AI依次完成。VectorVein是字节coze的平替产品。

项目地址:https://github.com/AndersonBY/vector-vein?tab=readme-ov-file

在线使用:https://vectorvein.ai/付费

2
智能体

【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。

项目地址:https://github.com/Significant-Gravitas/AutoGPT


【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。

项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md

3
知识库

【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。

项目地址:https://github.com/labring/FastGPT

4
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0

添加客服微信openai178,进AITNT官方交流群
驱动智慧未来:提供一站式AI转型解决方案
IOS下载
安卓下载
微信群