理解 Gateway,是理解 OpenClaw 的关键。官方架构文档对它的定义非常明确:Gateway 是长期运行的 WebSocket 服务器,负责把渠道、节点、会话、hooks 和控制平面串起来。
Gateway 的核心职责
根据官方架构页,Gateway 主要负责:
- 持有消息平台连接
- 暴露类型化的 WebSocket API
- 维护提供商连接
- 发出系统事件,例如
agent、chat、presence、health、heartbeat、cron
你可以把它理解成 OpenClaw 的“常驻后端”。
为什么官方强调“每台主机一个 Gateway”
因为:
- 它是唯一持有 WhatsApp 会话的位置
- 渠道连接状态需要长期保存
- 控制台、CLI、节点都要连接同一个中心
这也是为什么 OpenClaw 天然更适合长期在线部署,而不是只在本地临时开个脚本跑完就关。
连接 Gateway 的几类角色
官方架构里,连接到 Gateway 的主要有三类:
- 控制平面客户端
- 节点
- 渠道和系统内部事件源
控制平面客户端
包括:
- macOS 应用
- CLI
- Web Dashboard
- 自动化入口
节点
节点通过 WebSocket 连接,并声明:
- 自己是
role: node - 自己拥有哪些能力和命令
渠道
WhatsApp、Telegram、Discord、Google Chat 等消息入口,最终都汇入 Gateway。
默认绑定和安全护栏
官方 CLI openclaw gateway 文档强调两条非常重要的规则:
- 如果没有配置
gateway.mode=local,Gateway 默认不会盲目启动 - 如果没有认证,绑定到 loopback 之外的地址会被阻止
这就是 OpenClaw 的安全护栏之一。
Gateway 为什么适合常驻运行
因为很多能力都依赖“长期连接”:
- 渠道会话不能频繁丢
- 节点要维持在线
- Dashboard 和自动化要能随时接入
- 日志、状态和事件流需要连续性
这也是官方一直推荐:
- 家庭服务器
- VPS
- Raspberry Pi
等常驻主机来托管 Gateway。
新手最该记住的架构原则
如果只记住一条,那就是:
- 不要把 Gateway 当成一次性 CLI 命令
- 要把它当成长期在线的系统中心
理解这一点后,很多配置选择都会更清楚,比如为什么要做远程访问、为什么要保护 Dashboard、为什么要区分 Gateway 与节点。