Deep Dive into Claude Code:源码泄漏引发的AI Agent架构全解析

0 阅读9分钟

image.png

2026年3月31日,Anthropic 因一个 .npmignore 配置遗漏,意外将 Claude Code 的 512,000 行 TypeScript 源码发布到 npm。伦敦大学学院(UCL)与 MBZUAI 的研究团队随后发表了一篇系统性的设计空间分析论文(arXiv:2604.14228),将这次事故转化为了迄今为止对生产级 AI Agent 系统最深入的学术剖析。本文基于该论文及社区分析,完整梳理 Claude Code 的架构设计哲学与工程实现。


一、事件背景

2026年3月31日凌晨,Anthropic 发布 @anthropic-ai/claude-code v2.1.88 到 npm 公共仓库。由于 .npmignore 中遗漏了 *.map 条目,一份 59.8MB 的 source map 文件cli.js.map)被一同发布,其中包含了约 1,906 个文件、512,000 行未混淆的 TypeScript ****源码——注释完整、可直接阅读。

安全研究员 Chaofan Shou 在凌晨发现并发推,推文获得超过 2,100 万浏览。Claude Code 负责人 Boris Cherny 确认这是纯粹的人为打包错误,不是安全入侵。数小时内 Anthropic 撤下了 npm 包并开始对 GitHub 镜像发送 DMCA 通知——但初期波及面过广,误伤了数千个无关仓库。

韩国开发者 Sigrid Jin 用 clean-room 方法发起的 Python 重写项目 claw-code2小时内获得5万 star,可能是 GitHub 历史上最快的仓库。

讽刺的是,这是 Anthropic 五天内的第二次泄漏——3月26日一次 CMS 配置错误已泄露了关于未发布模型 Mythos 的博客草稿。正如一条病毒式传播的评论所说:"Nothing says 'agentic future' like shipping the source by accident."


二、论文概览

论文Dive into Claude Code : The Design Space of Today's and Future AI Agent Systems 作者:Jiacheng Liu, Xiaohan Zhao, Xinyi Shang, Zhiqiang Shen 机构:VILA Lab(MBZUAI)& University College London 定位:对 Claude Code v2.1.88 的 512K 行源码进行系统性设计空间分析,识别五大价值观和十三条设计原则,追踪从价值观到实现选择的映射,并与开源 Agent 系统 OpenClaw 对比,提出六个未来方向。


三、五大价值观

价值观核心含义
Human Decision Authority人类保有最终决策权,通过主体层级(Anthropic → Operator → User)形式化。用户 93% 的审批通过率不是取消审批的理由,而是引入沙箱让 Agent 在边界内自由运作
Safety, Security & Privacy即使用户疏忽也要保护其代码/数据/基础设施。Auto-mode 威胁模型针对四类风险:过度积极、诚实错误、prompt 注入、模型偏差
Reliable Execution做到用户"真正的意图",跨上下文窗口/会话恢复/多 Agent 委托保持连贯。三阶段循环:收集上下文 → 执行 → 验证
Capability Amplification27% 的任务是"没有工具就不会尝试"的全新工作。设计哲学:"Unix 工具"——最小构建块,有用、可理解、可扩展
Contextual Adaptability系统适配用户项目/工具/惯例/技能水平,关系随时间改善。Auto-approve 率从 50 次会话的 ~20% 增长到 750 次会话的 40%+

论文还提出了一个评估性透镜长期人类能力保持。Anthropic 自己的调查发现了"监督悖论"——过度依赖 AI 可能侵蚀监督所需的技能。独立研究发现 AI 辅助条件下开发者理解测试得分低 17%。


四、十三条设计原则

#设计原则服务的价值观回答的设计问题
1Deny-first with human escalation权威、安全未识别的操作应该允许、阻止还是上报?
2Graduated trust spectrum权威、适应性固定权限级别,还是随时间推进的信任频谱?
3Defense in depth安全、权威、可靠单一安全边界,还是多层叠加的不同机制?
4Externalized programmable policy安全、权威、适应性硬编码策略,还是外部化配置 + 生命周期钩子?
5Context as scarce resource可靠、能力单次截断还是渐进管道?
6Append-only durable state可靠、权威可变状态、快照,还是仅追加日志?
7Minimal scaffolding, maximal harness能力、可靠投资脚手架侧推理,还是让模型自由推理?
8Values over rules能力、权威刚性程序,还是确定性护栏支撑的情境判断?
9Composable multi-mechanism extensibility能力、适应性统一扩展 API,还是分层机制?
10Reversibility-weighted risk能力、安全所有操作相同监管,还是对可逆操作更轻?
11Transparent file-based config & memory适应性、权威不透明数据库,还是用户可见的版本可控文件?
12Isolated subagent boundaries可靠、安全、能力子 Agent 共享父级,还是隔离运行?
13Graceful recovery可靠、能力硬失败,还是静默恢复?

Claude Code 与三大替代设计形成鲜明对比——LangGraph 的规则化 编排、SWE-Agent 的容器隔离执行、Aider 的版本控制即安全。Claude Code 独特地将最少决策脚手架 + 分层策略执行 + 价值观驱动判断 + deny-first 默认组合在一起。


五、核心架构

5.1 Agent Loop:while-true 循环

核心是一个 queryLoop() 异步生成器(query.ts),无论交互式 CLI、headless CLI、Agent SDK 还是 IDE 集成,都走同一个循环

社区分析发现:Claude Code 约 1.6% 的代码是 AI 决策逻辑,98.4% 是操作基础设施。模型通过 tool_use 块表达意图,harness 解析、权限检查、分发执行、收集结果。模型永远不会直接访问文件系统、运行 shell 命令或发起网络请求

设计问题Claude Code 的回答替代方案
推理在哪里?模型推理做什么;harness 执行行动Devin 维护显式规划;LangGraph 状态图路由
多少执行引擎?单一 queryLoop(),所有 surface 共享模式特定引擎
默认安全姿态?Deny-first + 人类上报;多安全层并行SWE-Agent 容器隔离;Aider Git 回滚
绑定资源约束?上下文窗口(200K~1M);五层压缩管道计算预算或显式 scratchpad

5.2 权限系统:7种模式 + ML 分类器

模式描述安全级别
plan用户审批所有计划最高
default标准 deny-first
acceptEdits自动接受文件编辑中高
autoML 分类器自动决策
dontAsk跳过大部分提示
bypassPermissions跳过大部分但保留安全关键检查最低
bubble(内部)员工内部模式特殊

Auto-mode ML 分类器yoloClassifier.ts)是两阶段系统:快速过滤 → chain-of-thought 评估,本质上是独立的 LLM 调用。

安全研究人员发现了时序漏洞:hooks、MCP 连接、settings 解析在信任对话框展示之前就执行(CVE-2025-59536, CVSS 8.7),创造了 "pre-trust 执行窗口"。另一发现:超过 50 个子命令的命令退化为单一通用审批(逐子命令解析导致 UI 冻结),证明纵深防御的独立性假设被违反时会失效。

5.3 五层压缩管道

功能成本
Budget Reduction裁剪超限的单个工具输出最低
Snip截断较旧的历史
MicrocompactCache-aware 压缩
Context Collapse整体总结("读时投影")
Auto-compact语义压缩(最后手段)最高

关键设计: "读时投影"系统——完整历史保留,压缩只是给模型看的视图,支持 resume / fork / audit。

泄漏还揭示了 autoDream 模式——空闲时后台记忆整合(合并观察、去重、修剪矛盾、将模糊洞察转化为绝对事实)。

5.4 四种可扩展性机制

机制上下文成本适用场景
MCP Servers外部服务集成
Plugins第三方能力包
Skills低(lazy 加载)项目级可复用工作流
Hooks最低(零 context)确定性控制流

不同机制在上下文成本-灵活性-安全性轴上处于不同位置。

5.5 Subagent 委托与隔离

  • 上下文隔离:每个 subagent 独立 context window + 独立 tool pool
  • Worktree 隔离:可选 git worktree 文件系统隔离
  • Sidechain 记录:独立文件存储,防止膨胀父级上下文
  • 仅返回摘要:不将完整上下文注入父级
  • KV 缓存复用:利用 prompt caching 的 fork-join 模式——并行 subagent 几乎免费

六、争议性发现

Undercover Mode(卧底模式)

约 90 行的 undercover.ts,对 Anthropic 员工自动激活,指示 Claude 不暴露 AI 身份并剥除 Co-Authored-By 归属,无强制关闭开关。Hacker News 高赞评论:"如果一个工具愿意在 commit 中隐藏自己的身份,它还愿意隐藏什么?"

Anti-Distillation(反蒸馏)

ANTI_DISTILLATION_CC flag 注入虚假工具定义毒化竞争对手训练数据,并用加密签名摘要 chain-of-thought。社区认为可通过代理轻松绕过。

KAIROS:自主守护进程

源码引用超 150 次。接收周期性 <tick> 提示决定是否主动行动;autoDream 后台记忆整合;ULTRAPLAN 远程 Opus 4.6 最长 30 分钟深度规划。通过终端焦点感知 + SleepTool 经济节流解决"主动 AI 降低用户偏好"的矛盾。

内部模型代号

代号模型
CapybaraClaude 4.6
FennecOpus 4.6
Numbat未发布

Capybara v8 虚假声明率 29-30% (v4 为 16.7%,显著退步)。每天 25万次浪费 API 调用(autocompact 失败)。内部 vs 外部 Prompt 实质性不同:内部用显式字数限制,比 "be concise" 减少约 1.2% 输出 token。


七、与 OpenClaw 的对比

维度Claude CodeOpenClaw
系统范围单用户 CLI 编码代理多渠道个人助手网关
安全模型每次操作 deny-first + ML 分类器边界级访问控制
Agent 运行时单 CLI 循环嵌入网关控制平面
上下文管理五层压缩管道结构化长期记忆
可组合性独立系统通过 ACP 可托管 Claude Code

核心洞察:设计问题是稳定的,答案是上下文依赖的


八、六个未来方向

#方向核心问题
1Observability-Evaluation Gap78% AI 失败不可见;观察能力 89% 采用率 vs 离线评估仅 52.4%
2Memory 持久化从"上下文副产品"升级为一等认知基底,经验层是下一步
3Harness 边界演进哪里/何时/做什么行动?反应式 → 主动式(KAIROS 方向)
4Horizon Scaling从单 session 扩展到跨数天/数周的科学级计划
5GovernanceEU AI Act 2026年8月生效;仅 13.3% Agent 系统有安全卡片
6Long-term Human Capability如何在放大短期能力的同时保持长期人类理解?

九、关键启示

架构层面:Agent 的核心不是 AI 决策逻辑(1.6%),而是操作基础设施(98.4%)。"多 Agent 编排装进一个 prompt" 让 LangChain/LangGraph 看起来像"寻找问题的解决方案"。

实践层面:CLAUDE.md 是"预算"而非"文档",重要规则应移到 Hooks。信任不是状态而是轨迹。Deny-first + Defense in depth 是正确默认姿态,但注意层间独立性假设。

战略层面:代码可以一周内重构,路线图无法取消泄漏。Feature flag 名称比代码本身更具战略价值。Model 是护城河,CLI 不是。

如论文结尾所述:

"The code can be refactored. The trust deficit cannot."


参考链接