OpenClaw 的 Gateway 网关提供一个简单的 HTTP 端点,用于直接调用单个工具。它始终启用,并使用 Gateway 网关认证和工具策略。与 OpenAI 兼容的Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
/v1/* 表面一样,共享密钥 bearer 认证会被视为整个 Gateway 网关的受信任操作员访问权限。
POST /tools/invoke- 与 Gateway 网关相同的端口(WS + HTTP 复用):
http://<gateway-host>:<port>/tools/invoke
认证
使用 Gateway 网关认证配置。 常见 HTTP 认证路径:- 共享密钥认证(
gateway.auth.mode="token"或"password"):Authorization: Bearer <token-or-password> - 带受信任身份的 HTTP 认证(
gateway.auth.mode="trusted-proxy"): 通过配置的身份感知代理路由,并让它注入所需的身份标头 - 私有入口开放认证(
gateway.auth.mode="none"): 不需要认证标头
- 当
gateway.auth.mode="token"时,使用gateway.auth.token(或OPENCLAW_GATEWAY_TOKEN)。 - 当
gateway.auth.mode="password"时,使用gateway.auth.password(或OPENCLAW_GATEWAY_PASSWORD)。 - 当
gateway.auth.mode="trusted-proxy"时,HTTP 请求必须来自已配置的受信任代理来源;同主机 loopback 代理需要显式设置gateway.auth.trustedProxy.allowLoopback = true。 - 如果配置了
gateway.auth.rateLimit且认证失败次数过多,端点会返回429并带有Retry-After。
安全边界(重要)
将此端点视为 Gateway 网关实例的完整操作员访问表面。- 这里的 HTTP bearer 认证不是狭义的按用户范围模型。
- 此端点的有效 Gateway 网关 token/password 应被视为所有者/操作员凭证。
- 对于共享密钥认证模式(
token和password),即使调用方发送更窄的x-openclaw-scopes标头,该端点也会恢复正常的完整操作员默认值。 - 共享密钥认证还会将此端点上的直接工具调用视为所有者发送方轮次。
- 带受信任身份的 HTTP 模式(例如受信任代理认证,或私有入口上的
gateway.auth.mode="none")会在存在x-openclaw-scopes时遵循它,否则回退到正常的操作员默认范围集。 - 仅将此端点保留在 loopback/tailnet/私有入口上;不要将它直接暴露到公网。
gateway.auth.mode="token"或"password"+Authorization: Bearer ...- 证明持有共享 Gateway 网关操作员密钥
- 忽略更窄的
x-openclaw-scopes - 恢复完整的默认操作员范围集:
operator.admin、operator.approvals、operator.pairing、operator.read、operator.talk.secrets、operator.write - 将此端点上的直接工具调用视为所有者发送方轮次
- 带受信任身份的 HTTP 模式(例如受信任代理认证,或私有入口上的
gateway.auth.mode="none")- 认证某个外部受信任身份或部署边界
- 当标头存在时遵循
x-openclaw-scopes - 当标头缺失时回退到正常的操作员默认范围集
- 仅当调用方显式缩窄范围并省略
operator.admin时,才会失去所有者语义
请求体
tool(字符串,必填):要调用的工具名称。action(字符串,可选):如果工具 schema 支持action且 args 负载省略了它,则映射到 args 中。args(对象,可选):工具特定参数。sessionKey(字符串,可选):目标会话键。如果省略或为"main",Gateway 网关会使用配置的主会话键(遵循session.mainKey和默认智能体,或全局范围中的global)。dryRun(布尔值,可选):预留供未来使用;当前会被忽略。
策略 + 路由行为
工具可用性会通过 Gateway 网关智能体使用的同一策略链进行过滤:tools.profile/tools.byProvider.profiletools.allow/tools.byProvider.allowagents.<id>.tools.allow/agents.<id>.tools.byProvider.allow- 组策略(如果会话键映射到组或渠道)
- 子智能体策略(使用子智能体会话键调用时)
- Exec 批准是操作员护栏,不是此 HTTP 端点的单独授权边界。如果某个工具可通过 Gateway 网关认证 + 工具策略在这里访问,
/tools/invoke不会添加额外的逐调用批准提示。 - 如果
exec可在这里访问,请将其视为可变更的 shell 表面。拒绝write、edit、apply_patch或 HTTP 文件系统写入工具,并不会让 shell 执行变成只读。 - 不要与不受信任的调用方共享 Gateway 网关 bearer 凭证。如果需要跨信任边界隔离,请运行独立的 Gateway 网关(并且最好使用独立的 OS 用户/主机)。
exec- 直接命令执行(RCE 表面)spawn- 任意子进程创建(RCE 表面)shell- shell 命令执行(RCE 表面)fs_write- 主机上的任意文件变更fs_delete- 主机上的任意文件删除fs_move- 主机上的任意文件移动/重命名apply_patch- 补丁应用可以重写任意文件sessions_spawn- 会话编排;远程生成智能体属于 RCEsessions_send- 跨会话消息注入cron- 持久化自动化控制平面gateway- Gateway 网关控制平面;防止通过 HTTP 重新配置nodes- 节点命令中继可触达已配对主机上的 system.runwhatsapp_login- 需要终端 QR 扫描的交互式设置;在 HTTP 上会挂起
gateway.tools 自定义此拒绝列表:
x-openclaw-message-channel: <channel>(示例:slack、telegram)x-openclaw-account-id: <accountId>(存在多个账号时)
响应
200→{ ok: true, result }400→{ ok: false, error: { type, message } }(无效请求或工具输入错误)401→ 未授权429→ 认证被限速(设置了Retry-After)404→ 工具不可用(未找到或未列入允许列表)405→ 方法不允许500→{ ok: false, error: { type, message } }(意外工具执行错误;消息已清理)