基于对 Claude Code 源码的系统性分析,从 11 个维度拆解其架构设计,涵盖 Agent Loop、Context 管理、Tool 调用、Memory、权限安全、多智能体协作、可观测性等核心模块。
本项目是对 Claude Code(Anthropic 的终端 Agent 应用)的源码深度解读。通过系统性的源码分析,揭示其从 Agent Loop 到多智能体编排的完整架构设计。
Claude Code 是一个基于 TypeScript 的终端 Agent 应用,构建在 Bun 运行时之上,采用 React + Ink 渲染 TUI。其架构设计遵循分层解耦、流式驱动、不可变状态三大原则。
| 模块 | 文档 | 说明 |
|---|---|---|
| 整体架构 | src/README.md | 源码目录结构与模块概览 |
| 入口层 | docs/01-entry-layer.md | main.tsx、多客户端入口、Feature Flag |
| 核心引擎 | docs/02-core-engine.md | Agent Loop、QueryEngine、流式驱动 |
| 上下文系统 | docs/03-context-system.md | System/User Context、压缩策略 |
| 工具系统 | docs/04-tool-system.md | 43 个工具、编排器、读写分离 |
| 权限安全 | docs/05-permission-system.md | 五层决策引擎、6 种权限模式 |
| 多智能体 | docs/06-multi-agent.md | Subagent/Coordinator/Swarm/Team |
| 记忆系统 | docs/07-memory-system.md | MEMORY.md、Agent 记忆、团队同步 |
| 可观测性 | docs/08-observability.md | 22 种 Hook、遥测、成本追踪 |
| TUI 渲染 | docs/09-tui-system.md | Ink 引擎、组件系统 |
| 状态管理 | docs/10-state-management.md | Bootstrap State、不可变状态 |
| 命令系统 | docs/11-commands-system.md | Slash 命令、命令路由 |
| Bridge 系统 | docs/12-bridge-system.md | 远程通信、WebSocket、SSE |
| 服务层 | docs/13-services.md | API、MCP、Analytics 等服务 |
┌─────────────────────────────────────────────────────────────┐
│ 入口层 Entry Layer │
│ CLI (main.tsx) │ SDK │ VSCode Extension │ Remote Session │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 核心引擎 Core Engine │
│ query.ts (Agent Loop) │ QueryEngine.ts │ State │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────┬───────┴───────┬─────────────┐
▼ ▼ ▼ ▼
┌───────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐
│ 上下文系统 │ │ 工具系统 │ │ 权限系统 │ │ 多智能体 │
│ Context │ │ Tool(43) │ │ Permission │ │ Multi-Agent│
└───────────┘ └────────────┘ └────────────┘ └────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌───────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐
│ 记忆系统 │ │ 可观测性 │ │ TUI 渲染 │ │ 状态管理 │
│ Memory │ │ Hooks(22) │ │ Ink/React │ │ AppState │
└───────────┘ └────────────┘ └────────────┘ └────────────┘
- 流式优先:从 Agent Loop 到 Tool 执行,全部采用 async generator
- 安全默认:Tool Builder 的 fail-closed 设计、五层权限决策
- 不可变状态:DeepImmutable 类型约束 + 函数式更新
- 模块化编排:43 个工具通过统一接口和编排器协同工作
- 多智能体层次:从 Subagent 到 Swarm 的渐进式复杂度
- 可观测性内建:22 种 Hook + OpenTelemetry + Perfetto
- Feature Flag 驱动:编译时死代码消除 + 灰度发布
| 指标 | 数值 |
|---|---|
| 工具数量 | 43+ |
| Hook 类型 | 22 |
| 权限模式 | 6 |
| Agent 类型 | 5 |
| 核心文件 | 20+ |
| 总代码行数 | 50,000+ |
src/- Claude Code 源码副本src.zip- 源码压缩包analysis/- 原始分析文档
- 从 整体架构 开始了解目录结构
- 按顺序阅读各模块文档,或跳转到感兴趣的模块