概述
OpenClaw 采用单 Gateway 守护进程架构,所有消息渠道(WhatsApp、Telegram、Slack、Discord、Signal、iMessage、WebChat)都由这一个进程统一管理。控制面客户端(macOS App、CLI、Web UI、自动化脚本)通过 WebSocket 连接到 Gateway。
核心要点
- Gateway 监听默认地址
127.0.0.1:18789,同时提供 HTTP 服务(Canvas UI、A2UI) - 每台主机只能运行一个 Gateway,它是唯一持有 WhatsApp 会话的进程
- 客户端角色分两类:
- 普通客户端(macOS App / CLI / Web Admin):发送请求、订阅事件
- 节点(Node):声明
role: node,提供设备能力(摄像头、屏幕录制、位置等)
- 协议为 WebSocket 文本帧 + JSON,首帧必须是
connect - 支持幂等键(idempotency key),防止
send/agent重复执行 - 远程访问推荐使用 Tailscale 或 SSH 隧道
连接生命周期
Client → req:connect → Gateway
Gateway → res(ok) + event:presence + event:tick
Client → req:agent
Gateway → res:agent(ack) → event:agent(streaming) → res:agent(final)
配置/使用
- 启动:
openclaw gateway(前台运行,日志输出到 stdout) - 健康检查:通过 WS 发送
health请求 - 认证模式:
- 默认:共享密钥(
connect.params.auth.token) - Tailscale Serve:
gateway.auth.allowTailscale: true - 受信代理:
gateway.auth.mode: "trusted-proxy" - 禁用认证(仅内网):
gateway.auth.mode: "none"
- 默认:共享密钥(
- 设备配对:新设备 ID 需要审批,本地回环可配置自动审批
相关页面
- agent-loop — Agent 执行循环详解
- queue — 命令队列与并发控制
- session — 会话管理
- agent — Agent 运行时概述