Xiao TanX: x.com/tvytlx公众号:Xiao Tan AIMarch 31, 2026 Contents 1Claude Code 源码深度研究报告(增强完整版)4 1.1目录. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21. 研究范围与结论总览 2.11.1 这次到底研究了什么. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42.21.2 关键确认事实 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42.31.3 先给最重要的总判断. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 32. 源码结构全景:它为什么更像 Agent Operating System 3.12.1 顶层结构暴露出的系统复杂度. . . . . . . . . . . . . . . . . . . . . . . . .53.22.2 入口层说明它是平台,而不是单一界面. . . . . . . . . . . . . . . . . . . .63.32.3 命令系统是整个产品的操作面板. . . . . . . . . . . . . . . . . . . . . . . .63.42.4 Tools 层才是模型真正“能做事”的根 . . . . . . . . . . . . . . . . . . . . .7 43. 系统提示词总装:prompts.ts的真实地位7 4.13.1 真正的主入口:src/constants/prompts.ts. . . . . . . . . . . . . . .74.23.2getSystemPrompt()不是文本,而是编排器. . . . . . . . . . . . . . . .84.2.1静态前缀(更适合 cache). . . . . . . . . . . . . . . . . . . . . . . .84.2.2动态后缀(按会话条件注入). . . . . . . . . . . . . . . . . . . . . . .84.33.3 Prompt cache boundary:基础设施级思维. . . . . . . . . . . . . . . . .8 54. Prompt 全量提取与模块级拆解9 5.14.1 身份与基础定位:getSimpleIntroSection(). . . . . . . . . . . . . .95.24.2 基础系统规范:getSimpleSystemSection(). . . . . . . . . . . . . . .95.34.3 做任务哲学:getSimpleDoingTasksSection(). . . . . . . . . . . . .105.44.4 风险动作规范:getActionsSection(). . . . . . . . . . . . . . . . . . .105.54.5 工具使用规范:getUsingYourToolsSection(). . . . . . . . . . . . .105.64.6 Session‑specific guidance:运行时可变的局部指令 . . . . . . . . . . . . .115.74.7 Output efficiency:高价值但常被忽视的 section. . . . . . . . . . . . . .115.84.8 Tone and style:统一交互感受. . . . . . . . . . . . . . . . . . . . . . . .115.94.9 DEFAULT_AGENT_PROMPT:子 Agent 的基础人格. . . . . . . . . . . .12 65. Agent Prompt 与 built‑in agents 深挖12 6.15.1AgentTool/prompt.ts:Agent 协议说明书. . . . . . . . . . . . . . . .126.25.2 fork 语义为什么很强 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126.35.3 “How to write the prompt”一节非常值钱 . . . . . . . . . . . . . . . . .136.45.4 built‑in agents:职责分工而不是万能 worker . . . . . . . . . . . . . . . .136.55.5 Explore Agent:纯读模式的代码探索专家. . . . . . . . . . . . . . . . . .136.5.1绝对只读. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146.5.2核心能力. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146.65.6 Plan Agent:纯规划,不做编辑 . . . . . . . . . . . . . . . . . . . . . . . .146.75.7 Verification Agent:为什么它非常值钱. . . . . . . . . . . . . . . . . . .14 76. Agent 调度链深挖:从 AgentTool 到 runAgent 再到 query15 7.16.1 总体调用链长什么样. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157.26.2AgentTool.call():真正的调度总控 . . . . . . . . . . . . . . . . . . . .157.36.3 fork path vs normal path. . . . . . . . . . . . . . . . . . . . . . . . . .167.3.1fork path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167.3.2normal path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167.46.4 为什么 fork 会强调 cache‑identical prefix. . . . . . . . . . . . . . . . .167.56.5 background agent 与 foreground agent 是两套生命周期. . . . . . . . .177.5.1background path 特点. . . . . . . . . . . . . . . . . . . . . . . . . .177.5.2foreground path 特点 . . . . . . . . . . . . . . . . . . . . . . . . . . .177.66.6runAgent():真正的子 Agent runtime . . . . . . . . . . . . . . . . . . .177.76.7 agent‑specific MCP servers:真正的 additive 能力注入. . . . . . . . . .187.86.8 frontmatter hooks 与 frontmatter skills. . . . . . . . . . . . . . . . . .187.96.9query()才是最终主循环执行器. . . . . . . . . . . . . . . . . . . . . . .187.10 6.10 transcript / metadata / cleanup:产品化 runtime 的证据. . . . . . . .18 87. Skills / Plugins / Hooks / MCP 生态深挖19 8.17.1 Skill:不是文档,而是 workflow package . . . . . . . . . . . . . . . . . .198.1.1Skill 的本质. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198.27.2 Plugin:Prompt + Metadata + Runtime Constraints. . . . . . . . . . .198.37.3 Hook:运行时治理层. . . . . . . . . . . . . . . . . . . . . . . . . . . . .208.47.4 Hook 与权限的耦合方式非常成熟 . . . . . . . . . . . . . . . . . . . . . . .208.57.5 MCP:不只是工具桥,还是行为说明注入通道. . . . . . . . . . . . . . . .20 98. 权限、Hook、工具执行链深挖21 9.18.1toolExecution.ts:真正的工具 runtime 主线. . . . . . . . . . . . . .219.28.2 输入校验:先挡低级错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . .219.38.3 PreToolUse hooks:最关键的拦截点 . . . . . . . . . . . . . . . . . . . . .219.3.1updatedInput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219.3.2permissionBehavior. . . . . . . . . . . . . . . . . . . . . . . . . . .229.3.3preventContinuation . . . . . . . . . . . . . . . . . . . . . . . . . . .229.48.4resolveHookPermissionDecision():权限语义的关键粘合层. . . . .229.58.5 工具执行后也不是结束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 10 9. 为什么 Claude Code 这么强:从源码看它真正的护城河22 10.1 9.1 它不是一个 prompt,而是一个 operating model. . . . . . . . . . . . . .2210.2 9.2 它把“好行为”制度化了 . . . . . . . . . . . . . . . . . . . . . . . . . . . .2310.3 9.3 它特别懂“上下文是稀缺资源”. . . . . . . . . . . . . . . . . . . . . . . .2310.4 9.4 Agent specializat