Anthropic 官方 AI 编程助手 Claude Code 的完整源码,通过 npm 包里的一个 59.8 MB .map 源映射文件意外泄露。1900 多个文件、51.2 万行纯 TypeScript 代码,一夜之间被全球开发者镜像、下载、分析。虽然 Anthropic 紧急通过 DMCA 删除了部分镜像,但为时已晚——这几乎成了 AI 行业有史以来最“意外开源”的生产级 AI Agent 代码。
开源项目 luyao618/Claude-Code-Source-Study 应运而生,它提供了一份包含 25 篇文章、覆盖全部核心模块的逐文件逐函数深度源码分析。作者用中文、精确到行号、附带关键代码片段,将 Claude Code 这个“目前最好的 AI Coding 产品”拆解成了可直接复用的工程设计模式。这不是泛泛的架构概览,而是真实的生产级实战拆解。
研究内容
Claude Code 并非玩具 Demo,而是一个完整的 AI Agent 运行时,涵盖了构建顶级 AI Agent 所需的全栈技术,包括:
- System Prompt 工程
- 多 Agent 编排
- 工具系统(最复杂的 BashTool 足足 12400 行)
- 七层权限安全
- Ink 终端 UI 渲染
- Prompt Cache 成本优化
仓库的 README 直言不讳地指出其目标:“从 Anthropic 的 AI 编程助手源码中,学会构建 AI Agent 应用的全栈技术。”
25 篇文章被分为五大模块加上附录,每篇结尾都提炼出 2-3 个可直接迁移到自己项目的设计模式。内容中文友好,技术术语保留英文原词,非常适合国内开发者学习。
推荐阅读路线:
- 入门路线(7篇):快速建立全局认知。
- AI工程路线(9篇):重点攻克 Prompt、上下文、Agent 核心。
- 完整路线(25篇):按序通读,获得最系统理解。
项目全景:Bun + TypeScript + Ink 的极致 CLI 工程
第 1 篇《项目全景》直接给出了整个技术蓝图:
- 运行时:深度依赖 Bun(冷启动毫秒级),同时兼容 Node.js。通过
bun:bundle 的 feature() 实现编译期 Dead Code Elimination(DCE),同一份代码可构建内部版和外部版两个产品。
- UI框架:重度 fork Ink(React for Terminal),自定义 Reconciler + Yoga 布局引擎,实现 60fps 动态渲染、流式输出、多工具进度条、权限对话框等复杂交互。
- 启动链路:从
cli.tsx 入口极致优化——快速路径(--version、--help)零 import 秒返回,正常路径才走 main.tsx → init() → setup() → Ink REPL。
作者总结道:这不是“能跑就行”,而是面向用户体验和构建性能的极致工程。
System Prompt 工程:缓存与行为的完美平衡
第 4 篇《System Prompt工程》拆解了 constants/prompts.ts(915 行)的核心机制。System Prompt 不再是一段死字符串,而是十几个独立 Section 分段组装。
核心技巧是 SYSTEM_PROMPT_DYNAMIC_BOUNDARY 分界线:
- 静态段(全局行为指引、工具使用规则)用
cacheScope: 'global',最大化 Anthropic Prompt Cache 命中率,降低 API 成本。
- 动态段(会话环境、MCP 指令)放在后面,避免污染缓存。
DANGEROUS_uncachedSystemPromptSection 专门标记必须每轮重算的部分(如 MCP 服务器变化),并利用 Zod 进行运行时验证。每一处都精确到源码行号,教你如何在“精确控制模型”和“控制成本”之间找到最优解。
第 10 篇《BashTool深度剖析》堪称全仓库最硬核的一篇。BashTool 是唯一允许 AI 在用户机器执行任意 Shell 命令的工具,却被设计得“足够强大又足够安全”。作者拆解出四层纵深防御:
- AST解析(tree-sitter) + FAIL-CLOSED(未知结构直接拒绝,等待用户确认)。
- 正则匹配 + 23种安全检查(Zsh 危险命令、引号剥离等)。
- 权限规则(deny/ask/allow,支持通配符)。
- 沙箱执行 + 只读验证 + Prompt 注入(动态告诉模型文件系统白名单)。
沙箱 Prompt 会把读写权限序列化为 JSON 塞进 System Prompt,让模型“知道”边界。整个工具涉及 18 个文件,采用语义分类驱动 UI,进行静默命令优化显示……堪称工业级 Shell Agent 安全的教科书。
Agent 系统:多智能体协作与上下文隔离
第 12 篇《Agent系统》揭秘了 Claude Code 从“单体”到“多 Agent 团队”的进化:
- 主 Agent 按需 Fork 子 Agent(Explore/Plan/Verification),每个子 Agent 拥有独立的 Context、独立的工具集、独立的权限。
- 默认采用上下文全隔离(防止中间结果污染主对话),关键状态(如任务注册)显式共享。
- 异步 Agent 后台运行,遵循先更新状态再发通知的流程,避免死锁。
- 内置 Agent 通过 Markdown frontmatter 定义,支持插件/项目级自定义。
作者提炼出的 7 大设计模式(如默认隔离+显式共享、收敛+硬编码例外、先状态后通知等),可以直接复制到任何多 Agent 框架中。
其他模块一览
- 权限系统:7种模式 + 7步决策管线。
- Hooks系统:27个事件、4种 Hook 类型。
- Memory系统:五层记忆架构(user/project/local),只记偏好不记代码。
- Feature Flag:同一套代码构建不同产品。
- 终端设计系统:80+ 色彩 token + 主题切换。
每一篇都精准指向源码文件和行号。
价值
无论你是:
- 正在开发 AI Agent 或编程助手。
- 想复刻 Claude Code 的核心能力。
- 学习生产级 TypeScript 工程实践。
- 研究 Prompt Cache、安全沙箱、多 Agent 编排……
这个仓库都已开源(MIT 协议),docs/ 目录下的 25 篇 Markdown 文档全部可以免费阅读。Star History 显示,在源码泄露事件后,对其的研究热情空前高涨,而这个项目正是把“热闹”转化为“真功夫”的典范。
GitHub 地址:luyao618/Claude-Code-Source-Study
(本文基于 GitHub 开源项目 luyao618/Claude-Code-Source-Study 撰写,所有分析内容均来自项目公开文档。本文仅作技术学习交流。)