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

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 Amplification 27% 的任务是"没有工具就不会尝试"的全新工作。设计哲学:"Unix 工具"------最小构建块,有用、可理解、可扩展
Contextual Adaptability 系统适配用户项目/工具/惯例/技能水平,关系随时间改善。Auto-approve 率从 50 次会话的 ~20% 增长到 750 次会话的 40%+

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


四、十三条设计原则

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

内部模型代号

代号 模型
Capybara Claude 4.6
Fennec Opus 4.6
Numbat 未发布

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


七、与 OpenClaw 的对比

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

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


八、六个未来方向

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


参考链接

相关推荐
RePeaT2 小时前
【Next.js】基础知识速查
前端·react.js·next.js
yyuuuzz2 小时前
独立站搭建:从入门到避坑实战
前端·git·github
Senbor2 小时前
使用分布式锁要注意什么
后端
Java女侠_9年实战2 小时前
多线程的“我以为线程安全”——SimpleDateFormat、ArrayList、HashMap、双重检查锁
后端
OpenTiny社区3 小时前
WebSkill —— 运行在浏览器的 Agent 技能
前端·开源·ai编程
Leevec3 小时前
红包系统:高并发下如何保证不超发
后端
码事漫谈3 小时前
Graphify 简明指南
后端