Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude Code from Source

Anthropic 的 AI 编码代理:架构、模式与内部机制

《Claude Code from Source》封面

在线阅读 claude-code-from-source.com


本仓库仅用于教学。 它不包含 Claude Code 的任何源代码,哪怕一行也没有。所有代码块都是原创伪代码,用来说明架构模式。目标是帮助工程师理解生产级 AI 代理是如何构建的,而不是复制或传播专有软件。


当 Anthropic 在 npm 上发布 Claude Code 时,.js.map 源码映射里包含了 sourcesContent 字段,其中带有完整的原始 TypeScript。此书正是基于这些内容,对其架构进行研究后,把其中的模式、取舍和设计决策提炼成一套任何工程师都能学习的技术叙述。

全书共 18 章,分为 7 个部分。 印刷等价约 400 页。

每一章都有分层深度:面向技术负责人的叙述主线、面向实现者的深挖部分,以及一个 “应用到实践中” 的结尾,用来提炼可迁移的模式,方便你直接拿去改造自己的系统。图示使用 Mermaid 绘制,并可在 GitHub 上原生渲染。


适合谁读

  • 构建 agentic 系统的资深工程师 - 借鉴这些模式,理解取舍,并在自己的技术栈里实现
  • 评估架构的技术负责人 - 即使不看每段代码,也能跟着叙事理解全貌
  • 任何想了解生产级 AI 工具底层如何运作的人

目录

第一部分:基础

在代理开始思考之前,进程必须先存在。

# 章节 你将学到什么
1 AI 代理的架构 6 个关键抽象、数据流、权限系统、构建系统
2 快速启动 - 引导管线 5 阶段初始化、模块级 I/O 并行、信任边界
3 状态 - 双层架构 引导单例、AppState 存储、粘性锁存器、成本跟踪
4 与 Claude 对话 - API 层 多提供方客户端、提示缓存、流式传输、错误恢复

第二部分:核心循环

代理的心跳:流式输出、执行、观察、重复。

# 章节 你将学到什么
5 代理循环 query.ts 深挖、4 层压缩、错误恢复、token 预算
6 工具 - 从定义到执行 Tool 接口、14 步管线、权限系统
7 并发工具执行 分区算法、流式执行器、投机执行

第三部分:多代理编排

一个代理很强大。多个代理协同工作,则会产生变革性效果。

# 章节 你将学到什么
8 生成子代理 AgentTool、15 步 runAgent 生命周期、内置代理类型
9 Fork 代理与提示缓存 字节级相同前缀技巧、缓存共享、成本优化
10 任务、协调与群体 任务状态机、协调器模式、群体消息传递

第四部分:持久化与智能

没有记忆的代理,会永远重复同样的错误。

# 章节 你将学到什么
11 记忆 - 跨会话学习 基于文件的记忆、4 类分类法、LLM 回忆、陈旧性
12 可扩展性 - Skills 与 Hooks 两阶段技能加载、生命周期 hooks、快照安全

第五部分:界面

用户看到的一切,都要经过这一层。

# 章节 你将学到什么
13 终端 UI 自定义 Ink 分支、渲染管线、双缓冲、对象池
14 输入与交互 按键解析、快捷键、组合键支持、vim 模式

第六部分:连接能力

代理触及的不只是 localhost。

# 章节 你将学到什么
15 MCP - 通用工具协议 8 种传输、MCP 的 OAuth、工具包装
16 远程控制与云端执行 Bridge v1/v2、CCR、上游代理

第七部分:性能工程

要把一切加速到足以让人感觉不到机器。

# 章节 你将学到什么
17 性能 - 每一毫秒和每一个 token 都重要 启动、上下文窗口、提示缓存、渲染、搜索
18 尾声 - 我们学到了什么 5 个架构赌注、哪些能迁移、代理正在走向何方

让它运转的 10 个模式

如果你只读这一节:

  1. 把 AsyncGenerator 作为代理循环 - 产出 Messages,返回类型是 Terminal,天然支持背压和取消
  2. 投机式工具执行 - 在模型流式输出期间就启动只读工具,不必等响应结束
  3. 并发安全批处理 - 按安全性对工具分区,读取并行执行,写入串行执行
  4. 用 fork 代理共享缓存 - 并行子代理共享字节级相同的提示前缀,节省约 95% 的输入 token
  5. 4 层上下文压缩 - snip、microcompact、collapse、autocompact,层层递进
  6. 带 LLM 回忆的文件式记忆 - Sonnet 侧向查询选择相关记忆,而不是做关键词匹配
  7. 两阶段技能加载 - 启动时只加载 frontmatter,调用时再加载完整内容
  8. 用粘性锁存器保持缓存稳定 - 一旦发送过 beta header,就不要在会话中途取消
  9. 槽位预留 - 默认 8K 输出上限,命中后提升到 64K(在 99% 的请求里节省上下文)
  10. Hooks 配置快照 - 启动时冻结,防止运行时注入攻击

这本书是怎么写出来的

源码是从 npm 源码映射中提取的。36 个 AI 代理分四个阶段分析了近两千个 TypeScript 文件:

  1. 探索:6 个并行代理阅读了源码树中的每一个文件
  2. 分析:12 个代理写出了 494KB 的原始技术文档
  3. 写作:15 个代理把所有内容重写成叙述性章节
  4. 审校与修订:3 位编辑审校者提出了 900 行反馈;3 个修订代理完成了全部修改

从源码提取到最终修订版成书,整个过程大约耗时 6 小时。


免责声明

本仓库不包含 Claude Code 的任何源代码。 所有代码块都是原创伪代码,使用了不同的变量名,用来说明架构模式。未包含任何专有提示词、内部常量或精确函数实现。这个项目完全出于教学目的,帮助工程师理解生产级 AI 编码代理背后的设计模式。

“NO'REILLY” 封面只是一个用于说明的恶搞/梗图,与真实的 O'Reilly Media 无关。这个项目与 O'Reilly Media 没有任何关联。那只螃蟹就是一只螃蟹。

这是一份独立分析。Claude Code 是 Anthropic 的产品。本书与 Anthropic 无关联,也未获其认可或赞助。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages