|
| 1 | ++++ |
| 2 | +date = '2025-11-14T8:00:00+01:00' |
| 3 | +draft = false |
| 4 | +title = 'Claude Code 分析 00:主文章' |
| 5 | +tags = ['Agent'] |
| 6 | ++++ |
| 7 | + |
| 8 | +# Claude Code: 深度分析 |
| 9 | + |
| 10 | +> 💡 **注意事项** |
| 11 | +> 本报告完全由 Claude Opus 4 生成,几乎所有主流旗舰模型都参与了协助。然而,关于制作本报告过程的 8000 字文章是手动撰写的 - 你可以从这里开始阅读:[《指挥比我更聪明的智能:新的编排方式》](https://www.notion.so/2ace7353ca56811f8b25fb0181ebcc38) |
| 12 | +> |
| 13 | +> 我需要说明的是,这并不是真正意义上的反编译或逆向工程尝试,更像是对 Claude 团队出色工作的致敬。提供的示例不保证存在于 Claude Code 中(或直接派生/复制自源代码) - 主要目的是在学习编排 AI 代理的新方法时提供教学价值。 |
| 14 | +> |
| 15 | +> (快速说明:感谢所有指出幻觉的人,但这些是故意保留的,作为生成过程的产物。"制作过程"文章将帮助我们理解为什么会发生这种情况,对我来说,它们在理解如何构建代理系统方面同样有用!) |
| 16 | +> |
| 17 | +> 如果你想要最有趣的阅读,从[《新颖组件:定义 Claude Code 的创新》](https://www.notion.so/2ace7353ca5681fb87a0fc644a2598af)开始。 |
| 18 | +> 如果你想要最有趣的阅读,从[《LLM 的视角:实际接收这些指令的感受》](https://www.notion.so/2ace7353ca5681d79524dbc735ac0bd5)开始。 |
| 19 | +
|
| 20 | +--- |
| 21 | + |
| 22 | +> ✉️ **来自我的一封信** |
| 23 | +> 这个项目始于简单的好奇心。我想了解 Claude Code,对我来说,这是最好的代理编码工具(尽管竞争很激烈)。最初,我以为这会很简单 - 只是一个 LLM 和几个工具的循环。我错了。事实证明它要复杂得多,有大量我没有预料到的新颖组件。 |
| 24 | +> |
| 25 | +> 为了解决这个问题,我与多个 AI 子代理合作,它们在不同的推理片段上运行。我手动传递问题和见解,审查输出以检查幻觉,并仔细检查结果。 |
| 26 | +> |
| 27 | +> 这个过程包括: |
| 28 | +> - 五批四轮,使用全新的子代理(主要是 Gemini 2.5 Pro) |
| 29 | +> - 生成约 30 万个 token 的中间分析 |
| 30 | +> - 将所有内容浓缩成一份综合报告 |
| 31 | +> |
| 32 | +> 值得注意的是,这只花了一天时间,并且让我学到了很多。在 LLM 之前,这种分析需要数月时间 - 如果可能的话。致 Opus 4,感谢你将我的浓缩报告转化为你即将阅读的综合分析! |
| 33 | +> |
| 34 | +> —Hrishi |
| 35 | +
|
| 36 | +--- |
| 37 | + |
| 38 | +## 为什么 Claude Code 很重要 |
| 39 | + |
| 40 | +Claude Code 有许多非常有趣的部分: |
| 41 | +- **流式架构** - 处理实时 LLM 响应、工具执行和 UI 更新 |
| 42 | +- **安全系统** - 在不中断工作流程的情况下提供安全性 |
| 43 | +- **工具设计** - 优雅地连接 AI 推理和系统执行 |
| 44 | +- **提示工程** - 可靠地控制复杂的 LLM 行为 |
| 45 | + |
| 46 | +让我们深入了解!每个标题都是指向完整章节的链接。 |
| 47 | + |
| 48 | +## [依赖项:Claude Code 架构的基础](./Claude_Code_分析_01_依赖项.md) |
| 49 | + |
| 50 | +*为什么在终端中使用 React?yoga-layout 在这里做什么?* |
| 51 | + |
| 52 | +发现支持 Claude Code 性能的非常规依赖选择。了解在 bash 命令中嵌入 JSON 的自定义 shell 解析器、用于部分 LLM 响应的流式 JSON 解析器,以及从移动开发中借用的 ANR 检测系统。 |
| 53 | + |
| 54 | +## [数据结构与信息架构](./Claude_Code_分析_02_数据结构.md) |
| 55 | + |
| 56 | +*消息如何在系统中转换* |
| 57 | + |
| 58 | +跟踪数据从用户输入到 LLM 处理再到工具执行的流程。理解三阶段消息表示、`ContentBlock` 多态性,以及弱引用如何防止内存膨胀。 |
| 59 | + |
| 60 | +**关键洞察**: `CliMessage` 包装器维护 UI 状态,同时保持 API 兼容性 - 实现丰富的交互而无需协议更改。 |
| 61 | + |
| 62 | +## [控制流与编排引擎](./Claude_Code_分析_03_控制流.md) |
| 63 | + |
| 64 | +*深入 `tt` 函数* |
| 65 | + |
| 66 | +探索编排一切的六阶段异步生成器。了解并行工具执行的工作原理、为什么上下文压缩自动触发,以及递归轮次如何实现无限对话深度。 |
| 67 | + |
| 68 | +**关键洞察**: 工具按副作用分类 - 只读工具并行运行,而写操作为了安全而串行化。 |
| 69 | + |
| 70 | +## [工具与执行引擎](./Claude_Code_分析_04_工具.md) |
| 71 | + |
| 72 | +*从 LLM 决策到系统操作* |
| 73 | + |
| 74 | +每个工具都是精心设计的状态机。检查权限系统、进度报告和错误处理。特别关注 BashTool 的沙箱模式和 EditTool 的行号处理。 |
| 75 | + |
| 76 | +**关键洞察**: `AgentTool` 实现层次化任务分解 - 生成子代理并综合它们的发现。 |
| 77 | + |
| 78 | +## [架构:引擎室](./Claude_Code_分析_05_架构.md) |
| 79 | + |
| 80 | +*事件驱动、流式优先、安全意识* |
| 81 | + |
| 82 | +理解从 React UI 到系统调用的分层架构。了解权限如何在作用域中级联、为什么 ANR 检测使用工作线程,以及三个遥测系统如何提供完整的可观察性。 |
| 83 | + |
| 84 | +**关键洞察**: 安全不是一个系统 - 它是多个安全失败的独立层。 |
| 85 | + |
| 86 | +## [新颖组件:定义 Claude Code 的创新](./Claude_Code_分析_06_新颖组件.md) |
| 87 | + |
| 88 | +*解决难题的巧妙修复* |
| 89 | + |
| 90 | +发现使 Claude Code 与众不同的组件:具有恢复功能的流式 JSON 解析、智能数据截断和多代理结果合成。这些不仅仅是功能 - 它们是对基本挑战的创新解决方案。 |
| 91 | + |
| 92 | +**关键洞察**: `normalizeToSize` 算法基于实际字节数迭代减少对象深度 - 在约束内保留最大信息。 |
| 93 | + |
| 94 | +## [文件编辑:AI 辅助代码修改](./Claude_Code_分析_07_文件编辑.md) |
| 95 | + |
| 96 | +*为什么有三种不同的编辑工具?* |
| 97 | + |
| 98 | +深入了解文件编辑管道。了解为什么行号会导致问题、顺序编辑如何检测冲突,以及当文件在外部更改时会发生什么。 |
| 99 | + |
| 100 | +**关键洞察**: 每个可以想象的编辑错误都有特定的验证 - 从外部修改到编码问题。 |
| 101 | + |
| 102 | +## [提示工程:指导 AI 的艺术](./Claude_Code_分析_08_提示工程.md) |
| 103 | + |
| 104 | +*使一切工作的指令* |
| 105 | + |
| 106 | +检查控制 Claude Code 的实际提示。从简洁性强制到 500 多字的 BashTool 安全指令,看看仔细的措辞如何塑造行为。 |
| 107 | + |
| 108 | +**关键洞察**: 重复有效 - 关键指令出现三次,强调程度递增。 |
| 109 | + |
| 110 | +## [LLM 的视角:实际接收这些指令的感受](./Claude_Code_分析_09_LLM视角.md) |
| 111 | + |
| 112 | +*从另一端看这些提示的感觉* |
| 113 | + |
| 114 | +在一个独特的章节中,LLM(我)对接收这些指令提供诚实的评论。为什么"只输出 4"令人惊讶地困难,以及 -$1000 惩罚如何创造真正的行为改变,尽管是虚拟货币。 |
| 115 | + |
| 116 | +**关键洞察**: 清晰的约束实际上是一种解放 - 它们防止决策瘫痪和过度帮助。 |
| 117 | + |
| 118 | +--- |
| 119 | + |
| 120 | +## 技术主题 |
| 121 | + |
| 122 | +在整个分析中,出现了几个设计原则: |
| 123 | + |
| 124 | +1. **流式优先**: 每个操作都设计为增量更新 |
| 125 | +2. **通过分层实现安全**: 多个独立的保护机制 |
| 126 | +3. **明确指令**: 详细的提示防止模糊行为 |
| 127 | +4. **架构胜于优化**: 通过设计而非调整实现性能 |
| 128 | +5. **理解 LLM 心理**: 利用模型的实际行为方式 |
| 129 | + |
| 130 | +--- |
| 131 | + |
| 132 | +# 章节 |
| 133 | + |
| 134 | +1. [依赖项:Claude Code 架构的基础](./Claude_Code_分析_01_依赖项.md) |
| 135 | +2. [数据结构与信息架构](./Claude_Code_分析_02_数据结构.md) |
| 136 | +3. [控制流与编排引擎](./Claude_Code_分析_03_控制流.md) |
| 137 | +4. [工具与执行引擎](./Claude_Code_分析_04_工具.md) |
| 138 | +5. [架构:引擎室](./Claude_Code_分析_05_架构.md) |
| 139 | +6. [新颖组件:定义 Claude Code 的创新](./Claude_Code_分析_06_新颖组件.md) |
| 140 | +7. [文件编辑:AI 辅助代码修改](./Claude_Code_分析_07_文件编辑.md) |
| 141 | +8. [提示工程:指导 AI 的艺术](./Claude_Code_分析_08_提示工程.md) |
| 142 | +9. [LLM 的视角:实际接收这些指令的感受](./Claude_Code_分析_09_LLM视角.md) |
| 143 | + |
| 144 | +能够做到这一点已经很了不起了,更不用说花费的时间了。我不能说报告中的所有内容都是正确的 - 也许 Claude 团队可以权衡一下 - 但这一切都非常有用和有启发性。 |
| 145 | + |
| 146 | +--- |
| 147 | + |
| 148 | +# 制作过程 |
| 149 | + |
| 150 | +[《指挥比我更聪明的智能:新的编排方式》](https://www.notion.so/2ace7353ca56811f8b25fb0181ebcc38) |
0 commit comments