Technical Guide
01. OpenClaw 是什么:先知道你在学什么
OpenClaw 是本地运行的个人 AI 助手,不只是聊天工具,而是多渠道 Gateway + Agent Runtime + 工具系统。
这篇解决什么问题
读源码之前,先不要急着进 src/。
你要先知道 OpenClaw 是什么,否则很容易把它误解成“另一个 Claude Code”或“一个多平台 Bot”。这两个说法都不够准确。
官方 README 里的定义是:
OpenClaw is a personal AI assistant you run on your own devices.
它运行在你自己的设备上,通过你已经在用的渠道和你交互。
它不是单一界面
OpenClaw 支持很多入口:WhatsApp、Telegram、Slack、Discord、Google Chat、Signal、iMessage、Microsoft Teams、Matrix、Feishu、LINE、Mattermost、Nextcloud Talk、Nostr、Twitch、Zalo、WeChat、QQ、WebChat 等。
这说明它的核心不是某一个聊天界面,而是一个本地 Gateway,把不同平台的消息收进来,再交给 Agent 处理。
它的核心分层
可以先这样理解:
CLI:安装、配置、调试、发起本地命令
Gateway:常驻服务,连接渠道和本地能力
Channels:各个平台适配器
Agent Runtime:模型、上下文、工具、会话和流式响应
Tools / Skills / Plugins:可执行能力和可复用流程
State Dir:配置、凭证、会话、workspace、日志
这些层合起来,才是 OpenClaw。
和 Hermes 的区别
如果你刚看过 Hermes 教程,可以这样对比:
Hermes 更像 Python Agent runtime + 多工具执行环境
OpenClaw 更像 TypeScript 多渠道个人助手平台
OpenClaw 对 Gateway、Channels、Apps、Nodes、Plugins 的投入更重。它更强调“常驻在你的设备上,从多个聊天入口控制你的个人助手”。
为什么源码会大
OpenClaw 不是只封装一次模型调用。
它需要处理:Node 版本和 CLI 启动、Gateway daemon、多平台 channel、DM pairing 和 allowlist、模型 provider、session 持久化、tools、skills、cron、MCP、sandbox、plugins 和 companion apps。
所以源码分得很细。
学 OpenClaw 应该抓哪条线
不要从某个 channel 开始看。
先抓主线:
用户从渠道发消息
→ Gateway 收到事件
→ 找到目标 agent/session
→ Agent Runtime 构造上下文
→ 调用模型和工具
→ 结果回到 Gateway
→ Gateway 投递回原渠道
这条线看懂了,其他模块都能挂上去。
下一篇看什么
下一篇先跑起来。