OpenClaw 设计与实现

深入一个 AI Agent 运行时的内核实现。

把 Agent 做成一个会跑的脚本很容易。把它做成一个常驻的运行时——多用户接入、模型随时可换、会话不丢、工具能被安全地执行、还能主动在半夜替你干活——是另一件事。

本专栏以生产级开源项目 OpenClaw 的完整源码为解剖对象,拆的就是这个运行时。

flowchart TB
  CH[多通道接入<br/>IM · HTTP · WebSocket] --> GW
  subgraph GW [Gateway · 编排中心]
    direction TB
    BOOT[启动编排 · 配置 · Daemon] --> EVT[事件系统 / Auth]
    EVT --> HEALTH[通道健康监控]
  end
  GW --> SESS[Session<br/>生命周期 · 上下文压缩 · 并发隔离]
  SESS --> AG[Agent / 子 Agent 编排]
  AG --> PV[Provider<br/>多模型路由 · 降级 · 计量]
  AG --> TOOL[Tool<br/>安全沙箱]
  GW --> PLG[插件<br/>注册表 · 加载器 · 运行时]
  GW --> ND[Node<br/>设备配对 · 能力路由]
  GW --> SCH[主动调度<br/>Cron · 心跳 · 事件钩子]

它和"再写一个 Agent 框架"不一样的地方:这套系统要长期在线。所以它必须回答一批 demo 从不需要回答的问题——Gateway 挂了怎么恢复、模型商 429 了往哪里降级、上下文满了压缩谁、插件崩了会不会带崩主进程、一台手机怎么安全地成为 Agent 的手脚。

读完你能做到什么

  1. 设计一个能长期在线的 Agent 网关。 启动时的子系统编排顺序、配置系统、Daemon 模式、通道健康监控、事件系统与 Auth(第3章 Gateway)。
  2. 让模型可热切换。 多模型适配层怎么抽象、路由与降级策略、Token 计量与成本控制、Provider 能力发现与自动注册,以及真出故障时怎么排查(第4章 Provider)。
  3. 管住会话与上下文。 会话生命周期、多会话并发隔离、记忆系统,以及上下文压缩真正的工程细节——压什么、什么时候压、压完怎么保证不丢关键信息(第5章 Session)。
  4. 构建一个不会带崩主进程的插件系统。 插件类型定义、注册表、加载器、运行时隔离(第9章 插件第10章 工具第13章 安全)。
  5. 把 Agent 接到物理世界。 Node 设备的配对协议(从无到信任)、为什么传输层选 WebSocket、基于能力的工具路由、断线重连与韧性(第11章 Node 设备互联)。
  6. 让 Agent 主动干活。 Cron 的精确时间触发、心跳式的智能周期检查、事件钩子的响应式自动化,三者怎么协同、各自的边界在哪,以及主动 Agent 的伦理考量(第12章 调度器)。
  7. 从零搭起自己的那一套。 技能系统、部署、CLI,最后一章是完整的落地推演(第14章 CLI第15章 部署第16章 技能系统第18章 从零构建)。

这个专栏的讲法

讲被放弃的方案,不只讲选中的。 68 个设计决策里,价值最高的部分往往是"为什么不那样做"——那是你自己做选择时真正需要的对照。

每章都有「设计决策分析」与业界对比。 Gateway 架构与业界方案的差别、调度机制的框架对比、Node 与主流方案的定位——不是自说自话。

四个附录是给动手的人的。 配置全解、源码索引、方案对比、开发者手册(附录 A附录 B附录 C附录 D),配上术语表与参考文献(术语表参考文献)。

适合谁读

不适合:只想快速搭个聊天机器人的读者——那不需要运行时,一个脚本就够了。

源码版本

本专栏的源码引用以 OpenClaw v2026.3.31 为准(该仓库按日期发版,这是 2026 年 3 月的最后一个 tag):

仓库 版本 Git Commit
openclaw/openclaw v2026.3.31 213a704
git clone https://github.com/openclaw/openclaw.git
cd openclaw && git checkout v2026.3.31

这个版本是按引用吻合度挑出来的,不是随手取的最新:本专栏 223 条源码引用在 v2026.3.31 上解析出 215 条、行号越界 0 处,是各候选版本里最高的(对照:写作时的 HEAD v2026.8.1 只解析出 182 条)。核心架构模式演化缓慢,即使代码继续迭代,正文绝大多数内容仍然适用。

目录

附录

其他

版权声明

本专栏内容为 杨艺韬 版权所有,保留一切权利。未经书面许可,不得全文或大段转载、改编、翻译,或用于任何商业用途(含以本专栏内容训练模型、生成衍生课程或商品)。

欢迎分享本专栏的链接。引用少量内容用于评论、教学或研究时,请署名 杨艺韬 并附上原文链接。