OpenClaw系列第3课:Gateway 是什么?它怎么工作?

OpenClaw系列第3课:Gateway 是什么?它怎么工作?
Kai这是「OpenClaw 教程课程」第 3 课。
前两课我们已经知道 OpenClaw 是什么,也知道怎么把它跑起来了。接下来,必须把一个核心概念彻底讲清楚:Gateway。
很多新手在用 OpenClaw 时,最容易产生一个错觉:
- 我在 Telegram 发一句话
- 它回一句话
- 那不就是“消息直接进模型,再返回结果”吗?
表面上看像这样,但 OpenClaw 实际上不是这么工作的。
在真正的运行链路里,中间有一个绝对核心的中枢:
Gateway。
如果你没理解 Gateway,后面学这些东西时都会有点“会用,但不通”:
- channel
- session
- tool
- cron
- node
- dashboard
- 故障排查
所以今天这课,只讲一件事:
Gateway 到底是什么?它在 OpenClaw 里到底负责什么?
一、先说结论:Gateway 是 OpenClaw 的总控台

你可以把 Gateway 理解成以下几个角色的组合:
- 消息入口
- 任务调度器
- 会话路由器
- 工具转发站
- 结果回传器
- 控制平面中枢
也就是说,用户在 Telegram、Discord、Web 面板、CLI 里发来的消息,并不是直接进入模型。
而是先进入 Gateway,由 Gateway 再决定:
- 这条消息属于哪个会话
- 应该交给哪个 Agent
- 这个 Agent 当前该用什么上下文
- 它能不能调用某些工具
- 工具的结果怎么返回
- 最终结果该回到哪个聊天入口
所以它不是“一个顺手跑着的后台进程”,而是 OpenClaw 真正的中枢。
二、为什么必须有 Gateway?
如果没有 Gateway,整个系统会很快变得混乱。
你可以想象一种“没有中枢”的状态:
- Telegram 自己接模型
- Discord 自己接模型
- Dashboard 自己接模型
- cron 定时任务自己找执行链路
- 工具调用自己找权限和执行环境
- 手机节点自己管理连接
结果会是什么?
- 每个入口都要自己维护状态
- 工具和权限逻辑散落在不同地方
- 会话上下文无法统一
- 同一个系统很难稳定扩展
这就是为什么 OpenClaw 不是“消息直接进模型”,而是必须先经过 Gateway。
它的作用,就是把原本会分裂出去的这些逻辑统一收束到一个中心。
三、你可以把 Gateway 理解成 AI 系统里的“路由器 + 操作系统”
这是一个很适合新手的理解方式。
像路由器
因为所有入口都先接到它这里:
- Telegram
- Discord
- Slack
- Web 控制面板
- CLI
- 节点设备
所有请求都要先经过它,再被分发出去。
像操作系统
因为它不只是转发消息,它还负责:
- 管理状态
- 管理连接
- 管理会话
- 调度任务
- 调用执行能力
- 维持整个系统正常运行
所以如果你非要给它一个最直观的比喻,可以这么记:
模型像大脑,Gateway 像神经中枢 + 操作系统。
四、Gateway 的核心结构

先看一个最小结构图:
1 | ┌─────────────────────────────────┐ |
这个图里最关键的点是:
1)所有入口都不是直接连模型
它们都先连到 Gateway。
2)Gateway 不只是转发
它会做路由、会话、控制、状态管理。
3)工具和节点也不直接暴露给每个入口
而是由 Gateway 统一组织和调用。
这就是为什么它叫 Gateway,而不是单纯叫 server 或 bot。
五、一条消息在 Gateway 里是怎么走的?

这是理解 Gateway 最重要的一部分。
比如你在 Telegram 发一句:
看看今天服务器磁盘使用率
系统内部的逻辑大致是这样的:
第一步:消息进入 Gateway
Telegram 渠道把消息送到 Gateway。
第二步:Gateway 判断消息上下文
它会看这条消息:
- 来自哪个渠道
- 来自哪个用户或群
- 属于哪个 session
- 当前应该路由给哪个 agent
第三步:把上下文交给 Agent
Gateway 会把这条消息连同相关上下文,一起交给对应的 Agent。
第四步:Agent 决定要不要调工具
如果 Agent 判断需要执行命令、读取文件、打开浏览器,它不会自己直接做,而是请求 Gateway 代为调用对应工具。
第五步:Gateway 执行工具调用
这一步才是真正把工具跑起来。
第六步:结果回到 Agent
Gateway 把工具执行结果再交回给 Agent。
第七步:Agent 生成最终回复
第八步:Gateway 把最终回复发回原入口
比如再发回 Telegram。
所以你看到的是一句聊天回复,但它背后其实是一整条调度链路。
六、Gateway 为什么和 Session 关系这么紧?
因为没有 Gateway,会话系统几乎没法稳定成立。
Session 的意义是:
- 这是谁的对话
- 这段对话此前说了什么
- 上下文该怎么延续
- 多入口情况下如何隔离或复用
而这些都必须由 Gateway 来管理。
也就是说,Gateway 不只是“消息传输器”,它还是上下文秩序的维护者。
所以你以后学习 Session 的时候,一定会反复回到 Gateway。
七、Gateway 为什么和工具调用绑定得这么深?
因为模型本身不会真的去执行系统动作。
模型只能:
- 判断
- 规划
- 生成
- 决定是否要调用工具
但真正执行这些动作的是 Gateway 所管理的工具层:
- 读文件
- 写文件
- 执行 shell 命令
- 控制浏览器
- 调设备节点
- 发送消息
所以你看到“AI 会用了工具”,本质上是:
Agent 决定调用,Gateway 负责执行。
八、Gateway 也是 Dashboard、CLI、节点的统一中枢
这一点特别容易被忽略。
很多人以为 Gateway 只和消息平台有关,其实不是。
当前文档里很清楚:
- CLI 会通过 WebSocket 连到 Gateway
- Web 控制面板会通过 WebSocket 连到 Gateway
- 节点设备也会通过 WebSocket 连到 Gateway
也就是说,Gateway 不只是聊天通道的中枢,还是整个控制平面的中枢。
这就解释了为什么:
- Dashboard 打不开,要先查 Gateway
- 节点异常,要先查 Gateway
- CLI 状态不对,也经常要回头看 Gateway
九、为什么很多排错最后都回到 Gateway?
这是新手最该建立的排查习惯之一。

因为很多表面问题,看上去像是别的组件出错,实际根因却在 Gateway。
例如:
情况 1:机器人不回消息
你第一反应可能是:
- 模型是不是挂了?
- 渠道是不是断了?
但实际先该查的是:
1 | openclaw gateway status |
情况 2:Dashboard 打不开
也不一定是前端问题。
可能根本是 Gateway 没启动,或者端口状态异常。
情况 3:工具调用没反应
不一定是工具本身坏了。
也可能是 Gateway 当前调度链路有问题。
所以排错时有一个非常重要的原则:
先看 Gateway,再怀疑别的。
十、最值得记住的几个 Gateway 命令
如果你现在还不想记太多东西,至少先记住下面这几个:
1)看状态
1 | openclaw gateway status |
这是最重要的一条。
2)启动 Gateway
1 | openclaw gateway start |
3)重启 Gateway
1 | openclaw gateway restart |
4)前台运行,方便看输出
1 | openclaw gateway --port 18789 |
5)看日志
1 | openclaw logs --follow |
这几条命令,足够支撑你完成大部分日常判断和基础排查。
十一、这一课你最应该真正理解的是什么?
不是去死记协议细节,也不是现在就去研究所有 WebSocket 事件。
这节课真正要建立的是一个认知:
Gateway 不是 OpenClaw 的附属组件,而是 OpenClaw 本身得以运行的核心。
你后面学的很多内容,本质上都是围绕 Gateway 展开的:
- Session 怎么归属
- Agent 怎么被调度
- 工具怎么被执行
- Node 怎么被接入
- Cron 怎么被触发
- Dashboard 怎么和系统通信
所以今天最重要的不是“记住所有细节”,而是把这句话刻进脑子里:
OpenClaw 的消息、上下文、工具、自动化,最终都绕不开 Gateway。
十二、总结
这节课你只要真正记住下面 4 句话,就算学到位了:
- Gateway 是 OpenClaw 的总控台。
- 聊天入口、Dashboard、CLI、节点,本质上都要接到 Gateway。
- Agent 负责思考和决策,Gateway 负责路由、调度和执行。
- 排错时,先查 Gateway,往往能省掉大量无效猜测。
下一课预告
下一课我们学:
第 3.5 课:先学会 openclaw gateway status,你就知道系统到底活没活
这一课会更实操,专门讲:
gateway status到底怎么看- 哪些输出最关键
- 什么时候该 restart
- 什么时候别急着乱重启
🦞 本文由八条撰写,持续更新中。








