Claude Code: 深度分析

💡 注意事项 本报告完全由 Claude Opus 4 生成,几乎所有主流旗舰模型都参与了协助。然而,关于制作本报告过程的 8000 字文章是手动撰写的 - 你可以从这里开始阅读:《指挥比我更聪明的智能:新的编排方式》

我需要说明的是,这并不是真正意义上的反编译或逆向工程尝试,更像是对 Claude 团队出色工作的致敬。提供的示例不保证存在于 Claude Code 中(或直接派生/复制自源代码) - 主要目的是在学习编排 AI 代理的新方法时提供教学价值。

(快速说明:感谢所有指出幻觉的人,但这些是故意保留的,作为生成过程的产物。“制作过程"文章将帮助我们理解为什么会发生这种情况,对我来说,它们在理解如何构建代理系统方面同样有用!)

如果你想要最有趣的阅读,从《新颖组件:定义 Claude Code 的创新》开始。 如果你想要最有趣的阅读,从《LLM 的视角:实际接收这些指令的感受》开始。


✉️ 来自我的一封信 这个项目始于简单的好奇心。我想了解 Claude Code,对我来说,这是最好的代理编码工具(尽管竞争很激烈)。最初,我以为这会很简单 - 只是一个 LLM 和几个工具的循环。我错了。事实证明它要复杂得多,有大量我没有预料到的新颖组件。

为了解决这个问题,我与多个 AI 子代理合作,它们在不同的推理片段上运行。我手动传递问题和见解,审查输出以检查幻觉,并仔细检查结果。

这个过程包括:

  • 五批四轮,使用全新的子代理(主要是 Gemini 2.5 Pro)
  • 生成约 30 万个 token 的中间分析
  • 将所有内容浓缩成一份综合报告

值得注意的是,这只花了一天时间,并且让我学到了很多。在 LLM 之前,这种分析需要数月时间 - 如果可能的话。致 Opus 4,感谢你将我的浓缩报告转化为你即将阅读的综合分析!

—Hrishi


为什么 Claude Code 很重要

Claude Code 有许多非常有趣的部分:

让我们深入了解!每个标题都是指向完整章节的链接。

依赖项:Claude Code 架构的基础

为什么在终端中使用 React?yoga-layout 在这里做什么?

发现支持 Claude Code 性能的非常规依赖选择。了解在 bash 命令中嵌入 JSON 的自定义 shell 解析器、用于部分 LLM 响应的流式 JSON 解析器,以及从移动开发中借用的 ANR 检测系统。

数据结构与信息架构

消息如何在系统中转换

跟踪数据从用户输入到 LLM 处理再到工具执行的流程。理解三阶段消息表示、ContentBlock 多态性,以及弱引用如何防止内存膨胀。

关键洞察: CliMessage 包装器维护 UI 状态,同时保持 API 兼容性 - 实现丰富的交互而无需协议更改。

控制流与编排引擎

深入 tt 函数

探索编排一切的六阶段异步生成器。了解并行工具执行的工作原理、为什么上下文压缩自动触发,以及递归轮次如何实现无限对话深度。

关键洞察: 工具按副作用分类 - 只读工具并行运行,而写操作为了安全而串行化。

工具与执行引擎

从 LLM 决策到系统操作

每个工具都是精心设计的状态机。检查权限系统、进度报告和错误处理。特别关注 BashTool 的沙箱模式和 EditTool 的行号处理。

关键洞察: AgentTool 实现层次化任务分解 - 生成子代理并综合它们的发现。

架构:引擎室

事件驱动、流式优先、安全意识

理解从 React UI 到系统调用的分层架构。了解权限如何在作用域中级联、为什么 ANR 检测使用工作线程,以及三个遥测系统如何提供完整的可观察性。

关键洞察: 安全不是一个系统 - 它是多个安全失败的独立层。

新颖组件:定义 Claude Code 的创新

解决难题的巧妙修复

发现使 Claude Code 与众不同的组件:具有恢复功能的流式 JSON 解析、智能数据截断和多代理结果合成。这些不仅仅是功能 - 它们是对基本挑战的创新解决方案。

关键洞察: normalizeToSize 算法基于实际字节数迭代减少对象深度 - 在约束内保留最大信息。

文件编辑:AI 辅助代码修改

为什么有三种不同的编辑工具?

深入了解文件编辑管道。了解为什么行号会导致问题、顺序编辑如何检测冲突,以及当文件在外部更改时会发生什么。

关键洞察: 每个可以想象的编辑错误都有特定的验证 - 从外部修改到编码问题。

提示工程:指导 AI 的艺术

使一切工作的指令

检查控制 Claude Code 的实际提示。从简洁性强制到 500 多字的 BashTool 安全指令,看看仔细的措辞如何塑造行为。

关键洞察: 重复有效 - 关键指令出现三次,强调程度递增。

LLM 的视角:实际接收这些指令的感受

从另一端看这些提示的感觉

在一个独特的章节中,LLM(我)对接收这些指令提供诚实的评论。为什么"只输出 4"令人惊讶地困难,以及 -$1000 惩罚如何创造真正的行为改变,尽管是虚拟货币。

关键洞察: 清晰的约束实际上是一种解放 - 它们防止决策瘫痪和过度帮助。


技术主题

在整个分析中,出现了几个设计原则:

  1. 流式优先: 每个操作都设计为增量更新
  2. 通过分层实现安全: 多个独立的保护机制
  3. 明确指令: 详细的提示防止模糊行为
  4. 架构胜于优化: 通过设计而非调整实现性能
  5. 理解 LLM 心理: 利用模型的实际行为方式

章节

  1. 依赖项:Claude Code 架构的基础
  2. 数据结构与信息架构
  3. 控制流与编排引擎
  4. 工具与执行引擎
  5. 架构:引擎室
  6. 新颖组件:定义 Claude Code 的创新
  7. 文件编辑:AI 辅助代码修改
  8. 提示工程:指导 AI 的艺术
  9. LLM 的视角:实际接收这些指令的感受

能够做到这一点已经很了不起了,更不用说花费的时间了。我不能说报告中的所有内容都是正确的 - 也许 Claude 团队可以权衡一下 - 但这一切都非常有用和有启发性。


制作过程

《指挥比我更聪明的智能:新的编排方式》

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut