OpenClaw 系统架构详解
第2部分:Gateway (网关)
Gateway 是 OpenClaw 的核心枢纽,负责管理所有连接和消息路由。
📦 Gateway (网关) - 核心枢纽
职责
- 维护所有聊天应用的连接(WhatsApp、Telegram、Discord 等)
- 提供 WebSocket API 供客户端连接
- 处理消息路由和会话管理
- 验证和授权连接
- 发送事件(agent、chat、presence、health、heartbeat、cron)
工作方式
Gateway 使用 WebSocket 协议与客户端通信,典型的连接流程如下:
Client → Gateway: req:connect
Gateway → Client: res (ok) + snapshot (presence + health)
Gateway → Client: event:presence
Gateway → Client: event:tick
Client → Gateway: req:agent
Gateway → Client: res:agent (ack {runId, status:"accepted"})
Gateway → Client: event:agent (streaming)
Gateway → Client: res:agent (final {runId, status, summary})
关键特性
- 单一控制点:一个 Gateway 进程控制所有消息表面
- 多客户端支持:支持多个客户端同时连接(macOS app、CLI、Web UI、Nodes)
- Canvas 主机:提供 Canvas 主机服务(/__openclaw__/canvas/)
- 远程访问:支持 SSH 隧道、Tailscale 远程访问
连接生命周期
- 客户端发送
connect 请求
- Gateway 验证并返回连接状态
- Gateway 发送 presence 和 tick 事件
- 客户端发送 agent 请求
- Gateway 返回确认并开始流式传输
- Gateway 返回最终结果
安全机制
- 设备身份验证
- 令牌认证
- 本地信任模型
- 配对批准机制