Gateway 运行手册
本页用于 Gateway 服务的第 1 天启动及第 2 天运维操作。深度故障排查
以症状为先的诊断,包含精确的命令流程和日志特征。
配置
任务导向的设置指南 + 完整配置参考。
密钥管理
SecretRef 合约、运行时快照行为及迁移/重载操作。
密钥计划合约
精确的
secrets apply 目标/路径规则及仅引用的 auth-profile 行为。5 分钟本地启动
Gateway 配置重载会监听当前活动配置文件路径(从 profile/state 默认值解析,或在设置了
OPENCLAW_CONFIG_PATH 时使用该路径)。
默认模式为 gateway.reload.mode="hybrid"。运行时模型
- 一个常驻进程,负责路由、控制平面和通道连接。
- 单端口复用用于:
- WebSocket 控制/RPC
- HTTP API(兼容 OpenAI,含 Responses、工具调用)
- 控制界面和钩子
- 默认绑定模式:
loopback(回环)。 - 默认需要身份验证(
gateway.auth.token/gateway.auth.password,或环境变量OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD)。
端口与绑定优先级
| 设置 | 解析顺序 |
|---|---|
| Gateway 端口 | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| 绑定模式 | 命令行/覆盖 → gateway.bind → loopback |
热重载模式
gateway.reload.mode | 行为 |
|---|---|
off | 不重载配置 |
hot | 仅应用安全的实时变更 |
restart | 变更需重启时重启 |
hybrid(默认) | 安全时热应用,需时重启 |
操作命令集
远程访问
首选方案:Tailscale/VPN。 备用方案:SSH 隧道。ws://127.0.0.1:18789。
参见:远程 Gateway、认证、Tailscale。
监督与服务生命周期
生产环境建议使用托管运行以保证稳定可靠。- macOS (launchd)
- Linux (systemd 用户级)
- Linux (system 级服务)
ai.openclaw.gateway(默认)或 ai.openclaw.<profile>(命名配置)。openclaw doctor 用于检测并修复服务配置漂移。同一主机上的多个 Gateway 实例
大多数场景建议只运行 一个 Gateway。 仅在需要严格隔离或冗余时使用多个(例如紧急配置)。 单实例检查项:- 唯一的
gateway.port - 唯一的
OPENCLAW_CONFIG_PATH - 唯一的
OPENCLAW_STATE_DIR - 唯一的
agents.defaults.workspace
开发配置快速路径
19001。
协议快速参考(运维视角)
- 首帧必须是
connect。 - Gateway 返回
hello-ok快照(包含presence、health、stateVersion、uptimeMs、限制和策略)。 - 请求格式:
req(method, params)→ 响应res(ok/payload|error)。 - 常见事件:
connect.challenge、agent、chat、presence、tick、health、heartbeat、shutdown。
- 立即接受确认(
status:"accepted") - 最终完成响应(
status:"ok"或status:"error"),中间有持续的agent事件流。
运营检查
存活性
- 打开 WebSocket,发送
connect。 - 期望收到带状态快照的
hello-ok。
就绪性
缺口恢复
事件不重放。遇到序列号跳跃时,先刷新状态(health,system-presence)后再继续。
常见故障特征
| 特征 | 可能问题 |
|---|---|
refusing to bind gateway ... without auth | 非回环绑定但未提供 token/password |
another gateway instance is already listening / EADDRINUSE | 端口冲突 |
Gateway start blocked: set gateway.mode=local | 配置设为远程模式 |
连接时出现 unauthorized | 客户端和 Gateway 认证信息不匹配 |
安全保障
- Gateway 协议客户端在 Gateway 不可用时快速失败(无隐式直连通道回退)。
- 非法或非连接首帧被拒绝并断开。
- 优雅关闭时在关闭套接字前发送
shutdown事件。
相关内容: