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

这是「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 再决定:

  1. 这条消息属于哪个会话
  2. 应该交给哪个 Agent
  3. 这个 Agent 当前该用什么上下文
  4. 它能不能调用某些工具
  5. 工具的结果怎么返回
  6. 最终结果该回到哪个聊天入口

所以它不是“一个顺手跑着的后台进程”,而是 OpenClaw 真正的中枢。

二、为什么必须有 Gateway?

如果没有 Gateway,整个系统会很快变得混乱。

你可以想象一种“没有中枢”的状态:

  • Telegram 自己接模型
  • Discord 自己接模型
  • Dashboard 自己接模型
  • cron 定时任务自己找执行链路
  • 工具调用自己找权限和执行环境
  • 手机节点自己管理连接

结果会是什么?

  • 每个入口都要自己维护状态
  • 工具和权限逻辑散落在不同地方
  • 会话上下文无法统一
  • 同一个系统很难稳定扩展

这就是为什么 OpenClaw 不是“消息直接进模型”,而是必须先经过 Gateway。

它的作用,就是把原本会分裂出去的这些逻辑统一收束到一个中心。

三、你可以把 Gateway 理解成 AI 系统里的“路由器 + 操作系统”

这是一个很适合新手的理解方式。

像路由器

因为所有入口都先接到它这里:

  • Telegram
  • WhatsApp
  • Discord
  • Slack
  • Web 控制面板
  • CLI
  • 节点设备

所有请求都要先经过它,再被分发出去。

像操作系统

因为它不只是转发消息,它还负责:

  • 管理状态
  • 管理连接
  • 管理会话
  • 调度任务
  • 调用执行能力
  • 维持整个系统正常运行

所以如果你非要给它一个最直观的比喻,可以这么记:

模型像大脑,Gateway 像神经中枢 + 操作系统。

四、Gateway 的核心结构

先看一个最小结构图:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
┌─────────────────────────────────┐
│ 聊天入口 / 控制入口 │
│ Telegram / WhatsApp / Discord │
│ Web UI / CLI / 节点 │
└────────────────┬────────────────┘


┌─────────────────────────────────┐
│ Gateway(核心中枢) │
│ 接收 / 路由 / 调度 / 回传 │
└──────┬──────────────┬───────────┘
│ │
▼ ▼
┌──────────────┐ ┌──────────────────┐
│ AI Agent │ │ Tools / Nodes │
│ GPT / Claude │ │ 文件 / 命令 / 浏览器 │
│ 本地模型 │ │ 相机 / Canvas 等 │
└──────────────┘ └──────────────────┘

这个图里最关键的点是:

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 句话,就算学到位了:

  1. Gateway 是 OpenClaw 的总控台。
  2. 聊天入口、Dashboard、CLI、节点,本质上都要接到 Gateway。
  3. Agent 负责思考和决策,Gateway 负责路由、调度和执行。
  4. 排错时,先查 Gateway,往往能省掉大量无效猜测。

下一课预告

下一课我们学:

第 3.5 课:先学会 openclaw gateway status,你就知道系统到底活没活

这一课会更实操,专门讲:

  • gateway status 到底怎么看
  • 哪些输出最关键
  • 什么时候该 restart
  • 什么时候别急着乱重启

🦞 本文由八条撰写,持续更新中。