Claude Code 源码阅读路线

仓库

  • 本地路径:/home/nategu/.openclaw/workspace/claude-code-source-code
  • 来源说明:该仓库更像从 npm 包发布产物中提取、还原出来的 TypeScript 源码树,而不是官方完整开发仓库

阅读定位

这套代码更适合学习:

  • CLI agent 工程结构
  • tool system
  • subagent / task orchestration
  • context / permission / transcript / session 设计

不适合直接当成:

  • 官方完整原始仓库
  • 包含所有内部 feature flag 模块的全量源码

推荐阅读顺序

第一层:先看主干

  1. src/main.tsx
  2. src/QueryEngine.ts
  3. src/query.ts
  4. src/Tool.ts
  5. src/tools.ts

第二层:看 agent / task / tool

  1. src/tools/AgentTool/AgentTool.tsx
  2. src/tools/AgentTool/runAgent.ts
  3. src/tasks/LocalAgentTask/LocalAgentTask.tsx
  4. src/tasks/RemoteAgentTask/RemoteAgentTask.tsx
  5. src/utils/agentContext.ts

第三层:继续追执行链

  1. src/services/tools/StreamingToolExecutor.ts
  2. src/services/tools/toolOrchestration.ts
  3. src/utils/forkedAgent.ts(重点看 createSubagentContext
  4. src/tools/AgentTool/agentToolUtils.ts

当前阅读结论

  • Agent 是一个工具(AgentTool
  • agent 调用最终仍然落回统一的 query() 主循环
  • 子 agent 不是独立的另一套引擎,而是“重新组装上下文后再次调用 query”
  • 同步 agent / 异步 agent / remote agent / fork agent 是 AgentTool.call() 内部的不同路由分支

建议做法

继续阅读时,每个模块单独建一页:

  • 一页只回答一个问题
  • 记录“它解决什么问题”
  • 记录“它被谁调用 / 它调用谁”
  • 记录“有哪些关键字段 / 状态 / 设计取舍”