乐于分享
好东西不私藏

Claude Code 源码中隐藏着的顶级Agent架构

Claude Code 源码中隐藏着的顶级Agent架构

2026 年 3 月 30 日,一个实习生在 npm 上发现了一把”万能钥匙”——Anthropic 不小心在 Claude Code 的发布包里留了一个 source map 文件。

512,000 行源码,1,900 个文件,当今最强 Coding Agent 的全部内核暴露在阳光之下。

泄露只是引子。真正让开发者兴奋的是:这些源码揭示了一个全新的软件范式——AI Agent 不再是”聊天框的延伸”,而是一个完整的操作系统

📡 发生了什么:一次”人为失误”引爆全网

事情的经过其实很简单:

1Anthropic 发布 Claude Code v2.1.88 到 npm,意外包含了 source map 文件(相当于加密文件的解码钥匙)

2Solayer Labs 实习生 Chaofan Shou 发现并解码,在 X 上公开发布

3几小时内被 fork 40,000+ 次,Anthropic 紧急下架但已无法收回

4Anthropic 回应:”发布打包的人为失误,非安全漏洞,无用户数据泄露”

🎯 讽刺的是:泄露的代码里有一个叫 “Undercover Mode” 的子系统——专门用来防止内部代号出现在 git 提交中。负责防泄露的功能,自己先泄露了 😅

🏗️ 揭秘:Claude Code 到底是怎么造的?

研究过源码的工程师们一致认为:Claude Code 不是一个”套壳聊天机器人”,而更像是一个为 AI 设计的微型操作系统

它的技术栈本身就很有意思:

运行时:Bun(不是 Node.js!)
UI 框架:React + Ink(没错,在终端里用 React)
类型校验:Zod v4(全链路 schema 验证)
代码量:512,000+ 行严格 TypeScript
核心文件:QueryEngine.ts 单文件 46,000 行

下面拆解它最核心的四个架构设计:

🔧 架构一:40+ 工具,每个都是独立”沙箱”

Claude Code 有 40 多个内置工具(读文件、执行 Bash、网页抓取等),每个工具都是一个自包含模块,有自己的:

• 输入 Schema — 严格的参数校验

• 权限等级 — BashTool 和 FileReadTool 风险完全不同,权限也不同

• 独立执行上下文 — 工具之间无共享可变状态

仅工具基类定义就有 29,000 行 TypeScript——这不是代码膨胀,这是严格的 schema 校验、权限控制和错误处理在生产级系统中的真实体量。

🤝 架构二:”信箱模式” 多 Agent 编排

Claude Code 不是单个 Agent 在干活,而是会生成一群子 Agent(Swarm)协同作业:

• AgentTool — 子 Agent 作为普通工具调用产生,不需要特殊编排层

• 信箱模式(Mailbox Pattern) — 高风险操作不能直接执行,必须发到 Coordinator 的”信箱”等待审批

• 原子认领机制 — 防止两个 Worker 同时处理同一个审批请求

• 共享记忆空间 — 团队内所有 Agent 共享上下文,不重复拉取

这是”并行但不混乱”的关键——用 Coordinator/Worker 分层 + 审批门控实现安全的并发。

🧠 架构三:三层记忆系统

Claude Code 的记忆不是”全塞进 context window”那么粗暴,而是精心设计的三层结构:

Layer 1MEMORY.MD 索引 — 始终加载,但只存指针,不存内容

Layer 2Markdown 记忆文件 — 按需加载,用到才拉

Layer 3JSON 日志文件 — 不进 context,但可按行搜索

好处:防止记忆膨胀、无关信息不进 context window、记忆和文件实际状态冲突时自动解决。

📦 架构四:三级上下文压缩

长会话的天敌是 context 爆掉。Claude Code 用三级渐进式压缩解决这个问题:

MicroCompact 本地裁剪旧工具输出,零 API 调用,最快最省

AutoCompact 接近 context 上限时触发,保留 13K token 缓冲区,生成最多 20K token 的结构化摘要(连续失败 3 次自动熔断)

Full Compact 压缩全部对话,然后重新注入最近访问的文件(每个最多 5K token)、活跃计划和技能。压缩后工作预算重置为 50K token

这是为”超长会话”从第一天就设计的架构,不是后期补丁。不做上下文管理的 Agent 工具,规模一大就会静默退化或直接崩溃。

🕵️ 彩蛋:泄露中发现的”隐藏功能”

源码中有 108 个 feature flag 控制的模块,编译时被 Bun 的死代码消除去掉了——你安装的版本里根本不存在。但源码里能看到这些未发布的东西:

🕐 Kairos — 常驻后台 Agent,自动合并重复记忆、消除矛盾、修剪数据
🎤 Voice Mode — 语音交互界面(还没上线)
☁️ Ultraplan — 重计算任务自动甩到云端执行
🐒 Buddy — 会在你写代码时”点评”的人格化角色
🥷 Undercover Mode — 提交代码到公开仓库时不留任何 AI 痕迹
🐻 Capybara / Numbat — 未发布的模型代号,其中 Capybara v8 的幻觉率高达 30%

⚔️ Coding Agent 竞争格局:2026 年的混战

Claude Code 不是孤例。2026 年初,整个 Coding Agent 赛道已经进入白热化:

🟣

Claude Code

Anthropic
终端 Agent · 子 Agent 集群

🟢

Cursor

Cursor Inc
IDE 原生 · 自动补全+对话

🟠

Codex

OpenAI
云端沙箱 · 并行任务

🔵

Devin

Cognition
全自动工程师 · 端到端

🔴

Windsurf

Codeium
IDE Agent · 深度索引

Copilot

GitHub / Microsoft
VS Code 原生 · Agent Mode

💡 对开发者意味着什么?

Andrew Ng 在最新一期 The Batch 中总结了 5 个已经清晰的趋势:

1更多人会写代码 — AI 降低了编程门槛,编程不再是程序员专属

2手写代码和读代码不再那么重要 — 我们可以在比语法更高的层面操作

3定制应用会爆发 — 为 100 个人写一个专属工具变得经济可行

4“做什么”比”怎么做”更重要 — 产品经理瓶颈取代了工程瓶颈

5技术债偿还成本暴降 — AI 可以帮你重构代码

同时还有很多悬而未决的问题

• 未来高级软件工程师的核心技能是什么?
• 如果人人都能造功能,个人和公司的竞争优势在哪?
• 软件团队该怎么组织?工程师、PM、设计师的比例?
• 新的软件”积木”是什么?SDK/库还是 Agent?
• Coding Agent 怎么改变 ML 工程师和数据科学家的工作流?

🔍 一个有趣的遥测细节

Claude Code 的遥测系统里有两个很人性化的指标:

🤬 “挫败感指标” — 追踪用户骂人的频率,作为 UX 问题的先行指标
➡️ “continue 计数器” — 追踪用户打”continue”的次数,代表 Agent 卡住了需要人工推一把

这不是虚荣指标。这是用”用户骂你”和”用户催你”来定位 Agent 的失败模式——比 DAU 有用多了。

🎯 对你的启示

如果你在做 AI 相关开发,Claude Code 的架构有几个可以直接借鉴的模式:

✅ 工具隔离 — 每个工具独立权限,不共享可变状态

✅ 信箱审批 — 高风险操作不能自动执行,发到”信箱”等审批

✅ 三层压缩 — 从第一天就为长会话设计上下文管理

✅ 分层记忆 — 索引 → 按需加载 → 日志搜索,防止 context 膨胀

✅ Feature Flag — 编译时死代码消除,安全迭代未发布功能

最大的启示:这个架构的核心不是在追求”跑得快”,而是在工程化地“管理失败”

压缩熔断器、信箱审批、工具权限隔离——每一个设计都是”看过事情搞砸之后”做出的选择。

这是一种不同于功能堆叠的成熟——叫做工程韧性