网关

Gateway 网关运行手册

使用此页面进行 Gateway 网关服务的第 1 天启动和第 2 天运维。

5 分钟本地启动

  • 启动 Gateway 网关

    openclaw gateway --port 18789
    # debug/trace mirrored to stdio
    openclaw gateway --port 18789 --verbose
    # force-kill listener on selected port, then start
    openclaw gateway --force
    
  • 验证服务健康状态

    openclaw gateway status
    openclaw status
    openclaw logs --follow
    

    健康基线:Runtime: runningConnectivity probe: ok,以及与你预期匹配的 Capability: ...。当你需要读作用域 RPC 证明,而不只是可达性时,使用 openclaw gateway status --require-rpc

  • 验证渠道就绪状态

    openclaw channels status --probe
    

    当 Gateway 网关可达时,这会对每个账号运行实时渠道探测和可选审计。 如果 Gateway 网关不可达,CLI 会回退为仅基于配置的渠道摘要,而不是实时探测输出。

  • 运行时模型

    • 一个始终在线的进程,用于路由、控制平面和渠道连接。
    • 单个多路复用端口用于:
      • WebSocket 控制/RPC
      • HTTP API,兼容 OpenAI(/v1/models/v1/embeddings/v1/chat/completions/v1/responses/tools/invoke
      • 控制 UI 和钩子
    • 默认绑定模式:loopback
    • 默认需要认证。共享密钥设置使用 gateway.auth.token / gateway.auth.password(或 OPENCLAW_GATEWAY_TOKEN / OPENCLAW_GATEWAY_PASSWORD),非 local loopback 反向代理设置可以使用 gateway.auth.mode: "trusted-proxy"

    OpenAI 兼容端点

    OpenClaw 目前最有价值的兼容性表面是:

    • GET /v1/models
    • GET /v1/models/{id}
    • POST /v1/embeddings
    • POST /v1/chat/completions
    • POST /v1/responses

    这组端点重要的原因:

    • 大多数 Open WebUI、LobeChat 和 LibreChat 集成会先探测 /v1/models
    • 许多 RAG 和记忆流水线期望 /v1/embeddings
    • 智能体原生客户端越来越倾向于使用 /v1/responses

    规划说明:

    • /v1/models 以智能体为先:它返回 openclawopenclaw/defaultopenclaw/<agentId>
    • openclaw/default 是稳定别名,始终映射到已配置的默认智能体。
    • 当你想覆盖后端提供商/模型时,使用 x-openclaw-model;否则所选智能体的常规模型和嵌入设置保持控制权。

    所有这些都运行在主 Gateway 网关端口上,并使用与其余 Gateway 网关 HTTP API 相同的可信操作员认证边界。

    端口和绑定优先级

    设置 解析顺序
    Gateway 网关端口 --portOPENCLAW_GATEWAY_PORTgateway.port18789
    绑定模式 CLI/override → gateway.bindloopback

    已安装的 Gateway 网关服务会在 supervisor 元数据中记录解析后的 --port。更改 gateway.port 后,运行 openclaw doctor --fixopenclaw gateway install --force,以便 launchd/systemd/schtasks 在新端口上启动进程。

    Gateway 网关启动会在为非 local loopback 绑定播种本地 控制 UI 来源时使用相同的有效端口和绑定。例如,--bind lan --port 3000 会在运行时验证运行前播种 http://localhost:3000http://127.0.0.1:3000。 将任何远程浏览器来源(例如 HTTPS 代理 URL)显式添加到 gateway.controlUi.allowedOrigins

    热重载模式

    gateway.reload.mode 行为
    off 不重载配置
    hot 仅应用热安全变更
    restart 遇到需要重启的变更时重启
    hybrid(默认) 安全时热应用,需要时重启

    操作员命令集

    openclaw gateway status
    openclaw gateway status --deep   # adds a system-level service scan
    openclaw gateway status --json
    openclaw gateway install
    openclaw gateway restart
    openclaw gateway stop
    openclaw secrets reload
    openclaw logs --follow
    openclaw doctor
    

    gateway status --deep 用于额外的服务发现(LaunchDaemons/systemd 系统 单元/schtasks),不是更深入的 RPC 健康探测。

    多个 Gateway 网关(同一主机)

    大多数安装应在每台机器上运行一个 Gateway 网关。单个 Gateway 网关可以托管多个 智能体和渠道。

    只有在你有意需要隔离或救援机器人时,才需要多个 Gateway 网关。

    有用的检查:

    openclaw gateway status --deep
    openclaw gateway probe
    

    预期结果:

    • gateway status --deep 可以报告 Other gateway-like services detected (best effort), 并在陈旧的 launchd/systemd/schtasks 安装仍然存在时打印清理提示。
    • 当多个目标响应时,gateway probe 可以警告 multiple reachable gateways
    • 如果这是有意为之,请按 Gateway 网关实例隔离端口、配置/状态和工作区根目录。

    每个实例的检查清单:

    • 唯一的 gateway.port
    • 唯一的 OPENCLAW_CONFIG_PATH
    • 唯一的 OPENCLAW_STATE_DIR
    • 唯一的 agents.defaults.workspace

    示例:

    OPENCLAW_CONFIG_PATH=~/.openclaw/a.json OPENCLAW_STATE_DIR=~/.openclaw-a openclaw gateway --port 19001
    OPENCLAW_CONFIG_PATH=~/.openclaw/b.json OPENCLAW_STATE_DIR=~/.openclaw-b openclaw gateway --port 19002
    

    详细设置:/gateway/multiple-gateways

    远程访问

    首选:Tailscale/VPN。 备用:SSH 隧道。

    ssh -N -L 18789:127.0.0.1:18789 user@host
    

    然后将客户端在本地连接到 ws://127.0.0.1:18789

    参见:远程 Gateway 网关认证Tailscale

    监督和服务生命周期

    对类似生产环境的可靠性使用受监督运行。

    macOS (launchd)

    openclaw gateway install
    openclaw gateway status
    openclaw gateway restart
    openclaw gateway stop
    

    使用 openclaw gateway restart 进行重启。不要串联 openclaw gateway stopopenclaw gateway start;在 macOS 上,gateway stop 会在停止 LaunchAgent 前有意禁用它。

    LaunchAgent 标签为 ai.openclaw.gateway(默认)或 ai.openclaw.<profile>(命名配置文件)。openclaw doctor 会审计并修复服务配置漂移。

    Linux (systemd user)

    openclaw gateway install
    systemctl --user enable --now openclaw-gateway[-<profile>].service
    openclaw gateway status
    

    要在退出登录后保持持久运行,启用 lingering:

    sudo loginctl enable-linger <user>
    

    当你需要自定义安装路径时的手动用户单元示例:

    [Unit]
    Description=OpenClaw Gateway
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    ExecStart=/usr/local/bin/openclaw gateway --port 18789
    Restart=always
    RestartSec=5
    TimeoutStopSec=30
    TimeoutStartSec=30
    SuccessExitStatus=0 143
    KillMode=control-group
    
    [Install]
    WantedBy=default.target
    

    Windows (native)

    openclaw gateway install
    openclaw gateway status --json
    openclaw gateway restart
    openclaw gateway stop
    

    原生 Windows 托管启动使用名为 OpenClaw Gateway (或命名配置文件的 OpenClaw Gateway (<profile>))的计划任务。如果计划任务 创建被拒绝,OpenClaw 会回退到按用户的 Startup 文件夹启动器, 该启动器指向状态目录内的 gateway.cmd

    Linux (system service)

    对多用户/始终在线主机使用系统单元。

    sudo systemctl daemon-reload
    sudo systemctl enable --now openclaw-gateway[-<profile>].service
    

    使用与用户单元相同的服务主体,但将其安装在 /etc/systemd/system/openclaw-gateway[-<profile>].service 下,并在你的 openclaw 二进制文件位于其他位置时调整 ExecStart=

    不要还让 openclaw doctor --fix 为同一配置文件/端口安装用户级 Gateway 网关服务。当 Doctor 找到系统级 OpenClaw Gateway 网关服务时,会拒绝该自动安装;当系统单元拥有生命周期时,使用 OPENCLAW_SERVICE_REPAIR_POLICY=external

    开发配置文件快速路径

    openclaw --dev setup
    openclaw --dev gateway --allow-unconfigured
    openclaw --dev status
    

    默认值包括隔离的状态/配置和基础 Gateway 网关端口 19001

    协议快速参考(操作员视角)

    • 第一个客户端帧必须是 connect
    • Gateway 网关返回 hello-ok 快照(presencehealthstateVersionuptimeMs、限制/策略)。
    • hello-ok.features.methods / events 是保守的发现列表,不是 每个可调用辅助路由的生成式转储。
    • 请求:req(method, params)res(ok/payload|error)
    • 常见事件包括 connect.challengeagentchatsession.messagesession.toolsessions.changedpresencetickhealthheartbeat、配对/批准生命周期事件,以及 shutdown

    智能体运行分为两个阶段:

    1. 立即接受确认(status:"accepted"
    2. 最终完成响应(status:"ok"|"error"),中间会流式传输 agent 事件。

    查看完整协议文档:Gateway 网关协议

    运维检查

    存活性

    • 打开 WS 并发送 connect
    • 预期收到带快照的 hello-ok 响应。

    就绪性

    openclaw gateway status
    openclaw channels status --probe
    openclaw health
    

    缺口恢复

    事件不会重放。出现序列缺口时,先刷新状态(healthsystem-presence),再继续。

    常见失败特征

    特征 可能的问题
    refusing to bind gateway ... without auth 非 local loopback 绑定缺少有效的 Gateway 网关认证路径
    another gateway instance is already listening / EADDRINUSE 端口冲突
    Gateway start blocked: set gateway.mode=local 配置设置为远程模式,或受损配置缺少本地模式标记
    unauthorized during connect 客户端和 Gateway 网关之间的认证不匹配

    如需完整诊断阶梯,请使用 Gateway 网关故障排除

    安全保证

    • 当 Gateway 网关不可用时,Gateway 网关协议客户端会快速失败(不会隐式回退到直接渠道)。
    • 无效或非 connect 的首帧会被拒绝并关闭。
    • 优雅关闭会在套接字关闭前发出 shutdown 事件。

    相关内容:

    相关内容