Claude Code 源码深度研究报告
1. 研究范围与结论总览
1.1 这次到底研究了什么
这次研究不是只看某一个 prompt 文件,也不是只做目录级扫一眼,而是把 cli.js.map 中的 sourcesContent 还原成可读源码后,沿着实际 runtime 主线做系统性拆解。
重点覆盖了:
- Claude Code 的整体源码结构
- 主系统提示词如何动态拼装
AgentTool/SkillTool的模型侧协议- built-in agents 的角色分工
- agent 调度链路如何跑通
- plugins、skills、hooks、MCP 如何接入并影响运行时
- permissions、tool execution、hook decisions 如何协同
- 为什么 Claude Code 的体验明显强于普通的“LLM + 工具调用器”
1.2 关键确认事实
从还原结果里已经可以确认:
- npm 包中的
cli.js.map确实包含完整的sourcesContent - 从 map 中至少恢复出了 4756 个源码文件
- 主系统提示词核心文件是
src/constants/prompts.ts - Agent Tool Prompt 核心文件是
src/tools/AgentTool/prompt.ts - Skill Tool Prompt 核心文件是
src/tools/SkillTool/prompt.ts - Agent 调度核心至少包括
src/tools/AgentTool/AgentTool.tsx与src/tools/AgentTool/runAgent.ts - 工具执行链核心至少包括
src/services/tools/toolExecution.ts与src/services/tools/toolHooks.ts
1.3 最重要的总判断
Claude Code 的强,不来自某个神秘的 system prompt,而来自一个完整的软件工程系统。
它的优势来自这些能力被同时做到了工程化:
- 模块化 prompt assembly
- 可治理的工具执行链
- 权限模型
- 专业化 agent 分工
- skill 工作流打包
- plugin 元数据与运行时约束
- hook 策略控制层
- MCP 既注入能力又注入行为说明
- cache-aware 的 prompt 构建
- 异步与后台任务的生命周期管理
最短的一句话总结是:
Claude Code 的价值不是一段 prompt,而是一整套把 prompt、tool、permission、agent、skill、plugin、hook、MCP、cache 与产品化 runtime 统一起来的 Agent Operating System。
2. 源码结构全景:它为什么更像 Agent Operating System
2.1 顶层结构暴露出的系统复杂度
还原出的 src/ 顶层已经说明这不是一个薄薄的 CLI 包装层。重要模块包括:
src/entrypoints/src/constants/src/tools/src/services/src/utils/src/commands/src/components/src/coordinator/src/memdir/src/plugins/src/hooks/src/bootstrap/src/tasks/
这种结构更像一个完整的运行平台,而不是单一命令行程序。