乐于分享
好东西不私藏

Claude Code源码深度解剖

Claude Code源码深度解剖

当你用Claude Code写代码时,你以为在和AI对话,实际上你正在和一个精心设计的”操作系统”交互。

最近,MBZUAI(穆罕默德·本·扎耶德人工智能大学)VILA Lab的团队发布了一篇重磅论文 《Dive into Claude Code: The Design Space of Today’s and Future AI Agent Systems》(arXiv:2604.14228),首次对Claude Code的TypeScript源码进行了系统性拆解。

结论令人震撼:Claude Code中,真正的AI决策逻辑仅占1.6%,其余98.4%全是围绕AI构建的确定性基础设施——安全系统、上下文管理、扩展框架、代理编排……这篇论文不仅揭开了Claude Code的架构面纱,更为整个AI代理领域画出了一张设计蓝图。

 为什么说Claude Code是一个”操作系统”?

论文开篇抛出了一个核心洞察:生产级AI编程代理的架构设计,本质上与操作系统的设计哲学相通。

论文将Claude Code拆解为7大组件5层架构

7大组件

  • 用户(提交提示、审批权限、审查输出)
  • 接口层(交互式CLI、无头CLI、Agent SDK、IDE/桌面/浏览器)
  • Agent Loop(核心)
    ——一个简单的while-true异步生成器
  • 权限系统
    ——7种模式 + ML分类器
  • 工具层
    ——最多54个内置工具
  • 状态与持久化——追加式JSONL会话记录
  • 执行环境——Shell命令、文件系统、网络请求

5层子系统分解

层级
功能
关键文件
Surface Layer
入口点和渲染
entrypoints/, screens/
Core Layer
Agent Loop + 5级压缩管线
query.ts, compact.ts
Safety/Action Layer
权限、钩子、扩展、沙箱、子代理
permissions.ts, hooks.ts
State Layer
上下文组装、运行时状态、持久化
context.ts, sessionStorage.ts
Backend Layer
Shell执行、远程执行、MCP服务
BashTool.tsx, mcp/client.ts

论文作者一针见血地指出:”工程复杂性的存在不是为了约束模型的决策,而是为了赋能它们。” Claude Code的设计理念是——给模型最大的决策自由,但用丰富的确定性基础设施围绕它。这就像操作系统给应用程序提供API,而不是告诉应用程序每一步该怎么走。

 五大价值观驱动的13条设计原则

论文最重要的贡献之一,是从Claude Code的源码中提炼出驱动架构设计的5大人类价值观13条设计原则

五大价值观

  1. 人类决策权(Human Decision Authority)
    :人类拥有最终的决策权,系统被设计为让人类能实时观察、批准或拒绝操作的执行。
  2. 安全、隐私与防护(Safety, Security & Privacy)
    :即使人类疏忽或犯错,系统也必须保护代码、数据和基础设施不受损害。
  3. 可靠执行(Reliable Execution)
    :代理不仅要”做对”,还要在整个会话、甚至跨会话中保持一致性。
  4. 能力放大(Capability Amplification)
    :系统必须实质上提升人类单位时间的产出——Anthropic内部调查显示27%的任务是用户原本”不会尝试”的。
  5. 上下文适配(Contextual Adaptability)
    :系统能适应具体项目的工具、规范和用户技能水平,并随着时间推移不断改进关系。

13条设计原则精华

原则
解决的问题
拒绝优先+人类升级
未知操作怎么办?→ 默认拒绝
渐进信任谱
固定权限还是逐步过渡?→ 7种模式
纵深防御
单层安全还是多层叠加?→ 7层独立安全
外部化可编程策略
硬编码还是外部配置?→ 配置文件+钩子
上下文即稀缺资源
核心约束是什么?→ 200K/1M上下文窗口
追加式持久状态
可变状态还是追加日志?→ JSONL追加写入
最小脚手架+最大运维
投资推理还是运维?→ 98.4%投入运维
价值观>规则
刚性决策还是情境判断?→ 模型自主判断
可组合多机制扩展
统一API还是分层机制?→ 4种扩展机制
可逆性权重风险评估
所有操作同等审查?→ 只读操作更轻量
基于文件的内存配置
数据库还是可见文件?→ 纯文本Markdown
隔离子代理边界
共享上下文还是隔离?→ 独立上下文窗口
优雅恢复与韧性
硬失败还是静默恢复?→ 软恢复+升级

Claude Code的独特之处在于:最小决策脚手架 + 分层策略执行 + 价值观驱动的判断 + 渐进式上下文管理 + 可组合扩展。

 权限系统:7种模式的”信任梯度”

Claude Code的权限系统是论文分析中最深入的部分之一。它回答了AI代理领域的核心难题:如何在不牺牲安全性的前提下允许自主操作?

7种权限模式

模式
行为
plan
必须先制定计划,用户批准后才执行
default
标准交互,大多数操作需用户批准
acceptEdits
工作目录内的编辑自动批准,Shell命令需批准
auto
ML分类器自动评估,无需用户干预
dontAsk
不提示,但拒绝规则仍然强制执行
bypassPermissions
跳过大多数权限提示,安全关键检查仍适用
bubble(内部)
子代理权限升级到父终端

为什么默认是”拒绝优先”?

Anthropic发现了一个令人警醒的事实:用户批准了93%的权限提示——这意味着”确认对话框”作为唯一安全机制是彻底失败的,因为用户已经产生了批准疲劳。

安全团队的做法不是加更多弹窗,而是重新架构问题:定义边界(沙箱、自动模式分类器),让代理在这些边界内自由工作,而不是在每个操作上都弹窗。

安全警示:论文披露了一个被安全研究人员发现的漏洞——当命令包含超过50个子命令时,系统会退回到单一的通用批准提示,而不是逐一检查,因为解析每个子命令时UI会冻结。这展示了纵深防御的一个结构性弱点:当安全层共享性能瓶颈时,它们会同时降级。

 上下文管理:5级压缩管线

在Claude Code中,上下文窗口是最核心的资源约束(200K tokens,Claude 4.6系列达1M)。系统在每次模型调用前执行5个顺序执行的压缩器

  1. Budget Reduction
    (始终激活):按消息大小限制工具输出
  2. Snip
    (功能标志控制):轻量级历史修剪
  3. Microcompact
    (缓存感知):细粒度缓存感知压缩
  4. Context Collapse
    (功能标志控制):读取时的虚拟投影
  5. Auto-compact
    (默认启用):模型生成的摘要,作为最后手段

关键洞察:单一的压缩策略无法应对所有类型的上下文压力。5个不同成本效益比的策略组合使用,体现了”懒降级”原则——先用影响最小的压缩,只有在更便宜的策略不够时才升级。

 4种扩展机制:为什么需要四个?

Claude Code提供了4种不同的扩展机制,而不是一个万能的API。论文发现,这是因为不同扩展对上下文窗口的消耗截然不同

机制
独特能力
上下文成本
MCP服务器
外部服务集成(多传输协议)
插件
多组件打包+分发
技能
领域特定指令+元工具调用
钩子
生命周期拦截+事件驱动自动化
零(默认)

关键洞察:零成本的钩子可以广泛扩展而不耗尽上下文,而高成本的MCP服务器则保留给真正需要新工具表面的场景。这种4机制设计增加了开发者的学习曲线,但能覆盖从零成本事件处理器到完整外部服务集成的全部扩展需求。

 与OpenClaw的对比:设计空间的两极

论文最独特的部分是对比了Claude Code与OpenClaw(一个开源的多渠道个人助手网关)的架构差异。两者回答相同的设计问题,但答案完全不同:

维度
Claude Code
OpenClaw
系统范围
CLI/IDE编码工具
持久网关,多渠道控制平面
信任模型
拒绝优先逐操作评估
身份+访问控制,周边防御
代理运行时
queryLoop()作为系统中心
嵌入网关调度层
扩展架构
4种机制按上下文成本分级
Manifest优先插件,12种能力
内存与上下文
CLAUDE.md 4级+5级压缩
启动文件+独立记忆+梦境
多代理架构
任务委派,子代理隔离
多代理路由+子代理委派

有趣的是,这两个系统可以组合:OpenClaw可以通过ACP协议托管Claude Code作为外部编码工具。这意味着它们不是非此即彼的选择,而是可以堆叠的层次化设计。

 开放方向:AI代理的下一个6大问题

论文最后识别了6个未来AI代理系统必须面对的开放方向:

  1. 静默失败与可观测性差距
    :78%的AI失败是”看不见的”(Bessemer 2026报告)。如何让代理的错误被及时发现?
  2. 跨会话记忆与长期协作
    :静态指令(CLAUDE.md)和单会话日志之间缺少一个”积累层”——能记住从过去会话中学到的策略。
  3. 边界演变
    :未来的代理将不仅是”在哪里运行”,还包括”何时行动”(主动性)、”做什么”(VLA模型集成)、”与谁协作”(多代理系统)。
  4. 时间跨度扩展
    :从单次会话到持续数天的自主研究——现有架构能否支撑?
  5. 治理与监管
    :EU AI Act 2026年8月全面实施。目前仅13.3%的代理系统发布了安全卡。
  6. 长期人类能力保护
    :论文最深刻的洞察——”最关键的开放问题不是如何增加更多自主性,而是如何长期保护人类能力。”

令人警醒的数据

指标
数据
来源
代码复杂度增加
+40.7%
He et al., 2025, 807仓库
代码理解能力下降
-17%
Shen & Tamkin, 2026
有经验的开发者变慢
-19%
Becker et al., 2025, RCT
初级技术岗招聘下降
-25%
Rak, 2025
AI引入问题持续存在
约25%
Liu et al., 2026, 30万次提交

 核心启示:Agent架构的”操作系统化”

Claude Code的工程复杂性存在于确定性基础设施中,而非AI决策逻辑中。随着前沿模型在编码能力上的趋同,运维基础设施的质量将成为主要差异化因素。

对于AI代理构建者,论文的启示是:

  • 投资确定性基础设施
    (上下文管理、安全分层、恢复机制)比添加规划脚手架更能提升可靠性
  • 设计原则比算法选择更重要
    ——13条原则比任何特定技术方案都更能指导架构决策
  • “操作系统”的类比不是比喻
    ——未来的Agent架构将越来越像操作系统:Agent Loop = 内核,其余一切都是OS

论文信息

《Dive into Claude Code: The Design Space of Today’s and Future AI Agent Systems》

作者:Jiacheng Liu, Xiaohan Zhao, Xinyi Shang, Zhiqiang Shen(MBZUAI VILA Lab + UCL)

链接:https://arxiv.org/abs/2604.14228

开源分析代码:github.com/VILA-Lab/Dive-into-Claude-Code


本文基于arXiv公开论文进行分析解读,仅供技术交流。Claude Code源码版权归Anthropic所有。