OpenClaw源码解读(18):前20篇博客阶段整理 & 本系列的阅读路线指引
不知不觉,快一个月的时间过去了,《OpenClaw源码解读》这个系列也写了20篇,该做一个阶段性的归纳和总结, 建立这20篇博客的阅读路线图,把散落的“珍珠”串联在一起。
OpenClaw 源码解读 · 导读(开篇路线图)
一句话:跟着一条消息,走完 OpenClaw 从「进程启动」到「回复返回」的完整旅程。
源码解读最大的痛点是「局部清楚、全局糊涂」——单看
run-loop.ts知道是 LLM↔Tool 循环,单看resolve-route.ts知道是路由,但串不起来。这篇导读做三件事:
给一条主线(消息的完整生命周期);
把散在各篇的源码模块挂到主线的对应节点上;
给出阅读顺序建议,让你按图索骥、不迷路。
一、全景图:一条消息的完整旅程
┌──────────────────────────────────────────────────┐
│ 前置 · 进程启动(没有它就没有消息可处理) │
│ (1) entry.ts 命令行 → Gateway 跑起来 │
│ (3)(4)(5)(6)(7) server.impl.ts 启动四大阶段 │
└────────────────────────┬─────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 主线一 · 消息入站:Matrix 消息 → 变成一次 Agent 调用 │
│ │
│ ① 路由解析 resolve-route ── (2)(15) │
│ ② 诊断记录 diagnostic ── (15) │
│ ③ Hook 拦截 reply_dispatch ── (16) │
│ ④ 消息分发 dispatch ── (15) │
│ ⑤ 记忆检查 memoryFlush/compaction ── (15) │
│ ⑥ Session Turn 创建 ── (15) │
│ ⑦ Lane 并发控制 ── (15)(11) │
│ ⑧ Harness 选中 → Embedded Run 启动 ── (15) │
└────────────────────────────────────┬────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 主线二 · 单 Agent 执行:OpenClaw 的心脏 │
│ │
│ ① agent-run-dispatch.ts 调度分发 ── (8) │
│ ② agent-run-handler.ts 9 阶段 Pipeline ── (9) │
│ ③ run-orchestrator.ts 执行前编排 ── (11) │
│ ④ agent-run-execution-phase.ts 发射 ── (10) │
│ ⑤ run-loop.ts 🔁 LLM↔Tool 闭循环 ── (12) │
│ ⑥ openai-provider.ts LLM 交互/流式处理 ── (13) │
└────────────────────────────────────┬────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────────┐
│ 主线三 · 多 Agent 协同:从一到多 │
│ │
│ ① sessions_spawn 子 Agent 调度 ── (14) │
│ ② 实战落地:多 Agent 协同自愈系统 ── 高阶与淬炼(1) │
└─────────────────────────────────────────────────────────────────────┘
读这张图的方法:横着看是「一条消息的生命周期」,竖着看是「每个阶段对应的源码模块」。括号里的编号,就是系列里讲这个模块的篇目。
二、副线:工程全景(俯瞰地图)
在走进主线之前,先有三篇「登高望远」的文章,帮你建立整体认知:
| 篇目 | 内容 | 链接 |
|---|---|---|
| 入门与破局(1) | 100 篇死磕源码的路线图与专家养成指南 | 阅读 |
| 入门与破局(2) | OpenClaw 项目定位与设计哲学:为什么值得读 | 阅读 |
| 入门与破局(3) | 仓库目录结构全景:src / packages / skills / extensions | 阅读 |
这三篇是「地图的图例」——先看懂它,再走进具体源码,就不会迷路。
三、主线一:消息入站(消息怎么变成 Agent 调用)
一条 Matrix 消息到达后,OpenClaw 不是直接丢给 LLM,而是经过一串「安检 + 准备」流程,最后才真正启动一次 Agent 运行。
| 阶段 | 源码模块 | 篇目 | 一句话导读 |
|---|---|---|---|
| 路由解析 | resolve-route.ts | (2) (15) | 决定「这条消息该给谁」——匹配 8 层绑定规则,解析出目标 agent 与 session |
| Hook 拦截 | hooks.ts | (16) | reply_dispatch 钩子的注册与调用:registerHook() → 41 种合法钩子 → first-claim wins 执行 |
| 诊断 + 分发 + 记忆检查 + Lane + 启动 | 全链路日志追踪 | (15) | 从日志逐行还原「消息接收到开始执行」的全流程,含双层 Lane 并发控制 |
阅读顺序建议:先 阅读《源码(2)》 建立「消息 → Agent 调用」的粗框架,再阅读《源码(15)》 用日志把每一环钉死,最后《源码(16)》 深挖 Hook 机制的实现细节。
四、主线二:单 Agent 执行(OpenClaw 的心脏)
这是整个系列的核心。一次 Agent 运行,从「调度」到「发射」再到「LLM↔Tool 闭循环」,层层递进:
| 阶段 | 源码模块 | 篇目 | 一句话导读 |
|---|---|---|---|
| 调度分发 | agent-run-dispatch.ts | (8) | 执行链路的入口,任务分发与路由 |
| 核心 Pipeline | agent-run-handler.ts | (9) | 9 阶段流水线(Preflight → Routing → … → Execute),每个 Agent 的执行生命周期 |
| 执行前编排 | run-orchestrator.ts | (11) | 「总指挥」:会话管理、Lane 并发、模型路由(含回退)、before_agent_reply 钩子 |
| 发射 | agent-run-execution-phase.ts | (10) | 第 9 阶段实现,双重准入锁 + 13 步,从「准备」到「发射」 |
| LLM↔Tool 闭循环 | run-loop.ts | (12) | 心脏:while(true) 里「调 LLM → 解析 tool_calls → 执行工具 → 回填 → 再来一轮」 |
| LLM 交互/流式 | openai-provider.ts | (13) | 模型路由决策、传输协议选择、双通道认证、流式返回 |
这条主线的阅读顺序就是执行顺序:《源码(8)》 → 《源码(9)》 → 《源码(11)》 → 《源码(10)》 → 《源码(12)》 → 《源码(13)》 。
💡 关键认知:这六篇串起来,就是 OpenClaw「单 Agent 执行引擎」的完整流水线。多 Agent 的本质,是在这条流水线的 Dispatch 阶段插入「任务分解 + 分发」——这也是《源码(9)》 里反复强调的「多 Agent 协同需在 Dispatch 阶段插入任务分解逻辑」。
五、主线三:多 Agent 协同(从一到多)
| 阶段 | 源码模块 | 篇目 | 一句话导读 |
|---|---|---|---|
| 子 Agent 调度 | subagent-spawn.ts | (14) | 9 步流水线,isolated/fork 两种上下文,附件物化,多 Agent 调度中枢 |
| 实战落地 | 多 Agent 自愈系统 | 高阶与淬炼(1) | 面向软件研发全流程的 4 Agent 协同代码审查与自愈系统(设计初稿) |
六、阅读顺序建议(三档)
① 快速入门(想先看懂 OpenClaw 是什么)
入门与破局(1) → (2) → (3)
→ (1) 启动流程
→ (3)(4)(5)(6)(7) server.impl.ts 四大阶段
→ (2)(15)(16) 消息入站
② 吃透执行引擎(想真正理解 Agent 怎么跑)
(12) run-loop.ts(先看心脏,建立「LLM↔Tool 循环」直觉)
→ (8)(9)(11)(10) 调度 → Pipeline → 编排 → 发射
→ (13) LLM 交互层
→ (15)(16) 回到入站,把「消息怎么进到循环」补齐
③ 落地多 Agent(想用它做项目)
(14) sessions_spawn
→ 高阶与淬炼(1) 多 Agent 自愈系统
→ 回头重读 (9) 的 Dispatch 阶段(任务分解的落点)
七、一句话收尾
这 20 篇文章,本质是在回答同一个问题:一条消息,从进来到回复返回,OpenClaw 到底做了什么?
答案是四段旅程:进程启动(跑起来)→ 消息入站(安检准备)→ 单 Agent 执行(心脏跳动)→ 多 Agent 协同(从一到多)。
拿住这条线,再回去读任何一篇,你都知道它站在整张地图的哪个位置。
本文是《OpenClaw 源码解读》系列的开篇导读,作为全书路线图。
正在规划《OpenClaw源码解读》书籍,欢迎出版社编辑交流
更多推荐




所有评论(0)