Docs: normalize zh-CN terminology + tone

What: switch to 你/你的 tone; standardize Skills/Gateway网关/local loopback/私信 wording
Why: align zh-CN docs with issue 6995 feedback + idiomatic tech style
Tests: pnpm docs:build
main
Josh Palmer 2026-02-02 15:46:45 +01:00
parent 2b1f68c928
commit 5676a6b38d
237 changed files with 2322 additions and 2337 deletions

View File

@ -33,7 +33,7 @@ openclaw models status --check
## 可选脚本(运维/手机工作流)
这些脚本位于 `scripts/` 目录下,属于**可选项**。它们假定你可以通过 SSH 访问 Gateway 主机,并针对 systemd + Termux 进行了调优。
这些脚本位于 `scripts/` 目录下,属于**可选项**。它们假定你可以通过 SSH 访问 Gateway网关主机,并针对 systemd + Termux 进行了调优。
- `scripts/claude-auth-status.sh` 现在使用 `openclaw models status --json` 作为数据源(如果 CLI 不可用则回退到直接读取文件),因此请确保定时器中 `openclaw``PATH` 中。
- `scripts/auth-monitor.sh`cron/systemd 定时器目标发送告警ntfy 或手机)。

View File

@ -3,7 +3,7 @@ read_when:
- 调度后台任务或唤醒
- 配置需要与心跳一起或并行运行的自动化
- 在心跳和定时任务之间做选择
summary: Gateway 调度器的定时任务与唤醒
summary: Gateway网关调度器的定时任务与唤醒
title: 定时任务
x-i18n:
generated_at: "2026-02-01T19:37:32Z"
@ -14,17 +14,17 @@ x-i18n:
workflow: 14
---
# 定时任务Gateway 调度器)
# 定时任务Gateway网关调度器)
> **定时任务还是心跳?** 请参阅[定时任务与心跳对比](/automation/cron-vs-heartbeat)了解何时使用哪种方式。
定时任务是 Gateway 内置的调度器。它持久化任务、在合适的时间唤醒智能体,并可选择将输出发送回聊天。
定时任务是 Gateway网关内置的调度器。它持久化任务、在合适的时间唤醒智能体,并可选择将输出发送回聊天。
如果你想要 _"每天早上运行"__"20 分钟后提醒智能体"_,定时任务就是对应的机制。
## 简要概述
- 定时任务运行在 **Gateway 内部**(而非模型内部)。
- 定时任务运行在 **Gateway网关内部**(而非模型内部)。
- 任务持久化存储在 `~/.openclaw/cron/` 下,因此重启不会丢失计划。
- 两种执行方式:
- **主会话**:入队一个系统事件,然后在下一次心跳时运行。
@ -63,13 +63,13 @@ openclaw cron add \
--to "channel:C1234567890"
```
## 工具调用等价形式Gateway 定时任务工具)
## 工具调用等价形式Gateway网关定时任务工具)
有关规范的 JSON 结构和示例,请参阅[工具调用的 JSON 模式](/automation/cron-jobs#json-schema-for-tool-calls)。
## 定时任务的存储位置
定时任务默认持久化存储在 Gateway 主机的 `~/.openclaw/cron/jobs.json` 中。Gateway 将文件加载到内存中,并在更改时写回,因此仅在 Gateway 停止时手动编辑才是安全的。请优先使用 `openclaw cron add/edit` 或定时任务工具调用 API 进行更改。
定时任务默认持久化存储在 Gateway网关主机的 `~/.openclaw/cron/jobs.json` 中。Gateway网关将文件加载到内存中并在更改时写回因此仅在 Gateway网关停止时手动编辑才是安全的。请优先使用 `openclaw cron add/edit` 或定时任务工具调用 API 进行更改。
## 新手友好概述
@ -99,9 +99,9 @@ openclaw cron add \
- 一个**调度计划**(何时运行),
- 一个**负载**(做什么),
- 可选的**投递**(输出发送到哪里)。
- 可选的**智能体绑定**`agentId`在指定智能体下运行任务如果缺失或未知Gateway 会回退到默认智能体。
- 可选的**智能体绑定**`agentId`在指定智能体下运行任务如果缺失或未知Gateway网关会回退到默认智能体。
任务通过稳定的 `jobId` 标识(用于 CLI/Gateway API
任务通过稳定的 `jobId` 标识(用于 CLI/Gateway网关 API
在智能体工具调用中,`jobId` 是规范字段;旧版 `id` 仍可兼容使用。
任务可以通过 `deleteAfterRun: true` 在一次性任务成功运行后自动删除。
@ -109,11 +109,11 @@ openclaw cron add \
定时任务支持三种调度类型:
- `at`一次性时间戳自纪元起的毫秒数。Gateway 接受 ISO 8601 格式并转换为 UTC。
- `at`一次性时间戳自纪元起的毫秒数。Gateway网关接受 ISO 8601 格式并转换为 UTC。
- `every`:固定间隔(毫秒)。
- `cron`5 字段 cron 表达式,可选 IANA 时区。
Cron 表达式使用 `croner`。如果省略时区,将使用 Gateway 主机的本地时区。
Cron 表达式使用 `croner`。如果省略时区,将使用 Gateway网关主机的本地时区。
### 主会话与隔离式执行
@ -212,7 +212,7 @@ Telegram 通过 `message_thread_id` 支持论坛主题。对于定时任务投
## 工具调用的 JSON 模式
直接调用 Gateway `cron.*` 工具(智能体工具调用或 RPC时使用这些结构。CLI 标志接受人类可读的时间格式如 `20m`,但工具调用对 `atMs``everyMs` 使用纪元毫秒数(`at` 时间接受 ISO 时间戳)。
直接调用 Gateway网关 `cron.*` 工具(智能体工具调用或 RPC时使用这些结构。CLI 标志接受人类可读的时间格式如 `20m`,但工具调用对 `atMs``everyMs` 使用纪元毫秒数(`at` 时间接受 ISO 时间戳)。
### cron.add 参数
@ -286,7 +286,7 @@ Telegram 通过 `message_thread_id` 支持论坛主题。对于定时任务投
## 存储与历史
- 任务存储:`~/.openclaw/cron/jobs.json`Gateway 管理的 JSON
- 任务存储:`~/.openclaw/cron/jobs.json`Gateway网关管理的 JSON
- 运行历史:`~/.openclaw/cron/runs/<jobId>.jsonl`JSONL自动清理
- 覆盖存储路径:配置中的 `cron.store`
@ -414,7 +414,7 @@ openclaw cron runs --id <jobId> --limit 50
openclaw system event --mode now --text "Next heartbeat: check battery."
```
## Gateway API 接口
## Gateway网关 API 接口
- `cron.list`、`cron.status`、`cron.add`、`cron.update`、`cron.remove`
- `cron.run`(强制或到期)、`cron.runs`
@ -425,7 +425,7 @@ openclaw system event --mode now --text "Next heartbeat: check battery."
### "没有任何任务运行"
- 检查定时任务是否已启用:`cron.enabled` 和 `OPENCLAW_SKIP_CRON`
- 检查 Gateway 是否持续运行(定时任务运行在 Gateway 进程内部)。
- 检查 Gateway网关是否持续运行(定时任务运行在 Gateway网关进程内部)。
- 对于 `cron` 调度:确认时区(`--tz`)与主机时区的关系。
### Telegram 投递到了错误的位置

View File

@ -114,9 +114,9 @@ openclaw webhooks gmail setup \
平台说明:在 macOS 上,向导通过 Homebrew 安装 `gcloud`、`gogcli` 和 `tailscale`;在 Linux 上请先手动安装它们。
Gateway 自动启动(推荐):
Gateway网关自动启动(推荐):
- 当 `hooks.enabled=true` 且设置了 `hooks.gmail.account`Gateway 会在启动时运行 `gog gmail watch serve` 并自动续期 watch。
- 当 `hooks.enabled=true` 且设置了 `hooks.gmail.account`Gateway网关会在启动时运行 `gog gmail watch serve` 并自动续期 watch。
- 设置 `OPENCLAW_SKIP_GMAIL_WATCHER=1` 可退出自动启动(如果你自行运行守护进程则很有用)。
- 不要同时运行手动守护进程,否则会遇到 `listen tcp 127.0.0.1:8788: bind: address already in use`

View File

@ -1,8 +1,8 @@
---
read_when:
- 添加或修改投票支持
- 调试从 CLI 或 Gateway 发送的投票
summary: 通过 Gateway + CLI 发送投票
- 调试从 CLI 或 Gateway网关发送的投票
summary: 通过 Gateway网关 + CLI 发送投票
title: 投票
x-i18n:
generated_at: "2026-02-01T19:38:57Z"
@ -47,7 +47,7 @@ openclaw message poll --channel msteams --target conversation:19:abc@thread.tacv
- `--poll-multi`:允许选择多个选项
- `--poll-duration-hours`:仅限 Discord省略时默认为 24
## Gateway RPC
## Gateway网关 RPC
方法:`poll`
@ -72,4 +72,4 @@ openclaw message poll --channel msteams --target conversation:19:abc@thread.tacv
使用 `message` 工具的 `poll` 操作(`to`、`pollQuestion`、`pollOption`,可选 `pollMulti`、`pollDurationHours`、`channel`)。
注意Discord 没有"精确选择 N 个"模式;`pollMulti` 映射为多选。
Teams 投票以 Adaptive Cards 形式渲染,需要 Gateway 保持在线以在 `~/.openclaw/msteams-polls.json` 中记录投票结果。
Teams 投票以 Adaptive Cards 形式渲染,需要 Gateway网关保持在线以在 `~/.openclaw/msteams-polls.json` 中记录投票结果。

View File

@ -15,7 +15,7 @@ x-i18n:
# Webhooks
Gateway 可以暴露一个小型 HTTP webhook 端点用于外部触发。
Gateway网关可以暴露一个小型 HTTP webhook 端点用于外部触发。
## 启用
@ -157,7 +157,7 @@ curl -X POST http://127.0.0.1:18789/hooks/gmail \
## 安全
- 将 hook 端点限制在回环地址、tailnet 或受信任的反向代理之后。
- 使用专用的 hook 令牌;不要复用 Gateway 认证令牌。
- 将 hook 端点限制在 local loopback、tailnet 或受信任的反向代理之后。
- 使用专用的 hook 令牌;不要复用 Gateway网关认证令牌。
- 避免在 webhook 日志中包含敏感的原始请求体。
- Hook 请求体默认被视为不受信任的,并使用安全边界进行包装。如果你必须为特定 hook 禁用此功能,请在该 hook 的映射中设置 `allowUnsafeExternalContent: true`(危险)。

View File

@ -55,7 +55,7 @@ OpenClaw 可以通过 piai 的 **Bedrock Converse** 流式提供商使用 **A
## 设置(手动)
1. 确保 AWS 凭证在 **Gateway 主机**上可用:
1. 确保 AWS 凭证在 **Gateway网关主机**上可用:
```bash
export AWS_ACCESS_KEY_ID="AKIA..."
@ -164,7 +164,7 @@ openclaw models list
- Bedrock 需要在你的 AWS 账户/区域中启用**模型访问**。
- 自动发现需要 `bedrock:ListFoundationModels` 权限。
- 如果你使用配置文件,请在 Gateway 主机上设置 `AWS_PROFILE`
- 如果你使用配置文件,请在 Gateway网关主机上设置 `AWS_PROFILE`
- OpenClaw 按以下顺序检测凭证来源:`AWS_BEARER_TOKEN_BEDROCK`,然后 `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY`,然后 `AWS_PROFILE`,最后是默认的 AWS SDK 链。
- 推理支持取决于模型;请查看 Bedrock 模型卡了解当前功能。
- 如果你偏好托管密钥流程,也可以在 Bedrock 前面放置一个兼容 OpenAI 的代理,将其配置为 OpenAI 提供商。

View File

@ -21,7 +21,7 @@ OpenClaw 使用 Brave Search 作为 `web_search` 的默认提供商。
1. 在 https://brave.com/search/api/ 创建 Brave Search API 账户。
2. 在控制面板中,选择 **Data for Search** 套餐并生成 API 密钥。
3. 将密钥存储在配置中(推荐)或在 Gateway 环境中设置 `BRAVE_API_KEY`
3. 将密钥存储在配置中(推荐)或在 Gateway网关环境中设置 `BRAVE_API_KEY`
## 配置示例

View File

@ -188,7 +188,7 @@ x-i18n:
- 不同的个性
- 不同的工具访问权限(例如只读与读写)
- 不同的模型(例如 opus 与 sonnet
- 不同的已安装技能
- 不同的已安装 Skills
### 示例:隔离会话

View File

@ -46,10 +46,10 @@ x-i18n:
},
}
```
4. 将 BlueBubbles webhooks 指向你的 Gateway示例`https://your-gateway-host:3000/bluebubbles-webhook?password=<password>`)。
5. 启动 Gateway它将注册 webhook 处理器并开始配对。
4. 将 BlueBubbles webhooks 指向你的 Gateway网关(示例:`https://your-gateway-host:3000/bluebubbles-webhook?password=<password>`)。
5. 启动 Gateway网关;它将注册 webhook 处理器并开始配对。
## 手引导
## 手引导
BlueBubbles 可在交互式设置向导中使用:
@ -255,12 +255,12 @@ OpenClaw 可能会呈现*短*消息 ID例如 `1`、`2`)以节省 token。
- Webhook 请求通过将 `guid`/`password` 查询参数或请求头与 `channels.bluebubbles.password` 比较来进行认证。来自 `localhost` 的请求也会被接受。
- 请保密 API 密码和 webhook 端点(将其视为凭证)。
- localhost 信任意味着同主机的反向代理可能会无意间绕过密码。如果你为 Gateway 设置了代理,请在代理层要求认证并配置 `gateway.trustedProxies`。参见 [Gateway 安全](/gateway/security#reverse-proxy-configuration)。
- localhost 信任意味着同主机的反向代理可能会无意间绕过密码。如果你为 Gateway网关设置了代理,请在代理层要求认证并配置 `gateway.trustedProxies`。参见 [Gateway网关安全](/gateway/security#reverse-proxy-configuration)。
- 如果将 BlueBubbles 服务器暴露到局域网外部,请启用 HTTPS + 防火墙规则。
## 故障排除
- 如果输入/已读事件停止工作,请检查 BlueBubbles webhook 日志并验证 Gateway 路径是否与 `channels.bluebubbles.webhookPath` 匹配。
- 如果输入/已读事件停止工作,请检查 BlueBubbles webhook 日志并验证 Gateway网关路径是否与 `channels.bluebubbles.webhookPath` 匹配。
- 配对码在一小时后过期;使用 `openclaw pairing list bluebubbles``openclaw pairing approve bluebubbles <code>`
- 回应功能需要 BlueBubbles private API`POST /api/v1/message/react`);请确保服务器版本已暴露该接口。
- 编辑/撤回需要 macOS 13+ 和兼容的 BlueBubbles 服务器版本。在 macOS 26Tahoe由于 private API 变更,编辑功能目前不可用。

View File

@ -25,7 +25,7 @@ x-i18n:
- 或配置:`channels.discord.token: "..."`。
- 如果两者都设置了,配置优先(环境变量回退仅用于默认账户)。
4. 邀请机器人到你的服务器并赋予消息权限(如果只想用私信可以创建一个私人服务器)。
5. 启动 Gateway。
5. 启动 Gateway网关
6. 私信访问默认需要配对;首次联系时批准配对码即可。
最小配置:
@ -53,7 +53,7 @@ x-i18n:
1. 创建 Discord 应用 → Bot启用所需的 intent私信 + 服务器消息 + 消息内容),获取机器人 token。
2. 邀请机器人到你的服务器,赋予在你需要使用的地方读取/发送消息所需的权限。
3. 使用 `channels.discord.token` 配置 OpenClaw或使用 `DISCORD_BOT_TOKEN` 作为回退)。
4. 运行 Gateway当 token 可用(配置优先,环境变量回退)且 `channels.discord.enabled` 不为 `false` 时,它会自动启动 Discord 渠道。
4. 运行 Gateway网关;当 token 可用(配置优先,环境变量回退)且 `channels.discord.enabled` 不为 `false` 时,它会自动启动 Discord 渠道。
- 如果你偏好使用环境变量,设置 `DISCORD_BOT_TOKEN`(配置块是可选的)。
5. 私聊:投递时使用 `user:<id>`(或 `<@id>` 提及);所有回合都进入共享的 `main` 会话。裸数字 ID 具有歧义性,会被拒绝。
6. 服务器频道:投递时使用 `channel:<channelId>`。默认需要提及,可按服务器或按频道设置。
@ -202,20 +202,20 @@ Discord 到处使用数字 IDOpenClaw 配置推荐使用 ID。
- 多智能体覆盖:在 `agents.list[].groupChat.mentionPatterns` 上设置每个智能体的模式。
- 如果存在 `channels`,任何未列出的频道默认被拒绝。
- 使用 `"*"` 频道条目来应用所有频道的默认值;明确的频道条目会覆盖通配符。
- 帖子继承父频道配置(允许列表、`requireMention`、技能、提示等),除非你明确添加帖子频道 ID。
- 帖子继承父频道配置(允许列表、`requireMention`、Skills、提示等),除非你明确添加帖子频道 ID。
- 机器人发送的消息默认被忽略;设置 `channels.discord.allowBots=true` 可允许它们(自己的消息仍然被过滤)。
- 警告:如果你允许回复其他机器人(`channels.discord.allowBots=true`),请使用 `requireMention`、`channels.discord.guilds.*.channels.<id>.users` 允许列表和/或在 `AGENTS.md``SOUL.md` 中设置明确的防护规则来防止机器人之间的回复循环。
### 6) 验证是否正常工作
1. 启动 Gateway。
1. 启动 Gateway网关
2. 在你的服务器频道中,发送:`@Krill hello`(或你的机器人名称)。
3. 如果没有响应:查看下方**故障排除**。
### 故障排除
- 首先:运行 `openclaw doctor``openclaw channels status --probe`(可操作的警告 + 快速审计)。
- **"Used disallowed intents"**:在开发者门户中启用 **Message Content Intent**(以及可能的 **Server Members Intent**),然后重启 Gateway。
- **"Used disallowed intents"**:在开发者门户中启用 **Message Content Intent**(以及可能的 **Server Members Intent**),然后重启 Gateway网关
- **机器人连接但在服务器频道中从不回复**
- 缺少 **Message Content Intent**,或
- 机器人缺少频道权限View/Send/Read History
@ -330,7 +330,7 @@ Discord 到处使用数字 IDOpenClaw 配置推荐使用 ID。
- `guilds.<id>.channels.<channel>.tools`:可选的按频道工具策略覆盖(`allow`/`deny`/`alsoAllow`)。
- `guilds.<id>.channels.<channel>.toolsBySender`:可选的频道内按发送者工具策略覆盖(支持 `"*"` 通配符)。
- `guilds.<id>.channels.<channel>.users`:可选的按频道用户允许列表。
- `guilds.<id>.channels.<channel>.skills`技能过滤器(省略 = 所有技能,空 = 无)。
- `guilds.<id>.channels.<channel>.skills`Skills 过滤器(省略 = 所有 Skills,空 = 无)。
- `guilds.<id>.channels.<channel>.systemPrompt`:频道的额外系统提示(与频道主题合并)。
- `guilds.<id>.channels.<channel>.enabled`:设置 `false` 可禁用频道。
- `guilds.<id>.channels`:频道规则(键为频道 slug 或 ID
@ -460,4 +460,4 @@ Discord 消息 ID 在注入的上下文中呈现(`[discord message id: …]`
- 将机器人 token 视为密码;在受管主机上推荐使用 `DISCORD_BOT_TOKEN` 环境变量或锁定配置文件权限。
- 仅授予机器人所需的权限(通常是读取/发送消息)。
- 如果机器人卡住或被速率限制,在确认没有其他进程占用 Discord 会话后重启 Gateway`openclaw gateway --force`)。
- 如果机器人卡住或被速率限制,在确认没有其他进程占用 Discord 会话后重启 Gateway网关`openclaw gateway --force`)。

View File

@ -31,7 +31,7 @@ x-i18n:
- 进入 **Keys** 标签页。
- 点击 **Add Key** > **Create new key**
- 选择 **JSON** 并点击 **Create**
4. 将下载的 JSON 文件存储在你的 Gateway 主机上(例如 `~/.openclaw/googlechat-service-account.json`)。
4. 将下载的 JSON 文件存储在你的 Gateway网关主机上(例如 `~/.openclaw/googlechat-service-account.json`)。
5. 在 [Google Cloud Console Chat 配置](https://console.cloud.google.com/apis/api/chat.googleapis.com/hangouts-chat) 中创建 Google Chat 应用:
- 填写 **Application info**
- **App name**:(例如 `OpenClaw`
@ -40,8 +40,8 @@ x-i18n:
- 启用 **Interactive features**
- 在 **Functionality** 下,勾选 **Join spaces and group conversations**
- 在 **Connection settings** 下,选择 **HTTP endpoint URL**
- 在 **Triggers** 下,选择 **Use a common HTTP endpoint URL for all triggers** 并将其设置为你的 Gateway 公共 URL 后跟 `/googlechat`
- _提示运行 `openclaw status` 可查找你的 Gateway 公共 URL。_
- 在 **Triggers** 下,选择 **Use a common HTTP endpoint URL for all triggers** 并将其设置为你的 Gateway网关公共 URL 后跟 `/googlechat`
- _提示运行 `openclaw status` 可查找你的 Gateway网关公共 URL。_
- 在 **Visibility** 下,勾选 **Make this Chat app available to specific people and groups in &lt;Your Domain&gt;**
- 在文本框中输入你的邮箱地址(例如 `user@example.com`)。
- 点击底部的 **Save**
@ -54,11 +54,11 @@ x-i18n:
- 环境变量:`GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json`
- 或配置:`channels.googlechat.serviceAccountFile: "/path/to/service-account.json"`。
8. 设置 webhook audience 类型 + 值(与你的 Chat 应用配置匹配)。
9. 启动 Gateway。Google Chat 将向你的 webhook 路径发送 POST 请求。
9. 启动 Gateway网关。Google Chat 将向你的 webhook 路径发送 POST 请求。
## 添加到 Google Chat
Gateway 运行且你的邮箱已添加到可见性列表后:
Gateway网关运行且你的邮箱已添加到可见性列表后:
1. 前往 [Google Chat](https://chat.google.com/)。
2. 点击 **Direct Messages** 旁边的 **+**(加号)图标。
@ -76,7 +76,7 @@ Google Chat webhook 需要公共 HTTPS 端点。为安全起见,**仅将 `/goo
使用 Tailscale Serve 用于私有仪表板Funnel 用于公共 webhook 路径。这样 `/` 保持私有,仅暴露 `/googlechat`
1. **检查你的 Gateway 绑定在哪个地址上:**
1. **检查你的 Gateway网关绑定在哪个地址上:**
```bash
ss -tlnp | grep 18789
@ -144,7 +144,7 @@ your-domain.com {
## 工作原理
1. Google Chat 向 Gateway 发送 webhook POST 请求。每个请求包含一个 `Authorization: Bearer <token>` 头。
1. Google Chat 向 Gateway网关发送 webhook POST 请求。每个请求包含一个 `Authorization: Bearer <token>` 头。
2. OpenClaw 根据配置的 `audienceType` + `audience` 验证 token
- `audienceType: "app-url"` → audience 是你的 HTTPS webhook URL。
- `audienceType: "project-number"` → audience 是 Cloud 项目编号。
@ -231,7 +231,7 @@ status code: 405, reason phrase: HTTP error response: HTTP/1.1 405 Method Not Al
如果显示"disabled",在配置中添加 `plugins.entries.googlechat.enabled: true`
3. **Gateway 未重启**:添加配置后,重启 Gateway
3. **Gateway网关未重启**:添加配置后,重启 Gateway网关
```bash
openclaw gateway restart
```
@ -248,10 +248,10 @@ openclaw channels status
- 检查 `openclaw channels status --probe` 查看认证错误或缺失的 audience 配置。
- 如果没有消息到达,确认 Chat 应用的 webhook URL + 事件订阅。
- 如果提及门控阻止了回复,将 `botUser` 设置为应用的用户资源名称并验证 `requireMention`
- 发送测试消息时使用 `openclaw logs --follow` 查看请求是否到达 Gateway。
- 发送测试消息时使用 `openclaw logs --follow` 查看请求是否到达 Gateway网关
相关文档:
- [Gateway 配置](/gateway/configuration)
- [Gateway网关配置](/gateway/configuration)
- [安全](/gateway/security)
- [回应](/tools/reactions)

View File

@ -22,10 +22,10 @@ x-i18n:
# 已交付的功能
- **单一客户端路径:** 基于 fetch 的实现已移除grammY 现在是唯一的 Telegram 客户端(发送 + Gateway默认启用 grammY throttler。
- **Gateway** `monitorTelegramProvider` 构建一个 grammY `Bot`,接入提及/允许列表门控、通过 `getFile`/`download` 下载媒体,并通过 `sendMessage/sendPhoto/sendVideo/sendAudio/sendDocument` 投递回复。支持通过 `webhookCallback` 进行长轮询或 webhook。
- **单一客户端路径:** 基于 fetch 的实现已移除grammY 现在是唯一的 Telegram 客户端(发送 + Gateway网关),默认启用 grammY throttler。
- **Gateway网关** `monitorTelegramProvider` 构建一个 grammY `Bot`,接入提及/允许列表门控、通过 `getFile`/`download` 下载媒体,并通过 `sendMessage/sendPhoto/sendVideo/sendAudio/sendDocument` 投递回复。支持通过 `webhookCallback` 进行长轮询或 webhook。
- **代理:** 可选的 `channels.telegram.proxy` 通过 grammY 的 `client.baseFetch` 使用 `undici.ProxyAgent`
- **Webhook 支持:** `webhook-set.ts` 封装了 `setWebhook/deleteWebhook``webhook.ts` 托管回调并支持健康检查 + 优雅关闭。当设置了 `channels.telegram.webhookUrl` + `channels.telegram.webhookSecret` 时 Gateway 启用 webhook 模式(否则使用长轮询)。
- **Webhook 支持:** `webhook-set.ts` 封装了 `setWebhook/deleteWebhook``webhook.ts` 托管回调并支持健康检查 + 优雅关闭。当设置了 `channels.telegram.webhookUrl` + `channels.telegram.webhookSecret` 时 Gateway网关启用 webhook 模式(否则使用长轮询)。
- **会话:** 私聊合并到智能体主会话(`agent:<agentId>:<mainKey>`);群组使用 `agent:<agentId>:telegram:group:<chatId>`;回复路由回同一渠道。
- **配置选项:** `channels.telegram.botToken`、`channels.telegram.dmPolicy`、`channels.telegram.groups`(允许列表 + 提及默认值)、`channels.telegram.allowFrom`、`channels.telegram.groupAllowFrom`、`channels.telegram.groupPolicy`、`channels.telegram.mediaMaxMb`、`channels.telegram.linkPreview`、`channels.telegram.proxy`、`channels.telegram.webhookSecret`、`channels.telegram.webhookUrl`。
- **草稿流式传输:** 可选的 `channels.telegram.streamMode` 在私有话题聊天中使用 `sendMessageDraft`Bot API 9.3+)。这与渠道分块流式传输是分开的。
@ -35,4 +35,4 @@ x-i18n:
- 如果遇到 Bot API 429 错误,考虑使用可选的 grammY 插件throttler
- 添加更多结构化的媒体测试(贴纸、语音消息)。
- 使 webhook 监听端口可配置(目前固定为 8787除非通过 Gateway 接入)。
- 使 webhook 监听端口可配置(目前固定为 8787除非通过 Gateway网关接入)。

View File

@ -15,7 +15,7 @@ x-i18n:
# iMessageimsg
状态:外部 CLI 集成。Gateway 启动 `imsg rpc`(基于 stdio 的 JSON-RPC
状态:外部 CLI 集成。Gateway网关启动 `imsg rpc`(基于 stdio 的 JSON-RPC
## 快速设置(新手)
@ -23,7 +23,7 @@ x-i18n:
2. 安装 `imsg`
- `brew install steipete/tap/imsg`
3. 配置 OpenClaw 的 `channels.imessage.cliPath``channels.imessage.dbPath`
4. 启动 Gateway 并批准所有 macOS 提示(自动化 + 完全磁盘访问权限)。
4. 启动 Gateway网关并批准所有 macOS 提示(自动化 + 完全磁盘访问权限)。
最小配置:
@ -68,7 +68,7 @@ x-i18n:
## 设置(快速路径)
1. 确保此 Mac 上的"信息"已登录。
2. 配置 iMessage 并启动 Gateway。
2. 配置 iMessage 并启动 Gateway网关
### 专用机器人 macOS 用户(用于隔离身份)
@ -149,13 +149,13 @@ exec ssh -T gateway-host imsg "$@"
#### 通过 Tailscale 连接远程 Mac示例
如果 Gateway 运行在 Linux 主机/虚拟机上但 iMessage 必须运行在 Mac 上Tailscale 是最简单的桥接方案Gateway 通过 tailnet 与 Mac 通信,通过 SSH 运行 `imsg`,并通过 SCP 传回附件。
如果 Gateway网关运行在 Linux 主机/虚拟机上但 iMessage 必须运行在 Mac 上Tailscale 是最简单的桥接方案Gateway网关通过 tailnet 与 Mac 通信,通过 SSH 运行 `imsg`,并通过 SCP 传回附件。
架构:
```
┌──────────────────────────────┐ SSH (imsg rpc) ┌──────────────────────────┐
│ Gateway 主机Linux/VM │──────────────────────────────────▶│ 装有 Messages + imsg 的 Mac │
│ Gateway网关主机Linux/VM │──────────────────────────────────▶│ 装有 Messages + imsg 的 Mac │
│ - openclaw gateway │ SCP附件 │ - Messages 已登录 │
│ - channels.imessage.cliPath │◀──────────────────────────────────│ - 远程登录已启用 │
└──────────────────────────────┘ └──────────────────────────┘
@ -216,7 +216,7 @@ exec ssh -T bot@mac-mini.tailnet-1234.ts.net imsg "$@"
## 工作原理(行为)
- `imsg` 流式传输消息事件Gateway 将其标准化为共享的渠道信封。
- `imsg` 流式传输消息事件Gateway网关将其标准化为共享的渠道信封。
- 回复始终路由回同一个 chat id 或用户名。
## 类群组线程(`is_group=false`

View File

@ -15,13 +15,13 @@ x-i18n:
# 聊天渠道
OpenClaw 可以在你已经使用的任何聊天应用上与你对话。每个渠道通过 Gateway 连接。所有渠道都支持文本;媒体和回应功能因渠道而异。
OpenClaw 可以在你已经使用的任何聊天应用上与你对话。每个渠道通过 Gateway网关连接。所有渠道都支持文本;媒体和回应功能因渠道而异。
## 支持的渠道
- [WhatsApp](/channels/whatsapp) — 最受欢迎;使用 Baileys 并需要二维码配对。
- [Telegram](/channels/telegram) — 通过 grammY 使用 Bot API支持群组。
- [Discord](/channels/discord) — Discord Bot API + Gateway支持服务器、频道和私信。
- [Discord](/channels/discord) — Discord Bot API + Gateway网关;支持服务器、频道和私信。
- [Slack](/channels/slack) — Bolt SDK工作区应用。
- [Google Chat](/channels/googlechat) — 通过 HTTP webhook 使用 Google Chat API 应用。
- [Mattermost](/channels/mattermost) — Bot API + WebSocket频道、群组、私信插件需单独安装
@ -37,7 +37,7 @@ OpenClaw 可以在你已经使用的任何聊天应用上与你对话。每个
- [Twitch](/channels/twitch) — 通过 IRC 连接的 Twitch 聊天(插件,需单独安装)。
- [Zalo](/channels/zalo) — Zalo Bot API越南流行的通讯工具插件需单独安装
- [Zalo Personal](/channels/zalouser) — 通过二维码登录的 Zalo 个人账户(插件,需单独安装)。
- [WebChat](/web/webchat) — 通过 WebSocket 的 Gateway WebChat UI。
- [WebChat](/web/webchat) — 通过 WebSocket 的 Gateway网关 WebChat UI。
## 注意事项

View File

@ -16,7 +16,7 @@ x-i18n:
# LINE插件
LINE 通过 LINE Messaging API 连接到 OpenClaw。插件作为 Gateway 上的 webhook 接收器运行,使用你的频道访问 token + 频道密钥进行认证。
LINE 通过 LINE Messaging API 连接到 OpenClaw。插件作为 Gateway网关上的 webhook 接收器运行,使用你的频道访问 token + 频道密钥进行认证。
状态通过插件支持。支持私信、群聊、媒体、位置、Flex 消息、模板消息和快速回复。不支持回应和线程。
@ -41,13 +41,13 @@ openclaw plugins install ./extensions/line
2. 创建(或选择)一个 Provider 并添加一个 **Messaging API** 频道。
3. 从频道设置中复制 **Channel access token****Channel secret**
4. 在 Messaging API 设置中启用 **Use webhook**
5. 将 webhook URL 设置为你的 Gateway 端点(需要 HTTPS
5. 将 webhook URL 设置为你的 Gateway网关端点(需要 HTTPS
```
https://gateway-host/line/webhook
```
Gateway 响应 LINE 的 webhook 验证GET和入站事件POST。如果你需要自定义路径请设置 `channels.line.webhookPath``channels.line.accounts.<id>.webhookPath` 并相应更新 URL。
Gateway网关响应 LINE 的 webhook 验证GET和入站事件POST。如果你需要自定义路径请设置 `channels.line.webhookPath``channels.line.accounts.<id>.webhookPath` 并相应更新 URL。
## 配置
@ -176,5 +176,5 @@ LINE 插件还附带一个 `/card` 命令用于 Flex 消息预设:
## 故障排除
- **Webhook 验证失败:** 确保 webhook URL 为 HTTPS 且 `channelSecret` 与 LINE 控制台匹配。
- **没有入站事件:** 确认 webhook 路径与 `channels.line.webhookPath` 匹配且 Gateway 可从 LINE 访问。
- **没有入站事件:** 确认 webhook 路径与 `channels.line.webhookPath` 匹配且 Gateway网关可从 LINE 访问。
- **媒体下载错误:** 如果媒体超过默认限制,请增大 `channels.line.mediaMaxMb`

View File

@ -34,7 +34,7 @@ openclaw plugins install @openclaw/matrix
openclaw plugins install ./extensions/matrix
```
如果你在配置/手引导期间选择了 Matrix 并检测到 git 检出OpenClaw 会自动提供本地安装路径。
如果你在配置/手引导期间选择了 Matrix 并检测到 git 检出OpenClaw 会自动提供本地安装路径。
详情:[插件](/plugin)
@ -72,7 +72,7 @@ openclaw plugins install ./extensions/matrix
- 如果两者都设置了,配置优先。
- 使用访问 token 时:用户 ID 通过 `/whoami` 自动获取。
- 设置时,`channels.matrix.userId` 应为完整的 Matrix ID例如`@bot:example.org`)。
5. 重启 Gateway(或完成上手引导)。
5. 重启 Gateway网关(或完成新手引导)。
6. 从任何 Matrix 客户端Element、Beeper 等;参见 https://matrix.org/ecosystem/clients/与机器人开始私信或邀请它加入房间。Beeper 需要端到端加密,因此请设置 `channels.matrix.encryption: true` 并验证设备。
最小配置(访问 token用户 ID 自动获取):

View File

@ -33,7 +33,7 @@ openclaw plugins install @openclaw/mattermost
openclaw plugins install ./extensions/mattermost
```
如果你在配置/手引导期间选择了 Mattermost 并检测到 git 检出OpenClaw 会自动提供本地安装路径。
如果你在配置/手引导期间选择了 Mattermost 并检测到 git 检出OpenClaw 会自动提供本地安装路径。
详情:[插件](/plugin)
@ -42,7 +42,7 @@ openclaw plugins install ./extensions/mattermost
1. 安装 Mattermost 插件。
2. 创建一个 Mattermost 机器人账户并复制 **bot token**
3. 复制 Mattermost **基础 URL**(例如 `https://chat.example.com`)。
4. 配置 OpenClaw 并启动 Gateway。
4. 配置 OpenClaw 并启动 Gateway网关
最小配置:
@ -61,7 +61,7 @@ openclaw plugins install ./extensions/mattermost
## 环境变量(默认账户)
如果你偏好使用环境变量,请在 Gateway 主机上设置:
如果你偏好使用环境变量,请在 Gateway网关主机上设置:
- `MATTERMOST_BOT_TOKEN=...`
- `MATTERMOST_URL=https://chat.example.com`

View File

@ -40,7 +40,7 @@ openclaw plugins install @openclaw/msteams
openclaw plugins install ./extensions/msteams
```
如果你在配置/手引导期间选择了 Teams 并检测到 git 检出OpenClaw 会自动提供本地安装路径。
如果你在配置/手引导期间选择了 Teams 并检测到 git 检出OpenClaw 会自动提供本地安装路径。
详情:[插件](/plugin)
@ -50,7 +50,7 @@ openclaw plugins install ./extensions/msteams
2. 创建一个 **Azure Bot**App ID + 客户端密钥 + 租户 ID
3. 使用这些凭据配置 OpenClaw。
4. 通过公共 URL 或隧道暴露 `/api/messages`(默认端口 3978
5. 安装 Teams 应用包并启动 Gateway。
5. 安装 Teams 应用包并启动 Gateway网关
最小配置:
@ -148,8 +148,8 @@ openclaw plugins install ./extensions/msteams
2. 创建一个 **Azure Bot**App ID + 密钥 + 租户 ID
3. 构建一个引用该机器人并包含下方 RSC 权限的 **Teams 应用包**
4. 将 Teams 应用上传/安装到团队(或私人范围用于私信)。
5. 在 `~/.openclaw/openclaw.json`(或环境变量)中配置 `msteams` 并启动 Gateway。
6. Gateway 默认在 `/api/messages` 上监听 Bot Framework webhook 流量。
5. 在 `~/.openclaw/openclaw.json`(或环境变量)中配置 `msteams` 并启动 Gateway网关
6. Gateway网关默认在 `/api/messages` 上监听 Bot Framework webhook 流量。
## Azure Bot 设置(前提条件)
@ -239,7 +239,7 @@ tailscale funnel 3978
1. 安装 Teams 应用(旁加载或组织目录)
2. 在 Teams 中找到机器人并发送私信
3. 检查 Gateway 日志中的传入活动
3. 检查 Gateway网关日志中的传入活动
## 设置(最小纯文本)
@ -284,7 +284,7 @@ tailscale funnel 3978
- 将 Azure Bot 消息端点设置为:
- `https://<host>:3978/api/messages`(或你选择的路径/端口)。
6. **运行 Gateway**
6. **运行 Gateway网关**
- 当插件已安装且 `msteams` 配置存在凭据时Teams 渠道会自动启动。
## 历史上下文
@ -434,7 +434,7 @@ tailscale funnel 3978
Teams 通过 HTTP webhook 投递消息。如果处理时间过长(例如 LLM 响应缓慢),你可能会看到:
- Gateway 超时
- Gateway网关超时
- Teams 重试消息(导致重复)
- 回复丢失
@ -598,8 +598,8 @@ Teams 最近在相同的底层数据模型上引入了两种频道 UI 样式:
OpenClaw 通过 Adaptive Cards 发送 Teams 投票(没有原生 Teams 投票 API
- CLI`openclaw message poll --channel msteams --target conversation:<id> ...`
- 投票由 Gateway 记录在 `~/.openclaw/msteams-polls.json` 中。
- Gateway 必须保持在线以记录投票。
- 投票由 Gateway网关记录在 `~/.openclaw/msteams-polls.json` 中。
- Gateway网关必须保持在线以记录投票。
- 投票尚不会自动发布结果摘要(如需要请查看存储文件)。
## Adaptive Cards任意

View File

@ -32,7 +32,7 @@ openclaw plugins install @openclaw/nextcloud-talk
openclaw plugins install ./extensions/nextcloud-talk
```
如果你在配置/手引导期间选择了 Nextcloud Talk 并检测到 git 检出OpenClaw 会自动提供本地安装路径。
如果你在配置/手引导期间选择了 Nextcloud Talk 并检测到 git 检出OpenClaw 会自动提供本地安装路径。
详情:[插件](/plugin)
@ -47,7 +47,7 @@ openclaw plugins install ./extensions/nextcloud-talk
4. 配置 OpenClaw
- 配置:`channels.nextcloud-talk.baseUrl` + `channels.nextcloud-talk.botSecret`
- 或环境变量:`NEXTCLOUD_TALK_BOT_SECRET`(仅默认账户)
5. 重启 Gateway(或完成上手引导)。
5. 重启 Gateway网关(或完成新手引导)。
最小配置:
@ -67,7 +67,7 @@ openclaw plugins install ./extensions/nextcloud-talk
## 注意事项
- 机器人无法主动发起私信。用户必须先给机器人发消息。
- Webhook URL 必须能被 Gateway 访问;如果在代理后面,请设置 `webhookPublicUrl`
- Webhook URL 必须能被 Gateway网关访问;如果在代理后面,请设置 `webhookPublicUrl`
- 机器人 API 不支持媒体上传;媒体以 URL 形式发送。
- Webhook 负载不区分私信和房间;设置 `apiUser` + `apiPassword` 以启用房间类型查询(否则私信会被视为房间)。

View File

@ -17,13 +17,13 @@ x-i18n:
**状态:** 可选插件(默认禁用)。
Nostr 是一个去中心化的社交网络协议。此渠道使 OpenClaw 能够通过 NIP-04 接收和回复加密私信(DM)。
Nostr 是一个去中心化的社交网络协议。此渠道使 OpenClaw 能够通过 NIP-04 接收和回复加密私信(私信)。
## 安装(按需)
### 手引导(推荐)
### 手引导(推荐)
- 手引导向导(`openclaw onboard`)和 `openclaw channels add` 会列出可选的渠道插件。
- 手引导向导(`openclaw onboard`)和 `openclaw channels add` 会列出可选的渠道插件。
- 选择 Nostr 时会提示你按需安装插件。
安装默认行为:
@ -45,7 +45,7 @@ openclaw plugins install @openclaw/nostr
openclaw plugins install --link <path-to-openclaw>/extensions/nostr
```
安装或启用插件后请重启 Gateway。
安装或启用插件后请重启 Gateway网关
## 快速设置
@ -74,7 +74,7 @@ nak key generate
export NOSTR_PRIVATE_KEY="nsec1..."
```
4. 重启 Gateway。
4. 重启 Gateway网关
## 配置参考
@ -214,7 +214,7 @@ docker run -p 7777:7777 ghcr.io/hoytech/strfry
- 验证私钥是否有效。
- 确保中继 URL 可达并使用 `wss://`(本地使用 `ws://`)。
- 确认 `enabled` 未设为 `false`
- 检查 Gateway 日志中的中继连接错误。
- 检查 Gateway网关日志中的中继连接错误。
### 无法发送回复

View File

@ -15,7 +15,7 @@ x-i18n:
# Signalsignal-cli
状态:外部 CLI 集成。Gateway 通过 HTTP JSON-RPC + SSE 与 `signal-cli` 通信。
状态:外部 CLI 集成。Gateway网关通过 HTTP JSON-RPC + SSE 与 `signal-cli` 通信。
## 快速设置(新手)
@ -23,7 +23,7 @@ x-i18n:
2. 安装 `signal-cli`(需要 Java
3. 链接机器人设备并启动守护进程:
- `signal-cli link -n "OpenClaw"`
4. 配置 OpenClaw 并启动 Gateway。
4. 配置 OpenClaw 并启动 Gateway网关
最小配置:
@ -61,7 +61,7 @@ x-i18n:
## 号码模型(重要)
- Gateway 连接到一个 **Signal 设备**`signal-cli` 账户)。
- Gateway网关连接到一个 **Signal 设备**`signal-cli` 账户)。
- 如果你在**个人 Signal 账户**上运行机器人,它会忽略你自己的消息(循环保护)。
- 要实现"我给机器人发消息它回复我",请使用一个**单独的机器人号码**。
@ -70,7 +70,7 @@ x-i18n:
1. 安装 `signal-cli`(需要 Java
2. 链接机器人账户:
- `signal-cli link -n "OpenClaw"` 然后在 Signal 中扫描二维码。
3. 配置 Signal 并启动 Gateway。
3. 配置 Signal 并启动 Gateway网关
示例:
@ -126,7 +126,7 @@ x-i18n:
## 工作原理(行为)
- `signal-cli` 作为守护进程运行Gateway 通过 SSE 读取事件。
- `signal-cli` 作为守护进程运行Gateway网关通过 SSE 读取事件。
- 入站消息被标准化为共享的渠道信封。
- 回复始终路由回同一个号码或群组。

View File

@ -19,7 +19,7 @@ x-i18n:
1. 创建一个 Slack 应用并启用 **Socket Mode**
2. 创建一个 **App Token**`xapp-...`)和 **Bot Token**`xoxb-...`)。
3. 为 OpenClaw 设置 token 并启动 Gateway。
3. 为 OpenClaw 设置 token 并启动 Gateway网关
最小配置:
@ -126,14 +126,14 @@ OpenClaw 可以使用 Slack 用户 token`xoxp-...`)进行读取操作(历
## HTTP 模式Events API
当你的 Gateway 可通过 HTTPS 被 Slack 访问时使用 HTTP webhook 模式适用于服务器部署。HTTP 模式使用 Events API + Interactivity + Slash Commands共享请求 URL。
当你的 Gateway网关可通过 HTTPS 被 Slack 访问时使用 HTTP webhook 模式适用于服务器部署。HTTP 模式使用 Events API + Interactivity + Slash Commands共享请求 URL。
### 设置
1. 创建 Slack 应用并**禁用 Socket Mode**(如果你只使用 HTTP 则可选)。
2. **Basic Information** → 复制 **Signing Secret**
3. **OAuth & Permissions** → 安装应用并复制 **Bot User OAuth Token**`xoxb-...`)。
4. **Event Subscriptions** → 启用事件并将 **Request URL** 设置为你的 Gateway webhook 路径(默认 `/slack/events`)。
4. **Event Subscriptions** → 启用事件并将 **Request URL** 设置为你的 Gateway网关 webhook 路径(默认 `/slack/events`)。
5. **Interactivity & Shortcuts** → 启用并设置相同的 **Request URL**
6. **Slash Commands** → 为你的命令设置相同的 **Request URL**
@ -490,7 +490,7 @@ Token 也可以通过环境变量提供:
- `toolsBySender`:可选的频道内按发送者工具策略覆盖(键为发送者 ID/@用户名/邮箱;支持 `"*"` 通配符)。
- `allowBots`允许此频道中机器人发送的消息默认false
- `users`:可选的按频道用户允许列表。
- `skills`技能过滤器(省略 = 所有技能,空 = 无)。
- `skills`Skills 过滤器(省略 = 所有 Skills,空 = 无)。
- `systemPrompt`:频道的额外系统提示(与主题/目的合并)。
- `enabled`:设置 `false` 可禁用频道。

View File

@ -23,7 +23,7 @@ x-i18n:
- 环境变量:`TELEGRAM_BOT_TOKEN=...`
- 或配置:`channels.telegram.botToken: "..."`。
- 如果两者都设置了,配置优先(环境变量回退仅适用于默认账户)。
3. 启动 Gateway。
3. 启动 Gateway网关
4. 私聊访问默认为配对模式;首次联系时需批准配对码。
最小配置:
@ -42,7 +42,7 @@ x-i18n:
## 简介
- 由 Gateway 管理的 Telegram Bot API 渠道。
- 由 Gateway网关管理的 Telegram Bot API 渠道。
- 确定性路由:回复始终发回 Telegram模型不会选择渠道。
- 私聊共享智能体的主会话;群组保持隔离(`agent:<agentId>:telegram:group:<chatId>`)。
@ -81,7 +81,7 @@ x-i18n:
多账户支持:使用 `channels.telegram.accounts`,为每个账户设置令牌和可选的 `name`。请参阅 [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) 了解通用模式。
3. 启动 Gateway。当令牌被解析后配置优先环境变量回退Telegram 即启动。
3. 启动 Gateway网关。当令牌被解析后配置优先环境变量回退Telegram 即启动。
4. 私聊访问默认为配对模式。机器人首次被联系时需批准配对码。
5. 对于群组:添加机器人,决定隐私/管理员行为(见下文),然后设置 `channels.telegram.groups` 来控制提及门控 + 白名单。
@ -365,7 +365,7 @@ Telegram 功能可在两个层级配置(上面展示了对象形式;旧版
更安全的方式(无需第三方机器人):
1. 启动 Gateway 并私聊你的机器人。
1. 启动 Gateway网关并私聊你的机器人。
2. 运行 `openclaw logs --follow` 并查找 `from.id`
替代方式(官方 Bot API
@ -682,7 +682,7 @@ Telegram 表情回应作为**独立的 `message_reaction` 事件**到达,而
- 如果设置了 `channels.telegram.groups`,群组必须被列出或使用 `"*"`
- 在 @BotFather 中检查隐私设置 → "Group Privacy" 应为 **OFF**
- 确认机器人确实是成员(而非只是没有读取权限的管理员)
- 检查 Gateway 日志:`openclaw logs --follow`(查找 "skipping group message"
- 检查 Gateway网关日志:`openclaw logs --follow`(查找 "skipping group message"
**机器人响应提及但不响应 `/activation always`**
@ -697,12 +697,12 @@ Telegram 表情回应作为**独立的 `message_reaction` 事件**到达,而
**长轮询在 Node 22+ 上立即中止(通常涉及代理/自定义 fetch**
- Node 22+ 对 `AbortSignal` 实例更严格;外部信号可能会立即中止 `fetch` 调用。
- 升级到规范化 abort 信号的 OpenClaw 版本,或在 Node 20 上运行 Gateway 直到可以升级。
- 升级到规范化 abort 信号的 OpenClaw 版本,或在 Node 20 上运行 Gateway网关直到可以升级。
**机器人启动后静默停止响应(或日志中出现 `HttpError: Network request ... failed`**
- 某些主机优先将 `api.telegram.org` 解析为 IPv6。如果你的服务器没有可用的 IPv6 出口grammY 可能会卡在仅 IPv6 的请求上。
- 修复方法:启用 IPv6 出口**或者**强制 `api.telegram.org` 使用 IPv4 解析(例如,使用 IPv4 A 记录添加 `/etc/hosts` 条目,或在操作系统 DNS 栈中优先使用 IPv4然后重启 Gateway。
- 修复方法:启用 IPv6 出口**或者**强制 `api.telegram.org` 使用 IPv4 解析(例如,使用 IPv4 A 记录添加 `/etc/hosts` 条目,或在操作系统 DNS 栈中优先使用 IPv4然后重启 Gateway网关
- 快速检查:`dig +short api.telegram.org A` 和 `dig +short api.telegram.org AAAA` 确认 DNS 返回的内容。
## 配置参考Telegram
@ -720,7 +720,7 @@ Telegram 表情回应作为**独立的 `message_reaction` 事件**到达,而
- `channels.telegram.groupAllowFrom`群组发送者白名单ID/用户名)。
- `channels.telegram.groups`:按群组的默认设置 + 白名单(使用 `"*"` 作为全局默认)。
- `channels.telegram.groups.<id>.requireMention`:提及门控默认值。
- `channels.telegram.groups.<id>.skills`技能过滤(省略 = 所有技能,空 = 无技能)。
- `channels.telegram.groups.<id>.skills`Skills 过滤(省略 = 所有 Skills空 = 无 Skills)。
- `channels.telegram.groups.<id>.allowFrom`:按群组的发送者白名单覆盖。
- `channels.telegram.groups.<id>.systemPrompt`:群组的额外系统提示词。
- `channels.telegram.groups.<id>.enabled`:设为 `false` 时禁用该群组。

View File

@ -43,7 +43,7 @@ openclaw plugins install ./extensions/tlon
1. 安装 Tlon 插件。
2. 获取你的 ship URL 和登录代码。
3. 配置 `channels.tlon`
4. 重启 Gateway。
4. 重启 Gateway网关
5. 向机器人发送私信或在群组渠道中提及它。
最小配置(单账户):

View File

@ -46,7 +46,7 @@ openclaw plugins install ./extensions/twitch
- 环境变量:`OPENCLAW_TWITCH_ACCESS_TOKEN=...`(仅限默认账号)
- 或配置文件:`channels.twitch.accessToken`
- 如果两者都设置了,配置文件优先(环境变量回退仅适用于默认账号)。
5. 启动 Gateway。
5. 启动 Gateway网关
**⚠️ 重要:** 添加访问控制(`allowFrom` 或 `allowedRoles`)以防止未授权用户触发机器人。`requireMention` 默认为 `true`
@ -69,7 +69,7 @@ openclaw plugins install ./extensions/twitch
## 工作原理
- 由 Gateway 拥有的 Twitch 渠道。
- 由 Gateway网关拥有的 Twitch 渠道。
- 确定性路由:回复始终返回到 Twitch。
- 每个账号映射到一个隔离的会话键 `agent:<agentId>:twitch:<accountName>`
- `username` 是机器人的账号(用于认证),`channel` 是要加入的聊天室。
@ -375,7 +375,7 @@ Access token refreshed for user 123456 (expires in 14400s)
- **使用用户 ID 允许列表** 而非用户名进行访问控制
- **监控日志** 关注令牌刷新事件和连接状态
- **最小化令牌权限范围** - 仅请求 `chat:read``chat:write`
- **如遇问题**:确认没有其他进程占用会话后,重启 Gateway
- **如遇问题**:确认没有其他进程占用会话后,重启 Gateway网关
## 限制

View File

@ -14,14 +14,14 @@ x-i18n:
# WhatsApp网页渠道
状态:仅支持通过 Baileys 的 WhatsApp Web。Gateway 拥有会话。
状态:仅支持通过 Baileys 的 WhatsApp Web。Gateway网关拥有会话。
## 快速设置(入门)
1. 如果可能,使用**单独的手机号码**(推荐)。
2. 在 `~/.openclaw/openclaw.json` 中配置 WhatsApp。
3. 运行 `openclaw channels login` 扫描二维码(已关联设备)。
4. 启动 Gateway。
4. 启动 Gateway网关
最小配置:
@ -38,7 +38,7 @@ x-i18n:
## 目标
- 单个 Gateway 进程中支持多个 WhatsApp 账号(多账号)。
- 单个 Gateway网关进程中支持多个 WhatsApp 账号(多账号)。
- 确定性路由:回复返回到 WhatsApp无模型路由。
- 模型获得足够的上下文以理解引用回复。
@ -56,8 +56,8 @@ x-i18n:
## 架构(职责划分)
- **Gateway** 拥有 Baileys socket 和收件箱循环。
- **CLI / macOS 应用** 与 Gateway 通信;不直接使用 Baileys。
- **Gateway网关** 拥有 Baileys socket 和收件箱循环。
- **CLI / macOS 应用** 与 Gateway网关通信;不直接使用 Baileys。
- **活跃监听器** 是出站发送的必要条件;否则发送会快速失败。
## 获取手机号码(两种模式)
@ -161,7 +161,7 @@ WhatsApp 需要真实的手机号码进行验证。VoIP 和虚拟号码通常会
## 已读回执
默认情况下Gateway 会在接受入站 WhatsApp 消息后将其标记为已读(蓝色对勾)。
默认情况下Gateway网关会在接受入站 WhatsApp 消息后将其标记为已读(蓝色对勾)。
全局禁用:
@ -242,7 +242,7 @@ WhatsApp 需要真实的手机号码进行验证。VoIP 和虚拟号码通常会
## 回复投递(线程)
- WhatsApp Web 发送标准消息(当前 Gateway 中无引用回复线程)。
- WhatsApp Web 发送标准消息(当前 Gateway网关中无引用回复线程)。
- 此渠道忽略回复标签。
## 确认反应(收到消息时自动反应)
@ -266,7 +266,7 @@ WhatsApp 可以在收到消息时立即自动发送表情反应,在机器人
**选项:**
- `emoji`(字符串):用于确认的表情(例如 "👀"、"✅"、"📨")。为空或省略 = 功能禁用。
- `direct`(布尔值,默认:`true`):在私聊/DM 中发送反应。
- `direct`(布尔值,默认:`true`):在私聊/私信 中发送反应。
- `group`(字符串,默认:`"mentions"`):群聊行为:
- `"always"`:对所有群聊消息做出反应(即使没有 @提及)
- `"mentions"`:仅在机器人被 @提及时做出反应
@ -314,7 +314,7 @@ WhatsApp 可以在收到消息时立即自动发送表情反应,在机器人
## 出站发送(文本 + 媒体)
- 使用活跃的网页监听器;如果 Gateway 未运行则报错。
- 使用活跃的网页监听器;如果 Gateway网关未运行则报错。
- 文本分块:每条消息最大 4k可通过 `channels.whatsapp.textChunkLimit` 配置,可选 `channels.whatsapp.chunkMode`)。
- 媒体:
- 支持图片/视频/音频/文档。
@ -323,7 +323,7 @@ WhatsApp 可以在收到消息时立即自动发送表情反应,在机器人
- 媒体获取支持 HTTP(S) 和本地路径。
- 动态 GIFWhatsApp 期望带 `gifPlayback: true` 的 MP4 以实现内联循环播放。
- CLI`openclaw message send --media <mp4> --gif-playback`
- Gateway`send` 参数包含 `gifPlayback: true`
- Gateway网关`send` 参数包含 `gifPlayback: true`
## 语音消息PTT 音频)
@ -341,7 +341,7 @@ WhatsApp 以**语音消息**PTT 气泡)发送音频。
## 心跳
- **Gateway 心跳** 记录连接健康状态(`web.heartbeatSeconds`,默认 60 秒)。
- **Gateway网关心跳** 记录连接健康状态(`web.heartbeatSeconds`,默认 60 秒)。
- **智能体心跳** 可按智能体配置(`agents.list[].heartbeat`)或通过
`agents.defaults.heartbeat` 全局配置(未设置每智能体条目时的回退)。
- 使用配置的心跳提示(默认:`Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`+ `HEARTBEAT_OK` 跳过行为。
@ -390,21 +390,21 @@ WhatsApp 以**语音消息**PTT 气泡)发送音频。
- 子系统:`whatsapp/inbound`、`whatsapp/outbound`、`web-heartbeat`、`web-reconnect`。
- 日志文件:`/tmp/openclaw/openclaw-YYYY-MM-DD.log`(可配置)。
- 故障排除指南:[Gateway 故障排除](/gateway/troubleshooting)。
- 故障排除指南:[Gateway网关故障排除](/gateway/troubleshooting)。
## 故障排除(快速)
**未关联 / 需要二维码登录**
- 症状:`channels status` 显示 `linked: false` 或警告"未关联"。
- 修复:在 Gateway 主机上运行 `openclaw channels login` 并扫描二维码WhatsApp → 设置 → 已关联设备)。
- 修复:在 Gateway网关主机上运行 `openclaw channels login` 并扫描二维码WhatsApp → 设置 → 已关联设备)。
**已关联但断开连接 / 重连循环**
- 症状:`channels status` 显示 `running, disconnected` 或警告"已关联但断开连接"。
- 修复:`openclaw doctor`(或重启 Gateway。如果问题持续通过 `channels login` 重新关联并检查 `openclaw logs --follow`
- 修复:`openclaw doctor`(或重启 Gateway网关)。如果问题持续,通过 `channels login` 重新关联并检查 `openclaw logs --follow`
**Bun 运行时**
- **不推荐**使用 Bun。WhatsAppBaileys和 Telegram 在 Bun 上不稳定。
请使用 **Node** 运行 Gateway。参见入门指南运行时说明。
请使用 **Node** 运行 Gateway网关。(参见入门指南运行时说明。)

View File

@ -21,7 +21,7 @@ x-i18n:
Zalo 以插件形式提供,不包含在核心安装中。
- 通过 CLI 安装:`openclaw plugins install @openclaw/zalo`
- 或在手引导中选择 **Zalo** 并确认安装提示
- 或在手引导中选择 **Zalo** 并确认安装提示
- 详情:[插件](/plugin)
## 快速设置(新手)
@ -29,11 +29,11 @@ Zalo 以插件形式提供,不包含在核心安装中。
1. 安装 Zalo 插件:
- 从源码检出安装:`openclaw plugins install ./extensions/zalo`
- 从 npm 安装(如已发布):`openclaw plugins install @openclaw/zalo`
- 或在手引导中选择 **Zalo** 并确认安装提示
- 或在手引导中选择 **Zalo** 并确认安装提示
2. 设置令牌:
- 环境变量:`ZALO_BOT_TOKEN=...`
- 或配置:`channels.zalo.botToken: "..."`。
3. 重启 Gateway(或完成上手引导)。
3. 重启 Gateway网关(或完成新手引导)。
4. 私信访问默认使用配对模式;首次联系时需批准配对码。
最小配置:
@ -52,10 +52,10 @@ Zalo 以插件形式提供,不包含在核心安装中。
## 简介
Zalo 是一款面向越南市场的即时通讯应用;其 Bot API 允许 Gateway 运行一个用于一对一对话的机器人。
Zalo 是一款面向越南市场的即时通讯应用;其 Bot API 允许 Gateway网关运行一个用于一对一对话的机器人。
它非常适合需要将消息确定性路由回 Zalo 的客服或通知场景。
- 由 Gateway 管理的 Zalo Bot API 渠道。
- 由 Gateway网关管理的 Zalo Bot API 渠道。
- 确定性路由:回复始终返回 Zalo模型不会选择渠道。
- 私信共享智能体的主会话。
- 群组尚不支持Zalo 文档标注"即将推出")。
@ -88,7 +88,7 @@ Zalo 是一款面向越南市场的即时通讯应用;其 Bot API 允许 Gatew
多账户支持:使用 `channels.zalo.accounts`,为每个账户配置令牌和可选的 `name`
3. 重启 Gateway。当令牌被解析通过环境变量或配置Zalo 将启动。
3. 重启 Gateway网关。当令牌被解析通过环境变量或配置Zalo 将启动。
4. 私信访问默认使用配对模式。机器人首次被联系时,请批准配对码。
## 工作原理(行为)
@ -121,7 +121,7 @@ Zalo 是一款面向越南市场的即时通讯应用;其 Bot API 允许 Gatew
- Webhook 密钥必须为 8-256 个字符。
- Webhook URL 必须使用 HTTPS。
- Zalo 通过 `X-Bot-Api-Secret-Token` 请求头发送事件以进行验证。
- Gateway HTTP 在 `channels.zalo.webhookPath` 处理 webhook 请求(默认为 webhook URL 路径)。
- Gateway网关 HTTP 在 `channels.zalo.webhookPath` 处理 webhook 请求(默认为 webhook URL 路径)。
**注意:** 根据 Zalo API 文档getUpdates轮询和 webhook 互斥。
@ -156,13 +156,13 @@ Zalo 是一款面向越南市场的即时通讯应用;其 Bot API 允许 Gatew
- 检查令牌是否有效:`openclaw channels status --probe`
- 验证发送者是否已批准(配对或 allowFrom
- 检查 Gateway 日志:`openclaw logs --follow`
- 检查 Gateway网关日志:`openclaw logs --follow`
**Webhook 未收到事件:**
- 确保 webhook URL 使用 HTTPS
- 验证密钥令牌为 8-256 个字符
- 确认 Gateway HTTP 端点在配置的路径上可达
- 确认 Gateway网关 HTTP 端点在配置的路径上可达
- 检查 getUpdates 轮询是否未在运行(两者互斥)
## 配置参考Zalo
@ -179,7 +179,7 @@ Zalo 是一款面向越南市场的即时通讯应用;其 Bot API 允许 Gatew
- `channels.zalo.mediaMaxMb`:入站/出站媒体大小上限MB默认 5
- `channels.zalo.webhookUrl`:启用 webhook 模式(需要 HTTPS
- `channels.zalo.webhookSecret`webhook 密钥8-256 个字符)。
- `channels.zalo.webhookPath`Gateway HTTP 服务器上的 webhook 路径。
- `channels.zalo.webhookPath`Gateway网关 HTTP 服务器上的 webhook 路径。
- `channels.zalo.proxy`API 请求的代理 URL。
多账户选项:

View File

@ -29,7 +29,7 @@ Zalo Personal 以插件形式提供,不包含在核心安装包中。
## 前置条件zca-cli
Gateway 所在机器必须在 `PATH` 中包含 `zca` 可执行文件。
Gateway网关所在机器必须在 `PATH` 中包含 `zca` 可执行文件。
- 验证:`zca --version`
- 如果缺失,请安装 zca-cli参见 `extensions/zalouser/README.md` 或上游 zca-cli 文档)。
@ -37,7 +37,7 @@ Gateway 所在机器必须在 `PATH` 中包含 `zca` 可执行文件。
## 快速设置(入门)
1. 安装插件(见上文)。
2. 登录(二维码方式,在 Gateway 机器上操作):
2. 登录(二维码方式,在 Gateway网关机器上操作):
- `openclaw channels login --channel zalouser`
- 使用 Zalo 手机应用扫描终端中的二维码。
3. 启用渠道:
@ -53,7 +53,7 @@ Gateway 所在机器必须在 `PATH` 中包含 `zca` 可执行文件。
}
```
4. 重启 Gateway(或完成上手引导)。
4. 重启 Gateway网关(或完成新手引导)。
5. 私信访问默认为配对模式;首次联系时需批准配对码。
## 功能说明
@ -139,7 +139,7 @@ openclaw directory groups list --channel zalouser --query "work"
**找不到 `zca`**
- 安装 zca-cli 并确保 Gateway 进程的 `PATH` 中包含该命令。
- 安装 zca-cli 并确保 Gateway网关进程的 `PATH` 中包含该命令。
**登录状态无法保持:**

View File

@ -1,7 +1,7 @@
---
read_when:
- 设置基于 ACP 的 IDE 集成
- 调试 ACP 会话到 Gateway 的路由
- 调试 ACP 会话到 Gateway网关的路由
summary: 运行用于 IDE 集成的 ACP 桥接
title: acp
x-i18n:
@ -15,16 +15,16 @@ x-i18n:
# acp
运行与 OpenClaw Gateway 通信的 ACPAgent Client Protocol桥接。
运行与 OpenClaw Gateway网关通信的 ACPAgent Client Protocol桥接。
此命令通过 stdio 使用 ACP 协议与 IDE 通信,并通过 WebSocket 将提示转发到 Gateway。它将 ACP 会话映射到 Gateway 会话密钥。
此命令通过 stdio 使用 ACP 协议与 IDE 通信,并通过 WebSocket 将提示转发到 Gateway网关。它将 ACP 会话映射到 Gateway网关会话密钥。
## 用法
```bash
openclaw acp
# 远程 Gateway
# 远程 Gateway网关
openclaw acp --url wss://gateway-host:18789 --token <token>
# 附加到现有会话密钥
@ -45,7 +45,7 @@ openclaw acp --session agent:main:main --reset-session
```bash
openclaw acp client
# 将启动的桥接指向远程 Gateway
# 将启动的桥接指向远程 Gateway网关
openclaw acp client --server-args --url wss://gateway-host:18789 --token <token>
# 覆盖服务器命令默认openclaw
@ -54,10 +54,10 @@ openclaw acp client --server "node" --server-args openclaw.mjs acp --url ws://12
## 如何使用
当 IDE或其他客户端使用 Agent Client Protocol 并且你希望它驱动 OpenClaw Gateway 会话时,请使用 ACP。
当 IDE或其他客户端使用 Agent Client Protocol 并且你希望它驱动 OpenClaw Gateway网关会话时,请使用 ACP。
1. 确保 Gateway 正在运行(本地或远程)。
2. 配置 Gateway 目标(通过配置文件或标志)。
1. 确保 Gateway网关正在运行(本地或远程)。
2. 配置 Gateway网关目标(通过配置文件或标志)。
3. 将你的 IDE 配置为通过 stdio 运行 `openclaw acp`
示例配置(持久化):
@ -75,7 +75,7 @@ openclaw acp --url wss://gateway-host:18789 --token <token>
## 选择智能体
ACP 不直接选择智能体。它通过 Gateway 会话密钥进行路由。
ACP 不直接选择智能体。它通过 Gateway网关会话密钥进行路由。
使用智能体作用域的会话密钥来指定特定智能体:
@ -85,7 +85,7 @@ openclaw acp --session agent:design:main
openclaw acp --session agent:qa:bug-123
```
每个 ACP 会话映射到单个 Gateway 会话密钥。一个智能体可以有多个会话;除非你覆盖密钥或标签,否则 ACP 默认使用隔离的 `acp:<uuid>` 会话。
每个 ACP 会话映射到单个 Gateway网关会话密钥。一个智能体可以有多个会话;除非你覆盖密钥或标签,否则 ACP 默认使用隔离的 `acp:<uuid>` 会话。
## Zed 编辑器设置
@ -104,7 +104,7 @@ openclaw acp --session agent:qa:bug-123
}
```
要指定特定的 Gateway 或智能体:
要指定特定的 Gateway网关或智能体:
```json
{
@ -131,10 +131,10 @@ openclaw acp --session agent:qa:bug-123
## 会话映射
默认情况下ACP 会话会获得一个带有 `acp:` 前缀的隔离 Gateway 会话密钥。
默认情况下ACP 会话会获得一个带有 `acp:` 前缀的隔离 Gateway网关会话密钥。
要复用已知会话,请传递会话密钥或标签:
- `--session <key>`:使用特定的 Gateway 会话密钥。
- `--session <key>`:使用特定的 Gateway网关会话密钥。
- `--session-label <label>`:通过标签解析现有会话。
- `--reset-session`:为该密钥生成新的会话 ID相同密钥新的对话记录
@ -154,9 +154,9 @@ openclaw acp --session agent:qa:bug-123
## 选项
- `--url <url>`Gateway WebSocket URL配置后默认使用 gateway.remote.url
- `--token <token>`Gateway 认证令牌。
- `--password <password>`Gateway 认证密码。
- `--url <url>`Gateway网关 WebSocket URL配置后默认使用 gateway.remote.url
- `--token <token>`Gateway网关认证令牌。
- `--password <password>`Gateway网关认证密码。
- `--session <key>`:默认会话密钥。
- `--session-label <label>`:要解析的默认会话标签。
- `--require-existing`:如果会话密钥/标签不存在则失败。

View File

@ -1,7 +1,7 @@
---
read_when:
- 想从脚本中运行一次智能体轮次(可选择投递回复)
summary: "`openclaw agent` 的 CLI 参考(通过 Gateway 发送一次智能体轮次)"
- 想从脚本中运行一次智能体轮次(可选择投递回复)
summary: "`openclaw agent` 的 CLI 参考(通过 Gateway网关发送一次智能体轮次)"
title: agent
x-i18n:
generated_at: "2026-02-01T19:58:31Z"
@ -14,7 +14,7 @@ x-i18n:
# `openclaw agent`
通过 Gateway 运行一次智能体轮次(使用 `--local` 进行嵌入式运行)。
通过 Gateway网关运行一次智能体轮次(使用 `--local` 进行嵌入式运行)。
使用 `--agent <id>` 直接指定一个已配置的智能体。
相关内容:

View File

@ -1,6 +1,6 @@
---
read_when:
- 需要多个隔离的智能体(工作区 + 路由 + 认证)
- 需要多个隔离的智能体(工作区 + 路由 + 认证)
summary: "`openclaw agents` 的 CLI 参考(列出/添加/删除/设置身份)"
title: agents
x-i18n:

View File

@ -1,8 +1,8 @@
---
read_when:
- 想通过 CLI 编辑执行审批
- 您需要管理 Gateway 或节点主机上的允许列表
summary: "`openclaw approvals` 的 CLI 参考(用于 Gateway 或节点主机的执行审批)"
- 想通过 CLI 编辑执行审批
- 你需要管理 Gateway网关或节点主机上的允许列表
summary: "`openclaw approvals` 的 CLI 参考(用于 Gateway网关或节点主机的执行审批)"
title: approvals
x-i18n:
generated_at: "2026-02-01T19:58:39Z"
@ -15,8 +15,8 @@ x-i18n:
# `openclaw approvals`
管理**本地主机**、**Gateway 主机**或**节点主机**的执行审批。
默认情况下,命令针对磁盘上的本地审批文件。使用 `--gateway` 针对 Gateway或使用 `--node` 针对特定节点。
管理**本地主机**、**Gateway网关主机**或**节点主机**的执行审批。
默认情况下,命令针对磁盘上的本地审批文件。使用 `--gateway` 针对 Gateway网关,或使用 `--node` 针对特定节点。
相关内容:

View File

@ -25,8 +25,8 @@ x-i18n:
## 常用标志
- `--url <gatewayWsUrl>`Gateway WebSocket URL默认使用配置值
- `--token <token>`Gateway 令牌(如需要)。
- `--url <gatewayWsUrl>`Gateway网关 WebSocket URL默认使用配置值
- `--token <token>`Gateway网关令牌(如需要)。
- `--timeout <ms>`:请求超时时间(毫秒)。
- `--browser-profile <name>`:选择浏览器配置文件(默认使用配置值)。
- `--json`:机器可读输出(在支持的情况下)。
@ -107,7 +107,7 @@ openclaw browser extension path
## 远程浏览器控制(节点主机代理)
如果 Gateway 与浏览器运行在不同的机器上,请在安装了 Chrome/Brave/Edge/Chromium 的机器上运行**节点主机**。Gateway 会将浏览器操作代理到该节点(无需单独的浏览器控制服务器)。
如果 Gateway网关与浏览器运行在不同的机器上,请在安装了 Chrome/Brave/Edge/Chromium 的机器上运行**节点主机**。Gateway网关会将浏览器操作代理到该节点(无需单独的浏览器控制服务器)。
使用 `gateway.nodes.browser.mode` 控制自动路由,使用 `gateway.nodes.browser.node` 在多个节点连接时固定到特定节点。

View File

@ -15,12 +15,12 @@ x-i18n:
# `openclaw channels`
管理 Gateway 上的聊天渠道账号及其运行时状态。
管理 Gateway网关上的聊天渠道账号及其运行时状态。
相关文档:
- 渠道指南:[渠道](/channels/index)
- Gateway 配置:[配置](/gateway/configuration)
- Gateway网关配置:[配置](/gateway/configuration)
## 常用命令

View File

@ -1,6 +1,6 @@
---
read_when:
- 想以非交互方式读取或编辑配置
- 想以非交互方式读取或编辑配置
summary: "`openclaw config` 的 CLI 参考(获取/设置/删除配置值)"
title: config
x-i18n:
@ -53,4 +53,4 @@ openclaw config set gateway.port 19001 --json
openclaw config set channels.whatsapp.groups '["*"]' --json
```
编辑后请重启 Gateway。
编辑后请重启 Gateway网关

View File

@ -1,6 +1,6 @@
---
read_when:
- 想通过交互方式调整凭据、设备或智能体默认设置
- 想通过交互方式调整凭据、设备或智能体默认设置
summary: "`openclaw configure` 的 CLI 参考(交互式配置提示)"
title: configure
x-i18n:
@ -24,13 +24,13 @@ x-i18n:
相关内容:
- Gateway 配置参考:[配置](/gateway/configuration)
- Gateway网关配置参考:[配置](/gateway/configuration)
- Config CLI[Config](/cli/config)
注意事项:
- 选择 Gateway 运行位置时会始终更新 `gateway.mode`。如果您只需要修改这一项,可以直接选择"继续"而无需配置其他部分。
- 面向渠道的服务Slack/Discord/Matrix/Microsoft Teams在设置过程中会提示配置渠道/房间允许列表。可以输入名称或 ID向导会尽可能将名称解析为 ID。
- 选择 Gateway网关运行位置时会始终更新 `gateway.mode`。如果你只需要修改这一项,可以直接选择"继续"而无需配置其他部分。
- 面向渠道的服务Slack/Discord/Matrix/Microsoft Teams在设置过程中会提示配置渠道/房间允许列表。可以输入名称或 ID向导会尽可能将名称解析为 ID。
## 示例

View File

@ -1,7 +1,7 @@
---
read_when:
- 需要定时任务和唤醒功能
- 正在调试定时任务的执行和日志
- 需要定时任务和唤醒功能
- 正在调试定时任务的执行和日志
summary: "`openclaw cron` 的 CLI 参考(调度和运行后台任务)"
title: cron
x-i18n:
@ -15,7 +15,7 @@ x-i18n:
# `openclaw cron`
管理 Gateway 调度器的定时任务。
管理 Gateway网关调度器的定时任务。
相关内容:

View File

@ -1,7 +1,7 @@
---
read_when:
- 正在审批设备配对请求
- 需要轮换或吊销设备令牌
- 正在审批设备配对请求
- 需要轮换或吊销设备令牌
summary: "`openclaw devices` 的 CLI 参考(设备配对 + 令牌轮换/吊销)"
title: devices
x-i18n:
@ -62,9 +62,9 @@ openclaw devices revoke --device <deviceId> --role node
## 通用选项
- `--url <url>`Gateway WebSocket URL配置后默认使用 `gateway.remote.url`)。
- `--token <token>`Gateway 令牌(如需要)。
- `--password <password>`Gateway 密码(密码认证)。
- `--url <url>`Gateway网关 WebSocket URL配置后默认使用 `gateway.remote.url`)。
- `--token <token>`Gateway网关令牌(如需要)。
- `--password <password>`Gateway网关密码(密码认证)。
- `--timeout <ms>`RPC 超时时间。
- `--json`JSON 输出(推荐用于脚本)。

View File

@ -1,7 +1,7 @@
---
read_when:
- 需要通过 Tailscale + CoreDNS 实现广域发现DNS-SD
- 正在为自定义发现域名设置分离 DNS例如openclaw.internal
- 需要通过 Tailscale + CoreDNS 实现广域发现DNS-SD
- 正在为自定义发现域名设置分离 DNS例如openclaw.internal
summary: "`openclaw dns` 的 CLI 参考(广域发现辅助工具)"
title: dns
x-i18n:
@ -19,7 +19,7 @@ x-i18n:
相关内容:
- Gateway 发现:[发现](/gateway/discovery)
- Gateway网关发现:[发现](/gateway/discovery)
- 广域发现配置:[配置](/gateway/configuration)
## 设置

View File

@ -15,7 +15,7 @@ x-i18n:
# `openclaw doctor`
Gateway 和渠道的健康检查 + 快速修复。
Gateway网关和渠道的健康检查 + 快速修复。
相关内容:

View File

@ -1,9 +1,9 @@
---
read_when:
- 从 CLI 运行 Gateway开发或服务器环境
- 调试 Gateway 认证、绑定模式和连接问题
- 通过 Bonjour 发现 Gateway局域网 + tailnet
summary: OpenClaw Gateway CLI`openclaw gateway`)— 运行、查询和发现 Gateway
- 从 CLI 运行 Gateway网关(开发或服务器环境)
- 调试 Gateway网关认证、绑定模式和连接问题
- 通过 Bonjour 发现 Gateway网关(局域网 + tailnet
summary: OpenClaw Gateway网关 CLI`openclaw gateway`)— 运行、查询和发现 Gateway网关
title: gateway
x-i18n:
generated_at: "2026-02-01T19:59:19Z"
@ -14,9 +14,9 @@ x-i18n:
workflow: 14
---
# Gateway CLI
# Gateway网关 CLI
Gateway 是 OpenClaw 的 WebSocket 服务器(渠道、节点、会话、钩子)。
Gateway网关是 OpenClaw 的 WebSocket 服务器(渠道、节点、会话、钩子)。
本页中的子命令位于 `openclaw gateway …` 下。
@ -26,9 +26,7 @@ Gateway 是 OpenClaw 的 WebSocket 服务器(渠道、节点、会话、钩子
- [/gateway/discovery](/gateway/discovery)
- [/gateway/configuration](/gateway/configuration)
## 运行 Gateway
运行本地 Gateway 进程:
## 运行 Gateway网关运行本地 Gateway网关进程
```bash
openclaw gateway
@ -42,10 +40,10 @@ openclaw gateway run
注意事项:
- 默认情况下,除非在 `~/.openclaw/openclaw.json` 中设置了 `gateway.mode=local`,否则 Gateway 会拒绝启动。使用 `--allow-unconfigured` 进行临时/开发运行。
- 在没有认证的情况下绑定到回环地址以外的地址会被阻止(安全防护措施)。
- 授权后 `SIGUSR1` 会触发进程内重启(需启用 `commands.restart` 或使用 Gateway 工具/配置应用/更新)。
- `SIGINT`/`SIGTERM` 处理程序会停止 Gateway 进程,但不会恢复任何自定义终端状态。如果您使用 TUI 或原始模式输入包装 CLI请在退出前恢复终端。
- 默认情况下,除非在 `~/.openclaw/openclaw.json` 中设置了 `gateway.mode=local`,否则 Gateway网关会拒绝启动。使用 `--allow-unconfigured` 进行临时/开发运行。
- 在没有认证的情况下绑定到 local loopback 以外的地址会被阻止(安全防护措施)。
- 授权后 `SIGUSR1` 会触发进程内重启(需启用 `commands.restart` 或使用 Gateway网关工具/配置应用/更新)。
- `SIGINT`/`SIGTERM` 处理程序会停止 Gateway网关进程,但不会恢复任何自定义终端状态。如果你使用 TUI 或原始模式输入包装 CLI请在退出前恢复终端。
### 选项
@ -54,9 +52,9 @@ openclaw gateway run
- `--auth <token|password>`:认证模式覆盖。
- `--token <token>`:令牌覆盖(同时为进程设置 `OPENCLAW_GATEWAY_TOKEN`)。
- `--password <password>`:密码覆盖(同时为进程设置 `OPENCLAW_GATEWAY_PASSWORD`)。
- `--tailscale <off|serve|funnel>`:通过 Tailscale 暴露 Gateway。
- `--tailscale <off|serve|funnel>`:通过 Tailscale 暴露 Gateway网关
- `--tailscale-reset-on-exit`:关闭时重置 Tailscale serve/funnel 配置。
- `--allow-unconfigured`:允许在配置中没有 `gateway.mode=local` 的情况下启动 Gateway。
- `--allow-unconfigured`:允许在配置中没有 `gateway.mode=local` 的情况下启动 Gateway网关
- `--dev`:如果缺失则创建开发配置和工作区(跳过 BOOTSTRAP.md
- `--reset`:重置开发配置 + 凭据 + 会话 + 工作区(需要 `--dev`)。
- `--force`:启动前终止所选端口上的现有监听器。
@ -67,9 +65,7 @@ openclaw gateway run
- `--raw-stream`:将原始模型流事件记录到 jsonl。
- `--raw-stream-path <path>`:原始流 jsonl 路径。
## 查询运行中的 Gateway
所有查询命令使用 WebSocket RPC。
## 查询运行中的 Gateway网关所有查询命令使用 WebSocket RPC。
输出模式:
@ -79,9 +75,9 @@ openclaw gateway run
共享选项(在支持的命令中):
- `--url <url>`Gateway WebSocket URL。
- `--token <token>`Gateway 令牌。
- `--password <password>`Gateway 密码。
- `--url <url>`Gateway网关 WebSocket URL。
- `--token <token>`Gateway网关令牌。
- `--password <password>`Gateway网关密码。
- `--timeout <ms>`:超时时间/预算(因命令而异)。
- `--expect-final`:等待"最终"响应(智能体调用)。
@ -93,7 +89,7 @@ openclaw gateway health --url ws://127.0.0.1:18789
### `gateway status`
`gateway status` 显示 Gateway 服务launchd/systemd/schtasks以及可选的 RPC 探测。
`gateway status` 显示 Gateway网关服务launchd/systemd/schtasks以及可选的 RPC 探测。
```bash
openclaw gateway status
@ -113,10 +109,10 @@ openclaw gateway status --json
`gateway probe` 是"全面调试"命令。它始终会探测:
- 您配置的远程 Gateway(如已设置),以及
- localhost回环地址),**即使已配置远程 Gateway**。
- 你配置的远程 Gateway网关(如已设置),以及
- localhostlocal loopback**即使已配置远程 Gateway网关**。
如果有多个 Gateway 可达,它会全部输出。当您使用隔离的配置文件/端口时(例如救援机器人),支持多个 Gateway但大多数安装仍然运行单个 Gateway。
如果有多个 Gateway网关可达,它会全部输出。当你使用隔离的配置文件/端口时(例如救援机器人),支持多个 Gateway网关,但大多数安装仍然运行单个 Gateway网关
```bash
openclaw gateway probe
@ -125,7 +121,7 @@ openclaw gateway probe --json
#### 通过 SSH 远程连接Mac 应用对等模式)
macOS 应用的"通过 SSH 远程连接"模式使用本地端口转发,使远程 Gateway(可能仅绑定到回环地址)可通过 `ws://127.0.0.1:<port>` 访问。
macOS 应用的"通过 SSH 远程连接"模式使用本地端口转发,使远程 Gateway网关(可能仅绑定到 local loopback)可通过 `ws://127.0.0.1:<port>` 访问。
CLI 等效命令:
@ -137,7 +133,7 @@ openclaw gateway probe --ssh user@gateway-host
- `--ssh <target>``user@host` 或 `user@host:port`(端口默认为 `22`)。
- `--ssh-identity <path>`:身份文件。
- `--ssh-auto`:自动选择第一个发现的 Gateway 主机作为 SSH 目标(仅限局域网/WAB
- `--ssh-auto`:自动选择第一个发现的 Gateway网关主机作为 SSH 目标(仅限局域网/WAB
配置(可选,用作默认值):
@ -153,7 +149,7 @@ openclaw gateway call status
openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
```
## 管理 Gateway 服务
## 管理 Gateway网关服务
```bash
openclaw gateway install
@ -168,18 +164,18 @@ openclaw gateway uninstall
- `gateway install` 支持 `--port`、`--runtime`、`--token`、`--force`、`--json`。
- 生命周期命令接受 `--json` 用于脚本编写。
## 发现 GatewayBonjour
## 发现 Gateway网关Bonjour
`gateway discover` 扫描 Gateway 信标(`_openclaw-gw._tcp`)。
`gateway discover` 扫描 Gateway网关信标(`_openclaw-gw._tcp`)。
- 组播 DNS-SD`local.`
- 单播 DNS-SD广域 Bonjour选择一个域名例如`openclaw.internal.`)并设置分离 DNS + DNS 服务器;参见 [/gateway/bonjour](/gateway/bonjour)
只有启用了 Bonjour 发现(默认启用)的 Gateway 才会广播信标。
只有启用了 Bonjour 发现(默认启用)的 Gateway网关才会广播信标。
广域发现记录包含TXT
- `role`Gateway 角色提示)
- `role`Gateway网关角色提示)
- `transport`(传输提示,例如 `gateway`
- `gatewayPort`WebSocket 端口,通常为 `18789`
- `sshPort`SSH 端口;如未指定默认为 `22`

View File

@ -1,7 +1,7 @@
---
read_when:
- 您想快速检查正在运行的 Gateway 的健康状态
summary: "`openclaw health` 的 CLI 参考(通过 RPC 访问 Gateway 健康端点)"
- 你想快速检查正在运行的 Gateway网关的健康状态
summary: "`openclaw health` 的 CLI 参考(通过 RPC 访问 Gateway网关健康端点)"
title: health
x-i18n:
generated_at: "2026-02-01T19:58:57Z"
@ -14,7 +14,7 @@ x-i18n:
# `openclaw health`
从正在运行的 Gateway 获取健康状态。
从正在运行的 Gateway网关获取健康状态。
```bash
openclaw health

View File

@ -1,7 +1,7 @@
---
read_when:
- 想管理智能体钩子
- 想安装或更新钩子
- 想管理智能体钩子
- 想安装或更新钩子
summary: "`openclaw hooks` 的 CLI 参考(智能体钩子)"
title: hooks
x-i18n:
@ -15,7 +15,7 @@ x-i18n:
# `openclaw hooks`
管理智能体钩子(用于 `/new`、`/reset` 等命令以及 Gateway 启动的事件驱动自动化)。
管理智能体钩子(用于 `/new`、`/reset` 等命令以及 Gateway网关启动的事件驱动自动化)。
相关内容:
@ -160,7 +160,7 @@ openclaw hooks enable session-memory
**启用后:**
- 重启 Gateway 以重新加载钩子macOS 上重启菜单栏应用,或在开发环境中重启 Gateway 进程)。
- 重启 Gateway网关以重新加载钩子macOS 上重启菜单栏应用,或在开发环境中重启 Gateway网关进程)。
## 禁用钩子
@ -188,7 +188,7 @@ openclaw hooks disable command-logger
**禁用后:**
- 重启 Gateway 以重新加载钩子
- 重启 Gateway网关以重新加载钩子
## 安装钩子
@ -244,7 +244,7 @@ openclaw hooks update --all
### session-memory
执行 `/new` 时将会话上下文保存到记忆中。
执行 `/new` 时将会话上下文保存到记忆中。
**启用:**
@ -297,7 +297,7 @@ openclaw hooks enable soul-evil
### boot-md
在 Gateway 启动时(渠道启动之后)运行 `BOOT.md`
在 Gateway网关启动时(渠道启动之后)运行 `BOOT.md`
**事件**`gateway:startup`

View File

@ -249,7 +249,7 @@ openclaw [--dev] [--profile <name>] <command>
## 安全
- `openclaw security audit` — 审计配置和本地状态中常见的安全隐患。
- `openclaw security audit --deep` — 尽力进行实时 Gateway 探测。
- `openclaw security audit --deep` — 尽力进行实时 Gateway网关探测。
- `openclaw security audit --fix` — 收紧安全默认设置并修改状态/配置文件权限。
## 插件
@ -262,7 +262,7 @@ openclaw [--dev] [--profile <name>] <command>
- `openclaw plugins enable <id>` / `disable <id>` — 切换 `plugins.entries.<id>.enabled`
- `openclaw plugins doctor` — 报告插件加载错误。
大多数插件变更需要重启 Gateway。参见 [/plugin](/plugin)。
大多数插件变更需要重启 Gateway网关。参见 [/plugin](/plugin)。
## 记忆
@ -282,7 +282,7 @@ openclaw [--dev] [--profile <name>] <command>
- `/config` 用于持久化配置更改。
- `/debug` 用于仅运行时的配置覆盖(内存中,不写入磁盘;需要 `commands.debug: true`)。
## 设置与手引导
## 设置与手引导
### `setup`
@ -291,17 +291,17 @@ openclaw [--dev] [--profile <name>] <command>
选项:
- `--workspace <dir>`:智能体工作区路径(默认 `~/.openclaw/workspace`)。
- `--wizard`:运行手引导向导。
- `--wizard`:运行手引导向导。
- `--non-interactive`:无提示运行向导。
- `--mode <local|remote>`:向导模式。
- `--remote-url <url>`:远程 Gateway URL。
- `--remote-token <token>`:远程 Gateway 令牌。
- `--remote-url <url>`:远程 Gateway网关 URL。
- `--remote-token <token>`:远程 Gateway网关令牌。
当存在任何向导参数(`--non-interactive`、`--mode`、`--remote-url`、`--remote-token`)时,向导会自动运行。
### `onboard`
交互式向导,用于设置 Gateway、工作区和技能
交互式向导,用于设置 Gateway网关、工作区和 Skills
选项:
@ -341,12 +341,12 @@ openclaw [--dev] [--profile <name>] <command>
- `--skip-skills`
- `--skip-health`
- `--skip-ui`
- `--node-manager <npm|pnpm|bun>`(推荐 pnpm不建议将 bun 用于 Gateway 运行时)
- `--node-manager <npm|pnpm|bun>`(推荐 pnpm不建议将 bun 用于 Gateway网关运行时)
- `--json`
### `configure`
交互式配置向导(模型、渠道、技能、Gateway)。
交互式配置向导(模型、渠道、Skills、Gateway网关)。
### `config`
@ -360,14 +360,14 @@ openclaw [--dev] [--profile <name>] <command>
### `doctor`
健康检查和快速修复(配置 + Gateway + 旧版服务)。
健康检查和快速修复(配置 + Gateway网关 + 旧版服务)。
选项:
- `--no-workspace-suggestions`:禁用工作区记忆提示。
- `--yes`:无需提示接受默认值(无头模式)。
- `--non-interactive`:跳过提示;仅应用安全迁移。
- `--deep`:扫描系统服务以查找额外的 Gateway 安装。
- `--deep`:扫描系统服务以查找额外的 Gateway网关安装。
## 渠道辅助工具
@ -378,9 +378,9 @@ openclaw [--dev] [--profile <name>] <command>
子命令:
- `channels list`:显示已配置的渠道和认证配置。
- `channels status`:检查 Gateway 可达性和渠道健康状态(`--probe` 运行额外检查;使用 `openclaw health``openclaw status --deep` 进行 Gateway 健康探测)。
- `channels status`:检查 Gateway网关可达性和渠道健康状态(`--probe` 运行额外检查;使用 `openclaw health``openclaw status --deep` 进行 Gateway网关健康探测)。
- 提示:`channels status` 在检测到常见配置错误时会打印警告并提供修复建议(然后引导你使用 `openclaw doctor`)。
- `channels logs`:显示来自 Gateway 日志文件的最近渠道日志。
- `channels logs`:显示来自 Gateway网关日志文件的最近渠道日志。
- `channels add`:不传参数时以向导模式设置;传入参数则切换为非交互模式。
- `channels remove`:默认仅禁用;传入 `--delete` 可无提示删除配置条目。
- `channels login`:交互式渠道登录(仅限 WhatsApp Web
@ -428,21 +428,21 @@ openclaw status --deep
### `skills`
列出和检查可用技能及就绪信息。
列出和检查可用 Skills 及就绪信息。
子命令:
- `skills list`:列出技能(无子命令时的默认行为)。
- `skills info <name>`:显示某个技能的详情。
- `skills list`:列出 Skills(无子命令时的默认行为)。
- `skills info <name>`:显示某个 Skills 的详情。
- `skills check`:就绪与缺失需求的摘要。
选项:
- `--eligible`:仅显示就绪的技能
- `--eligible`:仅显示就绪的 Skills
- `--json`:输出 JSON无样式
- `-v`、`--verbose`:包含缺失需求的详情。
提示:使用 `npx clawhub` 搜索、安装和同步技能
提示:使用 `npx clawhub` 搜索、安装和同步 Skills
### `pairing`
@ -497,7 +497,7 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
### `agent`
通过 Gateway`--local` 嵌入模式)运行一个智能体回合。
通过 Gateway网关(或 `--local` 嵌入模式)运行一个智能体回合。
必需:
@ -554,7 +554,7 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
### `acp`
运行将 IDE 连接到 Gateway 的 ACP 桥接。
运行将 IDE 连接到 Gateway网关的 ACP 桥接。
参见 [`acp`](/cli/acp) 获取完整选项和示例。
@ -574,7 +574,7 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
说明:
- 概览在可用时包含 Gateway + 节点主机服务状态。
- 概览在可用时包含 Gateway网关 + 节点主机服务状态。
### 用量追踪
@ -595,7 +595,7 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
### `health`
从运行中的 Gateway 获取健康状态。
从运行中的 Gateway网关获取健康状态。
选项:
@ -633,7 +633,7 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
### `uninstall`
卸载 Gateway 服务和本地数据CLI 保留)。
卸载 Gateway网关服务和本地数据CLI 保留)。
选项:
@ -650,11 +650,11 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
- `--non-interactive` 需要 `--yes` 和明确的范围(或 `--all`)。
## Gateway
## Gateway网关
### `gateway`
运行 WebSocket Gateway。
运行 WebSocket Gateway网关
选项:
@ -678,11 +678,11 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
### `gateway service`
管理 Gateway 服务launchd/systemd/schtasks
管理 Gateway网关服务launchd/systemd/schtasks
子命令:
- `gateway status`(默认探测 Gateway RPC
- `gateway status`(默认探测 Gateway网关 RPC
- `gateway install`(服务安装)
- `gateway uninstall`
- `gateway start`
@ -691,9 +691,9 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
说明:
- `gateway status` 默认使用服务解析的端口/配置探测 Gateway RPC可通过 `--url/--token/--password` 覆盖)。
- `gateway status` 默认使用服务解析的端口/配置探测 Gateway网关 RPC可通过 `--url/--token/--password` 覆盖)。
- `gateway status` 支持 `--no-probe`、`--deep` 和 `--json` 用于脚本编写。
- `gateway status` 还会在检测到旧版或额外的 Gateway 服务时展示(`--deep` 添加系统级扫描)。以配置文件命名的 OpenClaw 服务被视为正式服务,不会被标记为"额外"。
- `gateway status` 还会在检测到旧版或额外的 Gateway网关服务时展示(`--deep` 添加系统级扫描)。以配置文件命名的 OpenClaw 服务被视为正式服务,不会被标记为"额外"。
- `gateway status` 会打印 CLI 使用的配置路径与服务可能使用的配置(服务环境变量),以及解析后的探测目标 URL。
- `gateway install|uninstall|start|stop|restart` 支持 `--json` 用于脚本编写(默认输出保持人类可读)。
- `gateway install` 默认使用 Node 运行时;**不建议**使用 bunWhatsApp/Telegram 存在 bug
@ -701,7 +701,7 @@ Gmail Pub/Sub 钩子设置与运行。参见 [/automation/gmail-pubsub](/automat
### `logs`
通过 RPC 追踪 Gateway 文件日志。
通过 RPC 追踪 Gateway网关文件日志。
说明:
@ -720,7 +720,7 @@ openclaw logs --no-color
### `gateway <subcommand>`
Gateway CLI 辅助工具RPC 子命令使用 `--url`、`--token`、`--password`、`--timeout`、`--expect-final`)。
Gateway网关 CLI 辅助工具RPC 子命令使用 `--url`、`--token`、`--password`、`--timeout`、`--expect-final`)。
子命令:
@ -859,7 +859,7 @@ openclaw models status
### `system event`
入队系统事件并可选触发心跳Gateway RPC
入队系统事件并可选触发心跳Gateway网关 RPC
必需:
@ -873,7 +873,7 @@ openclaw models status
### `system heartbeat last|enable|disable`
心跳控制Gateway RPC
心跳控制Gateway网关 RPC
选项:
@ -882,7 +882,7 @@ openclaw models status
### `system presence`
列出系统存在条目Gateway RPC
列出系统存在条目Gateway网关 RPC
选项:
@ -891,7 +891,7 @@ openclaw models status
## 定时任务
管理调度作业Gateway RPC。参见 [/automation/cron-jobs](/automation/cron-jobs)。
管理调度作业Gateway网关 RPC。参见 [/automation/cron-jobs](/automation/cron-jobs)。
子命令:
@ -922,7 +922,7 @@ openclaw models status
## 节点
`nodes` 与 Gateway 通信并操作已配对的节点。参见 [/nodes](/nodes)。
`nodes` 与 Gateway网关通信并操作已配对的节点。参见 [/nodes](/nodes)。
通用选项:
@ -1018,7 +1018,7 @@ openclaw models status
### `tui`
打开连接到 Gateway 的终端 UI。
打开连接到 Gateway网关的终端 UI。
选项:

View File

@ -1,8 +1,8 @@
---
read_when:
- 需要远程查看 Gateway 日志(无需 SSH
- 需要远程查看 Gateway网关日志(无需 SSH
- 需要 JSON 格式的日志行以供工具使用
summary: 通过 RPC 查看 Gateway 日志的 `openclaw logs` CLI 参考
summary: 通过 RPC 查看 Gateway网关日志的 `openclaw logs` CLI 参考
title: logs
x-i18n:
generated_at: "2026-02-01T20:21:08Z"
@ -15,7 +15,7 @@ x-i18n:
# `openclaw logs`
通过 RPC 实时查看 Gateway 文件日志(支持远程模式)。
通过 RPC 实时查看 Gateway网关文件日志(支持远程模式)。
相关内容:

View File

@ -1,7 +1,7 @@
---
read_when:
- 想要索引或搜索语义记忆
- 正在调试记忆可用性或索引问题
- 想要索引或搜索语义记忆
- 正在调试记忆可用性或索引问题
summary: "`openclaw memory`status/index/search的 CLI 参考"
title: memory
x-i18n:

View File

@ -1,7 +1,7 @@
---
read_when:
- 想更改默认模型或查看提供商认证状态
- 想扫描可用的模型/提供商并调试认证配置
- 想更改默认模型或查看提供商认证状态
- 想扫描可用的模型/提供商并调试认证配置
summary: "`openclaw models` 的 CLI 参考status/list/set/scan、别名、回退、认证"
title: models
x-i18n:

View File

@ -15,7 +15,7 @@ x-i18n:
# `openclaw node`
运行一个**无头节点主机**,连接到 Gateway WebSocket 并在本机上暴露
运行一个**无头节点主机**,连接到 Gateway网关 WebSocket 并在本机上暴露
`system.run` / `system.which`
## 为什么使用节点主机?
@ -25,7 +25,7 @@ x-i18n:
常见用例:
- 在远程 Linux/Windows 机器上运行命令构建服务器、实验室机器、NAS
- 在 Gateway 上保持执行**沙箱化**,但将已批准的运行委派给其他主机。
- 在 Gateway网关上保持执行**沙箱隔离**,但将已批准的运行委派给其他主机。
- 为自动化或 CI 节点提供轻量级、无头的执行目标。
执行仍受**执行审批**和节点主机上的按智能体白名单保护,因此你可以保持命令访问的范围明确可控。
@ -54,9 +54,9 @@ openclaw node run --host <gateway-host> --port 18789
选项:
- `--host <host>`Gateway WebSocket 主机(默认:`127.0.0.1`
- `--port <port>`Gateway WebSocket 端口(默认:`18789`
- `--tls`:为 Gateway 连接使用 TLS
- `--host <host>`Gateway网关 WebSocket 主机(默认:`127.0.0.1`
- `--port <port>`Gateway网关 WebSocket 端口(默认:`18789`
- `--tls`:为 Gateway网关连接使用 TLS
- `--tls-fingerprint <sha256>`:预期的 TLS 证书指纹sha256
- `--node-id <id>`:覆盖节点 ID清除配对令牌
- `--display-name <name>`:覆盖节点显示名称
@ -71,9 +71,9 @@ openclaw node install --host <gateway-host> --port 18789
选项:
- `--host <host>`Gateway WebSocket 主机(默认:`127.0.0.1`
- `--port <port>`Gateway WebSocket 端口(默认:`18789`
- `--tls`:为 Gateway 连接使用 TLS
- `--host <host>`Gateway网关 WebSocket 主机(默认:`127.0.0.1`
- `--port <port>`Gateway网关 WebSocket 端口(默认:`18789`
- `--tls`:为 Gateway网关连接使用 TLS
- `--tls-fingerprint <sha256>`:预期的 TLS 证书指纹sha256
- `--node-id <id>`:覆盖节点 ID清除配对令牌
- `--display-name <name>`:覆盖节点显示名称
@ -95,7 +95,7 @@ openclaw node uninstall
## 配对
首次连接会在 Gateway 上创建一个待处理的节点配对请求。
首次连接会在 Gateway网关上创建一个待处理的节点配对请求。
通过以下方式批准:
```bash
@ -103,7 +103,7 @@ openclaw nodes pending
openclaw nodes approve <requestId>
```
节点主机将其节点 ID、令牌、显示名称和 Gateway 连接信息存储在
节点主机将其节点 ID、令牌、显示名称和 Gateway网关连接信息存储在
`~/.openclaw/node.json` 中。
## 执行审批
@ -112,4 +112,4 @@ openclaw nodes approve <requestId>
- `~/.openclaw/exec-approvals.json`
- [执行审批](/tools/exec-approvals)
- `openclaw approvals --node <id|name|ip>`(从 Gateway 编辑)
- `openclaw approvals --node <id|name|ip>`(从 Gateway网关编辑)

View File

@ -1,7 +1,7 @@
---
read_when:
- 您想要通过引导式设置配置 Gateway、工作区、认证、渠道和技能
summary: "`openclaw onboard`(交互式手引导向导)的 CLI 参考"
- 你想要通过引导式设置配置 Gateway网关、工作区、认证、渠道和 Skills
summary: "`openclaw onboard`(交互式手引导向导)的 CLI 参考"
title: onboard
x-i18n:
generated_at: "2026-02-01T20:21:15Z"
@ -14,11 +14,11 @@ x-i18n:
# `openclaw onboard`
交互式上手引导向导(本地或远程 Gateway 设置)。
交互式新手引导向导(本地或远程 Gateway网关设置)。
相关内容:
- 向导指南:[手引导](/start/onboarding)
- 向导指南:[手引导](/start/onboarding)
## 示例
@ -31,6 +31,6 @@ openclaw onboard --mode remote --remote-url ws://gateway-host:18789
流程说明:
- `quickstart`:最少提示,自动生成 Gateway 令牌。
- `quickstart`:最少提示,自动生成 Gateway网关令牌。
- `manual`:完整的端口/绑定/认证提示(`advanced` 的别名)。
- 最快开始聊天的方式:`openclaw dashboard`(控制台 UI无需渠道设置

View File

@ -1,6 +1,6 @@
---
read_when:
- 正在使用配对模式的私信功能,需要批准发送者
- 正在使用配对模式的私信功能,需要批准发送者
summary: "`openclaw pairing`(批准/列出配对请求)的 CLI 参考"
title: pairing
x-i18n:

View File

@ -1,7 +1,7 @@
---
read_when:
- 您想安装或管理进程内 Gateway 插件
- 想调试插件加载失败问题
- 你想安装或管理进程内 Gateway网关插件
- 想调试插件加载失败问题
summary: "`openclaw plugins` 的 CLI 参考list、install、enable/disable、doctor"
title: plugins
x-i18n:
@ -15,7 +15,7 @@ x-i18n:
# `openclaw plugins`
管理 Gateway 插件/扩展(进程内加载)。
管理 Gateway网关插件/扩展(进程内加载)。
相关内容:

View File

@ -1,5 +1,5 @@
---
read_when: 正在管理沙箱容器或调试沙箱/工具策略行为。
read_when: 正在管理沙箱容器或调试沙箱/工具策略行为。
status: active
summary: 管理沙箱容器并检查生效的沙箱策略
title: Sandbox CLI
@ -18,7 +18,7 @@ x-i18n:
## 概述
OpenClaw 可以在隔离的 Docker 容器中运行智能体以确保安全性。`sandbox` 命令帮助管理这些容器,尤其是在更新或配置变更之后。
OpenClaw 可以在隔离的 Docker 容器中运行智能体以确保安全性。`sandbox` 命令帮助管理这些容器,尤其是在更新或配置变更之后。
## 命令
@ -115,7 +115,7 @@ openclaw sandbox recreate --agent alfred
## 为什么需要这样做?
**问题:** 当更新沙箱 Docker 镜像或配置时:
**问题:** 当更新沙箱 Docker 镜像或配置时:
- 现有容器会继续使用旧设置运行
- 容器仅在空闲 24 小时后才会被清理
@ -123,7 +123,7 @@ openclaw sandbox recreate --agent alfred
**解决方案:** 使用 `openclaw sandbox recreate` 强制移除旧容器。它们会在下次需要时自动使用当前设置重新创建。
提示:建议使用 `openclaw sandbox recreate` 而非手动执行 `docker rm`。它使用 Gateway 的容器命名规则,避免在作用域/会话键发生变化时出现不匹配问题。
提示:建议使用 `openclaw sandbox recreate` 而非手动执行 `docker rm`。它使用 Gateway网关的容器命名规则,避免在作用域/会话键发生变化时出现不匹配问题。
## 配置

View File

@ -1,7 +1,7 @@
---
read_when:
- 您在不使用完整上手引导向导的情况下进行首次设置
- 想设置默认工作区路径
- 你在不使用完整新手引导向导的情况下进行首次设置
- 想设置默认工作区路径
summary: "`openclaw setup` 的 CLI 参考(初始化配置 + 工作区)"
title: setup
x-i18n:
@ -20,7 +20,7 @@ x-i18n:
相关内容:
- 快速开始:[快速开始](/start/getting-started)
- 向导:[手引导](/start/onboarding)
- 向导:[手引导](/start/onboarding)
## 示例

View File

@ -1,8 +1,8 @@
---
read_when:
- 想要查看哪些技能可用且可以运行
- 想要调试技能缺失的二进制文件/环境变量/配置
summary: 技能列表/信息/检查及技能资格的 `openclaw skills` CLI 参考
- 想要查看哪些 Skills 可用且可以运行
- 想要调试 Skills 缺失的二进制文件/环境变量/配置
summary: Skills 列表/信息/检查及 Skills 资格的 `openclaw skills` CLI 参考
title: skills
x-i18n:
generated_at: "2026-02-01T20:21:28Z"
@ -15,12 +15,12 @@ x-i18n:
# `openclaw skills`
检查技能(内置 + 工作区 + 托管覆盖),查看哪些符合条件以及哪些缺少依赖。
检查 Skills(内置 + 工作区 + 托管覆盖),查看哪些符合条件以及哪些缺少依赖。
相关内容:
- 技能系统:[技能](/tools/skills)
- 技能配置:[技能配置](/tools/skills-config)
- Skills 系统:[Skills](/tools/skills)
- Skills配置[Skills配置](/tools/skills-config)
- ClawHub 安装:[ClawHub](/tools/clawhub)
## 命令

View File

@ -28,6 +28,6 @@ openclaw status --usage
- `--deep` 会运行实时探测WhatsApp Web + Telegram + Discord + Google Chat + Slack + Signal
- 当配置了多个智能体时,输出包含每个智能体的会话存储。
- 概览包含 Gateway 和节点主机服务的安装/运行状态(如可用)。
- 概览包含 Gateway网关和节点主机服务的安装/运行状态(如可用)。
- 概览包含更新渠道和 git SHA适用于源码检出
- 更新信息会显示在概览中;如果有可用更新,状态会提示运行 `openclaw update`(参见[更新](/install/updating))。

View File

@ -1,8 +1,8 @@
---
read_when:
- 想在不创建 cron 任务的情况下将系统事件加入队列
- 需要启用或禁用心跳
- 想检查系统存在状态条目
- 想在不创建 cron 任务的情况下将系统事件加入队列
- 需要启用或禁用心跳
- 想检查系统存在状态条目
summary: "`openclaw system` 的 CLI 参考(系统事件、心跳、存在状态)"
title: system
x-i18n:
@ -16,7 +16,7 @@ x-i18n:
# `openclaw system`
Gateway 的系统级辅助工具:将系统事件加入队列、控制心跳以及查看存在状态。
Gateway网关的系统级辅助工具:将系统事件加入队列、控制心跳以及查看存在状态。
## 常用命令
@ -51,7 +51,7 @@ openclaw system presence
## `system presence`
列出 Gateway 已知的当前系统存在状态条目(节点、实例及类似状态行)。
列出 Gateway网关已知的当前系统存在状态条目(节点、实例及类似状态行)。
标志:
@ -59,5 +59,5 @@ openclaw system presence
## 注意事项
- 需要当前配置(本地或远程)可访问的运行中 Gateway。
- 需要当前配置(本地或远程)可访问的运行中 Gateway网关
- 系统事件是临时的,不会在重启后持久化。

View File

@ -1,8 +1,8 @@
---
read_when:
- 想要使用 Gateway 的终端 UI支持远程
- 想要使用 Gateway网关的终端 UI支持远程
- 想要从脚本传递 url/token/session
summary: 连接到 Gateway 的终端 UI 的 `openclaw tui` CLI 参考
summary: 连接到 Gateway网关的终端 UI 的 `openclaw tui` CLI 参考
title: tui
x-i18n:
generated_at: "2026-02-01T20:21:31Z"
@ -15,7 +15,7 @@ x-i18n:
# `openclaw tui`
打开连接到 Gateway 的终端 UI。
打开连接到 Gateway网关的终端 UI。
相关内容:

View File

@ -1,8 +1,8 @@
---
read_when:
- 您想移除 Gateway 服务和/或本地状态
- 想先进行试运行
summary: "`openclaw uninstall`(移除 Gateway 服务 + 本地数据)的 CLI 参考"
- 你想移除 Gateway网关服务和/或本地状态
- 想先进行试运行
summary: "`openclaw uninstall`(移除 Gateway网关服务 + 本地数据)的 CLI 参考"
title: uninstall
x-i18n:
generated_at: "2026-02-01T20:21:33Z"
@ -15,7 +15,7 @@ x-i18n:
# `openclaw uninstall`
卸载 Gateway 服务 + 本地数据CLI 保留)。
卸载 Gateway网关服务 + 本地数据CLI 保留)。
```bash
openclaw uninstall

View File

@ -2,7 +2,7 @@
read_when:
- 你想安全地更新源码检出
- 你需要了解 `--update` 简写行为
summary: "`openclaw update`(安全的源码更新 + Gateway 自动重启)的 CLI 参考"
summary: "`openclaw update`(安全的源码更新 + Gateway网关自动重启)的 CLI 参考"
title: update
x-i18n:
generated_at: "2026-02-01T20:21:45Z"
@ -35,7 +35,7 @@ openclaw --update
## 选项
- `--no-restart`:成功更新后跳过重启 Gateway 服务。
- `--no-restart`:成功更新后跳过重启 Gateway网关服务。
- `--channel <stable|beta|dev>`设置更新渠道git + npm持久化到配置中
- `--tag <dist-tag|version>`:仅为本次更新覆盖 npm dist-tag 或版本。
- `--json`:输出机器可读的 `UpdateRunResult` JSON。
@ -60,7 +60,7 @@ openclaw update status --timeout 10
## `update wizard`
交互式流程,用于选择更新渠道并确认更新后是否重启 Gateway默认重启。如果你选择 `dev` 但没有 git 检出,它会提供创建一个的选项。
交互式流程,用于选择更新渠道并确认更新后是否重启 Gateway网关(默认重启)。如果你选择 `dev` 但没有 git 检出,它会提供创建一个的选项。
## 工作原理

View File

@ -38,4 +38,4 @@ openclaw voicecall expose --mode funnel
openclaw voicecall unexpose
```
安全提示:仅将 webhook 端点暴露给信任的网络。尽可能优先使用 Tailscale Serve 而非 Funnel。
安全提示:仅将 webhook 端点暴露给信任的网络。尽可能优先使用 Tailscale Serve 而非 Funnel。

View File

@ -1,7 +1,7 @@
---
read_when:
- 想将 Gmail Pub/Sub 事件接入 OpenClaw
- 需要 Webhook 辅助命令
- 想将 Gmail Pub/Sub 事件接入 OpenClaw
- 需要 Webhook 辅助命令
summary: "`openclaw webhooks`Webhook 辅助工具 + Gmail Pub/Sub的 CLI 参考"
title: webhooks
x-i18n:

View File

@ -1,6 +1,6 @@
---
read_when:
- 需要智能体循环或生命周期事件的详细说明
- 需要智能体循环或生命周期事件的详细说明
summary: 智能体循环生命周期、流和等待语义
title: 智能体循环
x-i18n:
@ -21,7 +21,7 @@ x-i18n:
## 入口点
- Gateway RPC`agent` 和 `agent.wait`
- Gateway网关 RPC`agent` 和 `agent.wait`
- CLI`agent` 命令。
## 工作原理(高层概述)
@ -29,7 +29,7 @@ x-i18n:
1. `agent` RPC 验证参数解析会话sessionKey/sessionId持久化会话元数据立即返回 `{ runId, acceptedAt }`
2. `agentCommand` 运行智能体:
- 解析模型 + thinking/verbose 默认值
- 加载技能快照
- 加载 Skills 快照
- 调用 `runEmbeddedPiAgent`pi-agent-core 运行时)
- 如果嵌入式循环未发出**生命周期 end/error** 事件,则补充发出
3. `runEmbeddedPiAgent`
@ -56,13 +56,13 @@ x-i18n:
## 会话 + 工作区准备
- 工作区被解析并创建;沙箱运行可能会重定向到沙箱工作区根目录。
- 技能被加载(或从快照中复用)并注入到环境和提示中。
- Skills 被加载(或从快照中复用)并注入到环境和提示中。
- 引导/上下文文件被解析并注入到系统提示报告中。
- 获取会话写锁;在流式传输之前打开并准备 `SessionManager`
## 提示组装 + 系统提示
- 系统提示由 OpenClaw 的基础提示、技能提示、引导上下文和每次运行的覆盖项构建而成。
- 系统提示由 OpenClaw 的基础提示、Skills 提示、引导上下文和每次运行的覆盖项构建而成。
- 强制执行模型特定的限制和压缩预留令牌数。
- 参见[系统提示](/concepts/system-prompt)了解模型所看到的内容。
@ -70,10 +70,10 @@ x-i18n:
OpenClaw 有两个钩子系统:
- **内部钩子**Gateway 钩子):用于命令和生命周期事件的事件驱动脚本。
- **插件钩子**:智能体/工具生命周期和 Gateway 管道中的扩展点。
- **内部钩子**Gateway网关钩子):用于命令和生命周期事件的事件驱动脚本。
- **插件钩子**:智能体/工具生命周期和 Gateway网关管道中的扩展点。
### 内部钩子Gateway 钩子)
### 内部钩子Gateway网关钩子)
- **`agent:bootstrap`**:在系统提示最终确定之前构建引导文件时运行。
用于添加/移除引导上下文文件。
@ -81,9 +81,9 @@ OpenClaw 有两个钩子系统:
参见[钩子](/hooks)了解设置和示例。
### 插件钩子(智能体 + Gateway 生命周期)
### 插件钩子(智能体 + Gateway网关生命周期)
这些在智能体循环或 Gateway 管道内运行:
这些在智能体循环或 Gateway网关管道内运行:
- **`before_agent_start`**:在运行开始前注入上下文或覆盖系统提示。
- **`agent_end`**:在完成后检查最终消息列表和运行元数据。
@ -92,7 +92,7 @@ OpenClaw 有两个钩子系统:
- **`tool_result_persist`**:在工具结果写入会话记录之前同步转换工具结果。
- **`message_received` / `message_sending` / `message_sent`**:入站 + 出站消息钩子。
- **`session_start` / `session_end`**:会话生命周期边界。
- **`gateway_start` / `gateway_stop`**Gateway 生命周期事件。
- **`gateway_start` / `gateway_stop`**Gateway网关生命周期事件。
参见[插件](/plugin#plugin-hooks)了解钩子 API 和注册详情。
@ -146,5 +146,5 @@ OpenClaw 有两个钩子系统:
- 智能体超时(中止)
- AbortSignal取消
- Gateway 断开连接或 RPC 超时
- Gateway网关断开连接或 RPC 超时
- `agent.wait` 超时(仅等待阶段,不会停止智能体)

View File

@ -1,7 +1,7 @@
---
read_when:
- 需要解释智能体工作区或其文件布局
- 想要备份或迁移智能体工作区
- 需要解释智能体工作区或其文件布局
- 想要备份或迁移智能体工作区
summary: 智能体工作区:位置、布局和备份策略
title: 智能体工作区
x-i18n:
@ -19,7 +19,7 @@ x-i18n:
它与 `~/.openclaw/` 是分开的,后者存储配置、凭据和会话。
**重要提示:** 工作区是**默认工作目录**,而非硬性沙箱。工具会基于工作区解析相对路径,但绝对路径仍然可以访问主机上的其他位置,除非启用了沙箱。如果需要隔离,请使用 [`agents.defaults.sandbox`](/gateway/sandboxing)(和/或按智能体的沙箱配置)。当启用沙箱且 `workspaceAccess` 不是 `"rw"` 时,工具在 `~/.openclaw/sandboxes` 下的沙箱工作区中运行,而非的主机工作区。
**重要提示:** 工作区是**默认工作目录**,而非硬性沙箱。工具会基于工作区解析相对路径,但绝对路径仍然可以访问主机上的其他位置,除非启用了沙箱。如果需要隔离,请使用 [`agents.defaults.sandbox`](/gateway/sandboxing)(和/或按智能体的沙箱配置)。当启用沙箱且 `workspaceAccess` 不是 `"rw"` 时,工具在 `~/.openclaw/sandboxes` 下的沙箱工作区中运行,而非的主机工作区。
## 默认位置
@ -38,7 +38,7 @@ x-i18n:
`openclaw onboard`、`openclaw configure` 或 `openclaw setup` 将创建工作区,并在引导文件缺失时生成它们。
如果已经自行管理工作区文件,可以禁用引导文件创建:
如果已经自行管理工作区文件,可以禁用引导文件创建:
```json5
{ agent: { skipBootstrap: true } }
@ -48,7 +48,7 @@ x-i18n:
较旧的安装可能创建了 `~/openclaw`。保留多个工作区目录可能会导致认证或状态不一致的困惑,因为同一时间只有一个工作区处于活跃状态。
**建议:** 保持单一活跃工作区。如果不再使用额外的文件夹,请将其归档或移至回收站(例如 `trash ~/openclaw`)。如果有意保留多个工作区,请确保 `agents.defaults.workspace` 指向活跃的那个。
**建议:** 保持单一活跃工作区。如果不再使用额外的文件夹,请将其归档或移至回收站(例如 `trash ~/openclaw`)。如果有意保留多个工作区,请确保 `agents.defaults.workspace` 指向活跃的那个。
`openclaw doctor` 在检测到额外工作区目录时会发出警告。
@ -82,7 +82,7 @@ x-i18n:
- 保持简短以避免消耗令牌。
- `BOOT.md`
- 可选的启动清单,在启用内部钩子时于 Gateway 重启时执行。
- 可选的启动清单,在启用内部钩子时于 Gateway网关重启时执行。
- 保持简短;使用消息工具进行外发。
- `BOOTSTRAP.md`
@ -101,8 +101,8 @@ x-i18n:
参见[记忆](/concepts/memory)了解工作流程和自动记忆刷写。
- `skills/`(可选)
- 工作区特定的技能
- 名称冲突时覆盖托管/内置技能
- 工作区特定的 Skills
- 名称冲突时覆盖托管/内置 Skills
- `canvas/`(可选)
- 用于节点显示的 Canvas UI 文件(例如 `canvas/index.html`)。
@ -116,15 +116,15 @@ x-i18n:
- `~/.openclaw/openclaw.json`(配置)
- `~/.openclaw/credentials/`OAuth 令牌、API 密钥)
- `~/.openclaw/agents/<agentId>/sessions/`(会话记录和元数据)
- `~/.openclaw/skills/`(托管技能
- `~/.openclaw/skills/`(托管 Skills
如果需要迁移会话或配置,请单独复制它们并将其排除在版本控制之外。
如果需要迁移会话或配置,请单独复制它们并将其排除在版本控制之外。
## Git 备份(推荐,私有)
将工作区视为私有记忆。将其放入一个**私有** git 仓库中,以便备份和恢复。
在 Gateway 运行的机器上执行以下步骤(工作区就在那里)。
在 Gateway网关运行的机器上执行以下步骤(工作区就在那里)。
### 1) 初始化仓库
@ -189,7 +189,7 @@ git push
- `~/.openclaw/` 下的任何内容。
- 聊天记录的原始转储或敏感附件。
如果必须存储敏感引用,请使用占位符并将真实密钥保存在其他地方(密码管理器、环境变量或 `~/.openclaw/`)。
如果必须存储敏感引用,请使用占位符并将真实密钥保存在其他地方(密码管理器、环境变量或 `~/.openclaw/`)。
建议的 `.gitignore` 起始内容:
@ -206,7 +206,7 @@ git push
1. 将仓库克隆到目标路径(默认 `~/.openclaw/workspace`)。
2. 在 `~/.openclaw/openclaw.json` 中将 `agents.defaults.workspace` 设置为该路径。
3. 运行 `openclaw setup --workspace <path>` 以生成任何缺失的文件。
4. 如果需要会话记录,请从旧机器单独复制 `~/.openclaw/agents/<agentId>/sessions/`
4. 如果需要会话记录,请从旧机器单独复制 `~/.openclaw/agents/<agentId>/sessions/`
## 高级说明

View File

@ -24,7 +24,7 @@ OpenClaw 使用单一智能体工作区目录(`agents.defaults.workspace`
完整的工作区布局 + 备份指南:[智能体工作区](/concepts/agent-workspace)
如果启用了 `agents.defaults.sandbox`,非主会话可以使用 `agents.defaults.sandbox.workspaceRoot` 下的按会话工作区覆盖此设置(参见 [Gateway 配置](/gateway/configuration))。
如果启用了 `agents.defaults.sandbox`,非主会话可以使用 `agents.defaults.sandbox.workspaceRoot` 下的按会话工作区覆盖此设置(参见 [Gateway网关配置](/gateway/configuration))。
## 引导文件(注入)
@ -43,7 +43,7 @@ OpenClaw 使用单一智能体工作区目录(`agents.defaults.workspace`
如果文件缺失OpenClaw 会注入一行"文件缺失"标记(`openclaw setup` 会创建安全的默认模板)。
`BOOTSTRAP.md` 仅在**全新工作区**(没有其他引导文件存在)时创建。如果在完成仪式后删除了它,后续重启时不会重新创建。
`BOOTSTRAP.md` 仅在**全新工作区**(没有其他引导文件存在)时创建。如果在完成仪式后删除了它,后续重启时不会重新创建。
要完全禁用引导文件创建(用于预填充的工作区),请设置:
@ -53,17 +53,17 @@ OpenClaw 使用单一智能体工作区目录(`agents.defaults.workspace`
## 内置工具
核心工具read/exec/edit/write 及相关系统工具)始终可用,受工具策略约束。`apply_patch` 是可选的,由 `tools.exec.applyPatch` 控制。`TOOLS.md` **不**控制哪些工具存在;它是关于希望如何使用这些工具的指导。
核心工具read/exec/edit/write 及相关系统工具)始终可用,受工具策略约束。`apply_patch` 是可选的,由 `tools.exec.applyPatch` 控制。`TOOLS.md` **不**控制哪些工具存在;它是关于希望如何使用这些工具的指导。
## 技能
## Skills
OpenClaw 从三个位置加载技能(名称冲突时工作区优先):
OpenClaw 从三个位置加载 Skills(名称冲突时工作区优先):
- 内置(随安装包附带)
- 托管/本地:`~/.openclaw/skills`
- 工作区:`<workspace>/skills`
技能可以通过配置/环境变量进行控制(参见 [Gateway 配置](/gateway/configuration) 中的 `skills`)。
Skills 可以通过配置/环境变量进行控制(参见 [Gateway网关配置](/gateway/configuration) 中的 `skills`)。
## pi-mono 集成

View File

@ -1,8 +1,8 @@
---
read_when:
- 处理 Gateway 协议、客户端或传输层相关工作时
summary: WebSocket Gateway 架构、组件和客户端流程
title: Gateway 架构
- 处理 Gateway网关协议、客户端或传输层相关工作时
summary: WebSocket Gateway网关架构、组件和客户端流程
title: Gateway网关架构
x-i18n:
generated_at: "2026-02-01T20:22:27Z"
model: claude-opus-4-5
@ -12,21 +12,21 @@ x-i18n:
workflow: 14
---
# Gateway 架构
# Gateway网关架构
最后更新2026-01-22
## 概述
- 单个长生命周期的 **Gateway** 管理所有消息接入面(通过 Baileys 接入 WhatsApp、通过 grammY 接入 Telegram、Slack、Discord、Signal、iMessage、WebChat
- 控制面客户端macOS 应用、CLI、Web UI、自动化通过 **WebSocket** 连接到 Gateway使用配置的绑定地址默认 `127.0.0.1:18789`)。
- 单个长生命周期的 **Gateway网关** 管理所有消息接入面(通过 Baileys 接入 WhatsApp、通过 grammY 接入 Telegram、Slack、Discord、Signal、iMessage、WebChat
- 控制面客户端macOS 应用、CLI、Web UI、自动化通过 **WebSocket** 连接到 Gateway网关,使用配置的绑定地址(默认 `127.0.0.1:18789`)。
- **节点**macOS/iOS/Android/无头模式)也通过 **WebSocket** 连接,但声明 `role: node` 并显式指定能力/命令。
- 每台主机一个 Gateway它是唯一打开 WhatsApp 会话的位置。
- 每台主机一个 Gateway网关;它是唯一打开 WhatsApp 会话的位置。
- **画布主机**(默认 `18793`)提供智能体可编辑的 HTML 和 A2UI。
## 组件和流程
### Gateway守护进程
### Gateway网关(守护进程)
- 维护提供商连接。
- 暴露类型化的 WS API请求、响应、服务端推送事件
@ -47,17 +47,17 @@ x-i18n:
协议详情:
- [Gateway 协议](/gateway/protocol)
- [Gateway网关协议](/gateway/protocol)
### WebChat
- 静态 UI使用 Gateway WS API 获取聊天历史和发送消息。
- 静态 UI使用 Gateway网关 WS API 获取聊天历史和发送消息。
- 在远程设置中,通过与其他客户端相同的 SSH/Tailscale 隧道连接。
## 连接生命周期(单个客户端)
```
Client Gateway
Client Gateway网关
| |
|---- req:connect -------->|
|<------ res (ok) ---------| res error +
@ -87,12 +87,12 @@ Client Gateway
## 配对与本地信任
- 所有 WS 客户端(操作员 + 节点)在 `connect` 时包含**设备身份**。
- 新设备 ID 需要配对审批Gateway 颁发**设备令牌**用于后续连接。
- **本地**连接(回环地址或 Gateway 主机自身的 tailnet 地址)可以自动审批,以保持同主机用户体验的流畅性。
- 新设备 ID 需要配对审批Gateway网关颁发**设备令牌**用于后续连接。
- **本地**连接(local loopback 或 Gateway网关主机自身的 tailnet 地址)可以自动审批,以保持同主机用户体验的流畅性。
- **非本地**连接必须对 `connect.challenge` nonce 签名,并需要显式审批。
- Gateway 认证(`gateway.auth.*`)仍适用于**所有**连接,无论本地还是远程。
- Gateway网关认证(`gateway.auth.*`)仍适用于**所有**连接,无论本地还是远程。
详情:[Gateway 协议](/gateway/protocol)、[配对](/start/pairing)、[安全](/gateway/security)。
详情:[Gateway网关协议](/gateway/protocol)、[配对](/start/pairing)、[安全](/gateway/security)。
## 协议类型定义与代码生成
@ -118,6 +118,6 @@ Client Gateway
## 不变量
- 每台主机恰好一个 Gateway 控制单个 Baileys 会话。
- 每台主机恰好一个 Gateway网关控制单个 Baileys 会话。
- 握手是强制的;任何非 JSON 或非 connect 的首帧将导致硬关闭。
- 事件不会重放;客户端必须在出现间隙时刷新。

View File

@ -1,7 +1,7 @@
---
read_when:
- 想了解自动压缩和 /compact
- 正在调试长会话触及上下文限制的问题
- 想了解自动压缩和 /compact
- 正在调试长会话触及上下文限制的问题
summary: 上下文窗口 + 压缩OpenClaw 如何将会话保持在模型限制内
title: 压缩
x-i18n:
@ -34,7 +34,7 @@ x-i18n:
当会话接近或超过模型的上下文窗口时OpenClaw 会触发自动压缩,并可能使用压缩后的上下文重试原始请求。
会看到:
会看到:
- 详细模式下显示 `🧹 Auto-compaction complete`
- `/status` 显示 `🧹 Compactions: <count>`
@ -64,4 +64,4 @@ x-i18n:
- 当会话感觉过时或上下文臃肿时,使用 `/compact`
- 大型工具输出已被截断;修剪可以进一步减少工具结果的堆积。
- 如果需要全新开始,`/new` 或 `/reset` 会启动一个新的会话 ID。
- 如果需要全新开始,`/new` 或 `/reset` 会启动一个新的会话 ID。

View File

@ -20,7 +20,7 @@ x-i18n:
初学者心智模型:
- **系统提示词**(由 OpenClaw 构建):规则、工具、技能列表、时间/运行时信息,以及注入的工作区文件。
- **系统提示词**(由 OpenClaw 构建):规则、工具、Skills 列表、时间/运行时信息,以及注入的工作区文件。
- **对话历史**:你的消息 + 助手在本次会话中的消息。
- **工具调用/结果 + 附件**:命令输出、文件读取、图片/音频等。
@ -30,7 +30,7 @@ x-i18n:
- `/status` → 快速查看"我的窗口还剩多少空间?"以及会话设置。
- `/context list` → 查看注入了哪些内容及大致大小(按文件和总计)。
- `/context detail` → 更深入的分解:按文件、按工具 schema 大小、按技能条目大小,以及系统提示词大小。
- `/context detail` → 更深入的分解:按文件、按工具 schema 大小、按 Skills 条目大小,以及系统提示词大小。
- `/usage tokens` → 在正常回复后附加每次回复的用量信息。
- `/compact` → 将较早的历史记录总结为一个压缩条目,以释放窗口空间。
@ -99,7 +99,7 @@ Top tools (schema size):
系统提示词由 **OpenClaw 拥有**,每次运行时重新构建。它包括:
- 工具列表 + 简短描述。
- 技能列表(仅元数据;见下文)。
- Skills 列表(仅元数据;见下文)。
- 工作区位置。
- 时间UTC + 如已配置则转换为用户时间)。
- 运行时元数据(主机/操作系统/模型/思考模式)。
@ -121,11 +121,11 @@ Top tools (schema size):
大文件会按 `agents.defaults.bootstrapMaxChars`(默认 `20000` 字符)逐文件截断。`/context` 会显示**原始大小与注入大小**的对比,以及是否发生了截断。
## 技能:注入的内容与按需加载的内容
## Skills:注入的内容与按需加载的内容
系统提示词中包含一个紧凑的**技能列表**(名称 + 描述 + 位置)。此列表会产生实际开销。
系统提示词中包含一个紧凑的**Skills 列表**(名称 + 描述 + 位置)。此列表会产生实际开销。
技能指令默认*不会*包含在内。模型应在**需要时**才 `read` 技能`SKILL.md`
Skills 指令默认*不会*包含在内。模型应在**需要时**才 `read` Skills `SKILL.md`
## 工具:两种开销
@ -138,7 +138,7 @@ Top tools (schema size):
## 命令、指令和"内联快捷方式"
斜杠命令由 Gateway 处理。有几种不同的行为:
斜杠命令由 Gateway网关处理。有几种不同的行为:
- **独立命令**:仅包含 `/...` 的消息作为命令运行。
- **指令**`/think`、`/verbose`、`/reasoning`、`/elevated`、`/model`、`/queue` 会在模型看到消息之前被移除。

View File

@ -81,7 +81,7 @@ x-i18n:
- 手动冒烟测试:
- 在群组中发送 `@openclaw` 提及,确认回复中引用了发送者名称。
- 再次发送提及,验证历史消息块已包含并在下一轮清除。
- 检查 Gateway 日志(使用 `--verbose` 运行)查看 `inbound web message` 条目,确认其显示 `from: <groupJid>``[from: …]` 后缀。
- 检查 Gateway网关日志(使用 `--verbose` 运行)查看 `inbound web message` 条目,确认其显示 `from: <groupJid>``[from: …]` 后缀。
## 已知注意事项

View File

@ -18,13 +18,13 @@ OpenClaw 在各平台上统一处理群聊WhatsApp、Telegram、Discord、Sla
## 入门简介2 分钟)
OpenClaw "运行"在自己的消息账户上。没有单独的 WhatsApp 机器人用户。
如果****在某个群组中OpenClaw 就能看到该群组并在其中回复。
OpenClaw "运行"在自己的消息账户上。没有单独的 WhatsApp 机器人用户。
如果****在某个群组中OpenClaw 就能看到该群组并在其中回复。
默认行为:
- 群组受限(`groupPolicy: "allowlist"`)。
- 除非显式禁用提及门控,否则回复需要 @提及。
- 除非显式禁用提及门控,否则回复需要 @提及。
含义:允许列表中的发送者可以通过提及 OpenClaw 来触发它。
@ -45,13 +45,13 @@ otherwise -> reply
![群消息流程](/images/groups-flow.svg)
如果想要...
如果想要...
| 目标 | 需要设置的内容 |
|------|-------------|
| 允许所有群组但仅在 @提及时回复 | `groups: { "*": { requireMention: true } }` |
| 禁用所有群组回复 | `groupPolicy: "disabled"` |
| 仅特定群组 | `groups: { "<group-id>": { ... } }`(无 `"*"` 键) |
| 仅可以在群组中触发 | `groupPolicy: "allowlist"`、`groupAllowFrom: ["+1555..."]` |
| 仅可以在群组中触发 | `groupPolicy: "allowlist"`、`groupAllowFrom: ["+1555..."]` |
## 会话键
@ -62,18 +62,18 @@ otherwise -> reply
## 模式:个人私聊 + 公开群组(单智能体)
可以——如果的"个人"流量是**私聊**"公开"流量是**群组**,这种方式效果很好。
可以——如果的"个人"流量是**私聊**"公开"流量是**群组**,这种方式效果很好。
原因:在单智能体模式下,私聊通常落在**主**会话键(`agent:main:main`)上,而群组始终使用**非主**会话键(`agent:main:<channel>:group:<id>`)。如果启用沙箱并设置 `mode: "non-main"`,这些群组会话将在 Docker 中运行,而的主私聊会话留在主机上。
原因:在单智能体模式下,私聊通常落在**主**会话键(`agent:main:main`)上,而群组始终使用**非主**会话键(`agent:main:<channel>:group:<id>`)。如果启用沙箱并设置 `mode: "non-main"`,这些群组会话将在 Docker 中运行,而的主私聊会话留在主机上。
这为提供了一个智能体"大脑"(共享工作区 + 记忆),但有两种执行姿态:
这为提供了一个智能体"大脑"(共享工作区 + 记忆),但有两种执行姿态:
- **私聊**:完整工具(主机)
- **群组**:沙箱 + 受限工具Docker
> 如果需要真正独立的工作区/角色("个人"和"公开"绝不能混合),请使用第二个智能体 + 绑定。参见[多智能体路由](/concepts/multi-agent)。
> 如果需要真正独立的工作区/角色("个人"和"公开"绝不能混合),请使用第二个智能体 + 绑定。参见[多智能体路由](/concepts/multi-agent)。
示例(私聊在主机上,群组沙箱 + 仅消息工具):
示例(私聊在主机上,群组沙箱隔离 + 仅消息工具):
```json5
{
@ -122,9 +122,9 @@ otherwise -> reply
相关内容:
- 配置键和默认值:[Gateway 配置](/gateway/configuration#agentsdefaultssandbox)
- 配置键和默认值:[Gateway网关配置](/gateway/configuration#agentsdefaultssandbox)
- 调试工具被阻止的原因:[沙箱 vs 工具策略 vs 提权](/gateway/sandbox-vs-tool-policy-vs-elevated)
- 绑定挂载详情:[沙箱](/gateway/sandboxing#custom-bind-mounts)
- 绑定挂载详情:[沙箱隔离](/gateway/sandboxing#custom-bind-mounts)
## 显示标签
@ -195,7 +195,7 @@ otherwise -> reply
- Matrix允许列表使用 `channels.matrix.groups`(房间 ID、别名或名称。使用 `channels.matrix.groupAllowFrom` 限制发送者;也支持按房间的 `users` 允许列表。
- 群组私聊单独控制(`channels.discord.dm.*`、`channels.slack.dm.*`)。
- Telegram 允许列表可以匹配用户 ID`"123456789"`、`"telegram:123456789"`、`"tg:123456789"`)或用户名(`"@alice"` 或 `"alice"`);前缀不区分大小写。
- 默认为 `groupPolicy: "allowlist"`;如果的群组允许列表为空,群组消息将被阻止。
- 默认为 `groupPolicy: "allowlist"`;如果的群组允许列表为空,群组消息将被阻止。
快速心智模型(群消息的评估顺序):

View File

@ -68,13 +68,13 @@ x-i18n:
## 会话与设备
会话由 Gateway 管理,而非由客户端管理。
会话由 Gateway网关管理,而非由客户端管理。
- 私聊消息归并到智能体的主会话键。
- 群组/频道拥有各自独立的会话键。
- 会话存储和对话记录保存在 Gateway 主机上。
- 会话存储和对话记录保存在 Gateway网关主机上。
多个设备/渠道可以映射到同一个会话,但历史记录不会完全同步回每个客户端。建议:长对话使用一个主要设备,以避免上下文分歧。控制界面和 TUI 始终显示 Gateway 端的会话记录,因此它们是权威数据源。
多个设备/渠道可以映射到同一个会话,但历史记录不会完全同步回每个客户端。建议:长对话使用一个主要设备,以避免上下文分歧。控制界面和 TUI 始终显示 Gateway网关端的会话记录,因此它们是权威数据源。
详情请参见:[会话管理](/concepts/session)。

View File

@ -145,7 +145,7 @@ OpenClaw 会将其标记为冷却状态并移至下一个配置文件。
## 相关配置
参阅 [Gateway 配置](/gateway/configuration) 了解:
参阅 [Gateway网关配置](/gateway/configuration) 了解:
- `auth.profiles` / `auth.order`
- `auth.cooldowns.billingBackoffHours` / `auth.cooldowns.billingBackoffHoursByProvider`

View File

@ -1,7 +1,7 @@
---
read_when:
- 你需要按提供商查阅模型设置参考
- 你需要模型提供商的示例配置或 CLI 手引导命令
- 你需要模型提供商的示例配置或 CLI 手引导命令
summary: 模型提供商概览,包含示例配置和 CLI 流程
title: 模型提供商
x-i18n:
@ -97,7 +97,7 @@ OpenClaw 自带 piai 目录。这些提供商**无需**配置 `models.provide
- Gemini CLI OAuth 作为捆绑插件提供(`google-gemini-cli-auth`,默认禁用)。
- 启用:`openclaw plugins enable google-gemini-cli-auth`
- 登录:`openclaw models auth login --provider google-gemini-cli --set-default`
- 注意:你**无需**将客户端 ID 或密钥粘贴到 `openclaw.json` 中。CLI 登录流程会将令牌存储在 Gateway 主机的认证配置文件中。
- 注意:你**无需**将客户端 ID 或密钥粘贴到 `openclaw.json` 中。CLI 登录流程会将令牌存储在 Gateway网关主机的认证配置文件中。
### Z.AI (GLM)
@ -314,4 +314,4 @@ openclaw models set opencode/claude-opus-4-5
openclaw models list
```
另请参见:[/gateway/configuration](/gateway/configuration) 了解完整的配置示例。
另请参见:[/gateway/configuration](/gateway/configuration) 了解全部配置示例。

View File

@ -40,7 +40,7 @@ OpenClaw 按以下顺序选择模型:
## 设置向导(推荐)
如果不想手动编辑配置,可以运行手引导向导:
如果不想手动编辑配置,可以运行手引导向导:
```bash
openclaw onboard
@ -152,7 +152,7 @@ OAuth 状态始终显示(并包含在 `--json` 输出中)。如果已配置
JSON 包含 `auth.oauth`(警告窗口 + 配置文件)和 `auth.providers`(每个提供商的有效认证)。
使用 `--check` 进行自动化检测(缺失/过期时退出码为 `1`,即将过期时为 `2`)。
推荐的 Anthropic 认证方式是 Claude Code CLI setup-token可在任何地方运行如有需要可粘贴到 Gateway 主机上):
推荐的 Anthropic 认证方式是 Claude Code CLI setup-token可在任何地方运行如有需要可粘贴到 Gateway网关主机上):
```bash
claude setup-token

View File

@ -1,5 +1,5 @@
---
read_when: 你希望在一个 Gateway 进程中运行多个隔离的智能体(工作区 + 认证)。
read_when: 你希望在一个 Gateway网关进程中运行多个隔离的智能体(工作区 + 认证)。
status: active
summary: 多智能体路由:隔离的智能体、渠道账户和绑定
title: 多智能体路由
@ -14,7 +14,7 @@ x-i18n:
# 多智能体路由
目标:在一个运行中的 Gateway 中托管多个*隔离的*智能体(独立的工作区 + `agentDir` + 会话),以及多个渠道账户(例如两个 WhatsApp。入站消息通过绑定路由到对应的智能体。
目标:在一个运行中的 Gateway网关中托管多个*隔离的*智能体(独立的工作区 + `agentDir` + 会话),以及多个渠道账户(例如两个 WhatsApp。入站消息通过绑定路由到对应的智能体。
## 什么是"一个智能体"
@ -32,9 +32,9 @@ x-i18n:
主智能体的凭证**不会**自动共享。切勿在智能体之间复用 `agentDir`(会导致认证/会话冲突)。如果你想共享凭证,请将 `auth-profiles.json` 复制到另一个智能体的 `agentDir` 中。
技能通过每个工作区的 `skills/` 文件夹按智能体隔离,共享技能可从 `~/.openclaw/skills` 获取。参阅[技能:按智能体 vs 共享](/tools/skills#per-agent-vs-shared-skills)。
Skills 通过每个工作区的 `skills/` 文件夹按智能体隔离,共享 Skills 可从 `~/.openclaw/skills` 获取。参阅[Skills:按智能体 vs 共享](/tools/skills#per-agent-vs-shared-skills)。
Gateway 可以托管**一个智能体**(默认)或**多个智能体**并行运行。
Gateway网关可以托管**一个智能体**(默认)或**多个智能体**并行运行。
**工作区说明:** 每个智能体的工作区是**默认工作目录**,而非严格的沙箱。相对路径在工作区内解析,但绝对路径可以访问主机上的其他位置,除非启用了沙箱。参阅[沙箱](/gateway/sandboxing)。
@ -79,7 +79,7 @@ openclaw agents list --bindings
- **不同的性格**(按智能体工作区文件,如 `AGENTS.md``SOUL.md`)。
- **独立的认证 + 会话**(除非显式启用,否则无串扰)。
这使得**多个用户**可以共享一台 Gateway 服务器,同时保持各自的 AI "大脑"和数据隔离。
这使得**多个用户**可以共享一台 Gateway网关服务器,同时保持各自的 AI "大脑"和数据隔离。
## 一个 WhatsApp 号码,多个用户(私聊分流)
@ -316,7 +316,7 @@ openclaw agents list --bindings
说明:
- 工具允许/拒绝列表针对的是**工具**,而非技能。如果某个技能需要运行二进制文件,请确保允许 `exec` 并且该二进制文件存在于沙箱中。
- 工具允许/拒绝列表针对的是**工具**,而非 Skills。如果某个 Skills 需要运行二进制文件,请确保允许 `exec` 并且该二进制文件存在于沙箱中。
- 要实现更严格的控制,请设置 `agents.list[].groupChat.mentionPatterns` 并为渠道启用群组白名单。
## 按智能体的沙箱和工具配置
@ -339,7 +339,7 @@ openclaw agents list --bindings
id: "family",
workspace: "~/.openclaw/workspace-family",
sandbox: {
mode: "all", // 始终沙箱
mode: "all", // 始终沙箱隔离
scope: "agent", // 每个智能体一个容器
docker: {
// 容器创建后的可选一次性设置
@ -361,7 +361,7 @@ openclaw agents list --bindings
**优势:**
- **安全隔离**:限制不受信任的智能体的工具
- **资源控制**:沙箱特定智能体,同时让其他智能体在主机上运行
- **资源控制**:沙箱隔离特定智能体,同时让其他智能体在主机上运行
- **灵活策略**:按智能体设置不同权限
注意:`tools.elevated` 是**全局的**且基于发送者;不能按智能体配置。如果你需要按智能体的边界,请使用 `agents.list[].tools` 来拒绝 `exec`。对于群组定向,请使用 `agents.list[].groupChat.mentionPatterns`,以便 @提及能准确映射到目标智能体。

View File

@ -1,9 +1,9 @@
---
read_when:
- 想全面了解 OpenClaw 的 OAuth 流程
- 遇到了令牌失效/登出问题
- 想了解 setup-token 或 OAuth 认证流程
- 想使用多账户或配置文件路由
- 想全面了解 OpenClaw 的 OAuth 流程
- 遇到了令牌失效/登出问题
- 想了解 setup-token 或 OAuth 认证流程
- 想使用多账户或配置文件路由
summary: OpenClaw 中的 OAuth令牌交换、存储和多账户模式
title: OAuth
x-i18n:
@ -35,7 +35,7 @@ OAuth 提供商通常在登录/刷新流程中发放**新的刷新令牌**。某
实际症状:
- 通过 OpenClaw _和_ Claude Code / Codex CLI 登录 → 其中一个稍后会随机"登出"
- 通过 OpenClaw _和_ Claude Code / Codex CLI 登录 → 其中一个稍后会随机"登出"
为减少这种情况OpenClaw 将 `auth-profiles.json` 视为**令牌汇聚点**
@ -63,7 +63,7 @@ OAuth 提供商通常在登录/刷新流程中发放**新的刷新令牌**。某
openclaw models auth setup-token --provider anthropic
```
如果在其他地方生成了令牌,可以手动粘贴:
如果在其他地方生成了令牌,可以手动粘贴:
```bash
openclaw models auth paste-token --provider anthropic
@ -96,7 +96,7 @@ OpenClaw 的交互式登录流程在 `@mariozechner/pi-ai` 中实现,并集成
1. 生成 PKCE 验证器/质询 + 随机 `state`
2. 打开 `https://auth.openai.com/oauth/authorize?...`
3. 尝试在 `http://127.0.0.1:1455/auth/callback` 捕获回调
4. 如果回调无法绑定(或在远程/无头环境中),手动粘贴重定向 URL/代码
4. 如果回调无法绑定(或在远程/无头环境中),手动粘贴重定向 URL/代码
5. 在 `https://auth.openai.com/oauth/token` 进行交换
6. 从访问令牌中提取 `accountId` 并存储 `{ access, refresh, expires, accountId }`
@ -111,7 +111,7 @@ OpenClaw 的交互式登录流程在 `@mariozechner/pi-ai` 中实现,并集成
- 如果 `expires` 在未来 → 使用已存储的访问令牌
- 如果已过期 → 刷新(在文件锁下)并覆盖已存储的凭据
刷新流程是自动的;通常不需要手动管理令牌。
刷新流程是自动的;通常不需要手动管理令牌。
## 多账户(配置文件)+ 路由
@ -119,7 +119,7 @@ OpenClaw 的交互式登录流程在 `@mariozechner/pi-ai` 中实现,并集成
### 1推荐独立智能体
如果希望"个人"和"工作"永远不交叉,请使用隔离的智能体(独立的会话 + 凭据 + 工作区):
如果希望"个人"和"工作"永远不交叉,请使用隔离的智能体(独立的会话 + 凭据 + 工作区):
```bash
openclaw agents add work

View File

@ -2,7 +2,7 @@
read_when:
- 调试实例选项卡
- 排查重复或过期的实例行
- 更改 Gateway WebSocket 连接或系统事件信标
- 更改 Gateway网关 WebSocket 连接或系统事件信标
summary: OpenClaw 在线状态条目的生成、合并与显示方式
title: 在线状态
x-i18n:
@ -18,8 +18,8 @@ x-i18n:
OpenClaw 的"在线状态"是一个轻量级、尽力而为的视图,展示:
- **Gateway** 自身,以及
- **连接到 Gateway 的客户端**Mac 应用、WebChat、CLI 等)
- **Gateway网关** 自身,以及
- **连接到 Gateway网关的客户端**Mac 应用、WebChat、CLI 等)
在线状态主要用于渲染 macOS 应用的**实例**选项卡,并为操作人员提供快速可视化。
@ -41,13 +41,13 @@ OpenClaw 的"在线状态"是一个轻量级、尽力而为的视图,展示:
在线状态条目由多个来源产生并进行**合并**。
### 1Gateway 自身条目
### 1Gateway网关自身条目
Gateway 在启动时始终会创建一个"self"条目这样即使在任何客户端连接之前UI 也能显示 Gateway 主机。
Gateway网关在启动时始终会创建一个"self"条目这样即使在任何客户端连接之前UI 也能显示 Gateway网关主机。
### 2WebSocket 连接
每个 WebSocket 客户端都以 `connect` 请求开始。握手成功后Gateway 会为该连接更新插入一个在线状态条目。
每个 WebSocket 客户端都以 `connect` 请求开始。握手成功后Gateway网关会为该连接更新插入一个在线状态条目。
#### 为什么一次性 CLI 命令不会显示
@ -59,7 +59,7 @@ CLI 通常只为短暂的一次性命令建立连接。为避免实例列表被
### 4节点连接role: node
当节点通过 Gateway WebSocket 以 `role: node` 连接时Gateway 会为该节点更新插入一个在线状态条目(与其他 WebSocket 客户端流程相同)。
当节点通过 Gateway网关 WebSocket 以 `role: node` 连接时Gateway网关会为该节点更新插入一个在线状态条目(与其他 WebSocket 客户端流程相同)。
## 合并与去重规则(为什么 `instanceId` 很重要)
@ -80,9 +80,9 @@ CLI 通常只为短暂的一次性命令建立连接。为避免实例列表被
这确保列表保持新鲜,避免无限制的内存增长。
## 远程/隧道注意事项(回环 IP
## 远程/隧道注意事项(local loopback IP
当客户端通过 SSH 隧道/本地端口转发连接时Gateway 可能会将远程地址识别为 `127.0.0.1`。为避免覆盖客户端报告的有效 IP回环远程地址会被忽略。
当客户端通过 SSH 隧道/本地端口转发连接时Gateway网关可能会将远程地址识别为 `127.0.0.1`。为避免覆盖客户端报告的有效 IPlocal loopback 远程地址会被忽略。
## 消费者
@ -92,7 +92,7 @@ macOS 应用渲染 `system-presence` 的输出,并根据最后更新的时间
## 调试技巧
- 要查看原始列表,请对 Gateway 调用 `system-presence`
- 要查看原始列表,请对 Gateway网关调用 `system-presence`
- 如果看到重复条目:
- 确认客户端在握手中发送了稳定的 `client.instanceId`
- 确认周期性信标使用相同的 `instanceId`

View File

@ -82,7 +82,7 @@ summarize 会保留一个被丢弃消息的简短要点列表,并将其作为
## 作用范围与保证
- 适用于所有使用 Gateway 回复管道的入站渠道的自动回复智能体运行WhatsApp 网页版、Telegram、Slack、Discord、Signal、iMessage、网页聊天等
- 适用于所有使用 Gateway网关回复管道的入站渠道的自动回复智能体运行WhatsApp 网页版、Telegram、Slack、Discord、Signal、iMessage、网页聊天等
- 默认通道(`main`)在进程范围内适用于入站消息和主心跳;设置 `agents.defaults.maxConcurrent` 以允许多个会话并行。
- 可能存在其他通道(如 `cron`、`subagent`),以便后台任务可以并行运行而不阻塞入站回复。
- 按会话通道保证同一时间只有一个智能体运行接触给定会话。

View File

@ -126,4 +126,4 @@ x-i18n:
}
```
参见配置参考:[Gateway 配置](/gateway/configuration)
参见配置参考:[Gateway网关配置](/gateway/configuration)

View File

@ -48,7 +48,7 @@ x-i18n:
- `messageLimit > 0` 时会获取每个会话的 `chat.history` 并包含最近 N 条消息。
- 列表输出中会过滤工具结果;使用 `sessions_history` 获取工具消息。
- 在**沙箱**的智能体会话中运行时,会话工具默认为**仅已生成可见**(见下文)。
- 在**沙箱隔离**的智能体会话中运行时,会话工具默认为**仅已生成可见**(见下文)。
行结构JSON
@ -99,7 +99,7 @@ x-i18n:
- 如果等待超时:`{ runId, status: "timeout", error }`。运行继续;稍后调用 `sessions_history`
- 如果运行失败:`{ runId, status: "error", error }`。
- 通知投递在主运行完成后运行,属于尽力而为;`status: "ok"` 不保证通知已成功投递。
- 通过 Gateway `agent.wait`(服务器端)等待,因此重连不会中断等待。
- 通过 Gateway网关 `agent.wait`(服务器端)等待,因此重连不会中断等待。
- 智能体间消息上下文会注入到主运行中。
- 主运行完成后OpenClaw 运行**回复往返循环**
- 第 2 轮及之后在请求方和目标智能体之间交替。
@ -144,7 +144,7 @@ x-i18n:
执行点:
- `chat.send` / `agent`Gateway
- `chat.send` / `agent`Gateway网关
- 自动回复投递逻辑
## sessions_spawn
@ -182,7 +182,7 @@ x-i18n:
## 沙箱会话可见性
沙箱的会话可以使用会话工具,但默认只能看到通过 `sessions_spawn` 生成的会话。
沙箱隔离的会话可以使用会话工具,但默认只能看到通过 `sessions_spawn` 生成的会话。
配置:

View File

@ -24,16 +24,16 @@ OpenClaw 将**每个智能体一个私聊会话**视为主会话。私聊归并
- `per-account-channel-peer`:按账号 + 渠道 + 发送者隔离(推荐用于多账号收件箱)。
使用 `session.identityLinks` 将带提供商前缀的对端 ID 映射到规范身份,这样在使用 `per-peer`、`per-channel-peer` 或 `per-account-channel-peer` 时,同一个人可以跨渠道共享私信会话。
## Gateway 是权威数据源
## Gateway网关是权威数据源
所有会话状态均由 **Gateway**"主" OpenClaw管理。UI 客户端macOS 应用、WebChat 等)必须向 Gateway 查询会话列表和令牌计数,而不是读取本地文件。
所有会话状态均由 **Gateway网关**"主" OpenClaw管理。UI 客户端macOS 应用、WebChat 等)必须向 Gateway网关查询会话列表和令牌计数,而不是读取本地文件。
- 在**远程模式**下,你关心的会话存储位于远程 Gateway 主机上,而不是你的 Mac 上。
- UI 中显示的令牌计数来自 Gateway 存储字段(`inputTokens`、`outputTokens`、`totalTokens`、`contextTokens`)。客户端不会解析 JSONL 记录来"修正"总数。
- 在**远程模式**下,你关心的会话存储位于远程 Gateway网关主机上,而不是你的 Mac 上。
- UI 中显示的令牌计数来自 Gateway网关存储字段(`inputTokens`、`outputTokens`、`totalTokens`、`contextTokens`)。客户端不会解析 JSONL 记录来"修正"总数。
## 状态存储位置
- 在 **Gateway 主机**上:
- 在 **Gateway网关主机**上:
- 存储文件:`~/.openclaw/agents/<agentId>/sessions/sessions.json`(每个智能体)。
- 对话记录:`~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl`Telegram 话题会话使用 `.../<SessionId>-topic-<threadId>.jsonl`)。
- 存储是一个 `sessionKey -> { sessionId, updatedAt, ... }` 的映射。删除条目是安全的;它们会按需重新创建。
@ -71,7 +71,7 @@ OpenClaw 默认在 LLM 调用之前从内存上下文中修剪**旧的工具结
## 生命周期
- 重置策略:会话持续复用直到过期,过期在下一条入站消息时评估。
- 每日重置:默认为 **Gateway 主机本地时间凌晨 4:00**。当会话的最后更新早于最近一次每日重置时间时,会话即为过期。
- 每日重置:默认为 **Gateway网关主机本地时间凌晨 4:00**。当会话的最后更新早于最近一次每日重置时间时,会话即为过期。
- 空闲重置(可选):`idleMinutes` 添加一个滑动空闲窗口。当同时配置了每日重置和空闲重置时,**先到期的那个**强制创建新会话。
- 旧版仅空闲模式:如果设置了 `session.idleMinutes` 但没有任何 `session.reset`/`resetByType` 配置OpenClaw 会保持仅空闲模式以向后兼容。
- 按类型覆盖(可选):`resetByType` 允许你为 `dm`、`group` 和 `thread` 会话覆盖策略thread = Slack/Discord 线程、Telegram 话题、连接器提供的 Matrix 线程)。
@ -117,7 +117,7 @@ OpenClaw 默认在 LLM 调用之前从内存上下文中修剪**旧的工具结
alice: ["telegram:123456789", "discord:987654321012345678"],
},
reset: {
// 默认值mode=dailyatHour=4Gateway 主机本地时间)。
// 默认值mode=dailyatHour=4Gateway网关主机本地时间)。
// 如果同时设置了 idleMinutes先到期的优先。
mode: "daily",
atHour: 4,
@ -142,7 +142,7 @@ OpenClaw 默认在 LLM 调用之前从内存上下文中修剪**旧的工具结
- `openclaw status` — 显示存储路径和最近的会话。
- `openclaw sessions --json` — 转储所有条目(使用 `--active <minutes>` 进行筛选)。
- `openclaw gateway call sessions.list --params '{}'` — 从运行中的 Gateway 获取会话(使用 `--url`/`--token` 访问远程 Gateway
- `openclaw gateway call sessions.list --params '{}'` — 从运行中的 Gateway网关获取会话(使用 `--url`/`--token` 访问远程 Gateway网关)。
- 在聊天中发送 `/status` 作为独立消息,可查看智能体是否可达、会话上下文使用了多少、当前的思考/详细模式开关,以及 WhatsApp 网页凭证的最后刷新时间(有助于发现需要重新链接的情况)。
- 发送 `/context list``/context detail` 查看系统提示词和注入的工作区文件中的内容(以及最大的上下文贡献者)。
- 发送 `/stop` 作为独立消息,可中止当前运行、清除该会话的排队后续消息,并停止由其生成的任何子智能体运行(回复中包含已停止的数量)。

View File

@ -1,7 +1,7 @@
---
read_when:
- 编辑系统提示词文本、工具列表或时间/心跳部分
- 更改工作区引导或技能注入行为
- 更改工作区引导或 Skills 注入行为
summary: OpenClaw 系统提示词的内容及其组装方式
title: 系统提示词
x-i18n:
@ -25,26 +25,26 @@ OpenClaw 为每次智能体运行构建自定义系统提示词。该提示词
- **工具**:当前工具列表及简短描述。
- **安全**:简短的护栏提醒,避免模型追求权力或绕过监督。
- **技能**(可用时):告诉模型如何按需加载技能指令。
- **Skills**(可用时):告诉模型如何按需加载 Skills 指令。
- **OpenClaw 自更新**:如何运行 `config.apply``update.run`
- **工作区**:工作目录(`agents.defaults.workspace`)。
- **文档**OpenClaw 文档的本地路径(仓库或 npm 包)及查阅时机。
- **工作区文件(注入的)**:表明引导文件包含在下方。
- **沙箱**(启用时):表明沙箱运行时、沙箱路径,以及是否可用提权执行。
- **沙箱**(启用时):表明沙箱隔离运行时、沙箱路径,以及是否可用提权执行。
- **当前日期和时间**:用户本地时间、时区和时间格式。
- **回复标签**:支持的提供商的可选回复标签语法。
- **心跳**:心跳提示和确认行为。
- **运行时**主机、操作系统、Node、模型、仓库根目录检测到时、思考级别一行
- **推理**:当前可见性级别及 /reasoning 切换提示。
系统提示词中的安全护栏是建议性的。它们引导模型行为但不强制执行策略。请使用工具策略、执行审批、沙箱和渠道白名单进行硬性执行;操作人员可以按设计禁用这些功能。
系统提示词中的安全护栏是建议性的。它们引导模型行为但不强制执行策略。请使用工具策略、执行审批、沙箱隔离和渠道白名单进行硬性执行;操作人员可以按设计禁用这些功能。
## 提示词模式
OpenClaw 可以为子智能体渲染更小的系统提示词。运行时为每次运行设置一个 `promptMode`(非用户可配置项):
- `full`(默认):包含上述所有部分。
- `minimal`:用于子智能体;省略**技能**、**记忆召回**、**OpenClaw 自更新**、**模型别名**、**用户身份**、**回复标签**、**消息**、**静默回复**和**心跳**。工具、**安全**、工作区、沙箱、当前日期和时间(已知时)、运行时和注入的上下文仍然可用。
- `minimal`:用于子智能体;省略**Skills**、**记忆召回**、**OpenClaw 自更新**、**模型别名**、**用户身份**、**回复标签**、**消息**、**静默回复**和**心跳**。工具、**安全**、工作区、沙箱、当前日期和时间(已知时)、运行时和注入的上下文仍然可用。
- `none`:仅返回基础身份行。
`promptMode=minimal` 时,额外注入的提示词标记为**子智能体上下文**而非**群聊上下文**。
@ -78,11 +78,11 @@ OpenClaw 可以为子智能体渲染更小的系统提示词。运行时为每
- `agents.defaults.userTimezone`
- `agents.defaults.timeFormat``auto` | `12` | `24`
详见[日期和时间](/date-time)了解完整行为细节。
详见[日期和时间](/date-time)了解全部行为细节。
## 技能
## Skills
当存在符合条件的技能时OpenClaw 会注入一个紧凑的**可用技能列表**`formatSkillsForPrompt`),其中包含每个技能的**文件路径**。提示词指示模型使用 `read` 加载位于所列位置(工作区、托管或捆绑)的 SKILL.md。如果没有符合条件的技能,则省略技能部分。
当存在符合条件的 Skills 时OpenClaw 会注入一个紧凑的**可用 Skills 列表**`formatSkillsForPrompt`),其中包含每个 Skills 的**文件路径**。提示词指示模型使用 `read` 加载位于所列位置(工作区、托管或捆绑)的 SKILL.md。如果没有符合条件的 Skills则省略 Skills 部分。
```
<available_skills>
@ -94,8 +94,8 @@ OpenClaw 可以为子智能体渲染更小的系统提示词。运行时为每
</available_skills>
```
这样可以保持基础提示词精简,同时仍然支持有针对性的技能使用。
这样可以保持基础提示词精简,同时仍然支持有针对性的 Skills 使用。
## 文档
当可用时,系统提示词包含一个**文档**部分,指向本地 OpenClaw 文档目录(仓库工作区中的 `docs/` 或捆绑的 npm 包文档),并注明公共镜像、源代码仓库、社区 Discord 和 ClawHub (https://clawhub.com) 用于技能发现。提示词指示模型在查询 OpenClaw 行为、命令、配置或架构时优先查阅本地文档,并在可能时自行运行 `openclaw status`(仅在无法访问时才询问用户)。
当可用时,系统提示词包含一个**文档**部分,指向本地 OpenClaw 文档目录(仓库工作区中的 `docs/` 或捆绑的 npm 包文档),并注明公共镜像、源代码仓库、社区 Discord 和 ClawHub (https://clawhub.com) 用于 Skills 发现。提示词指示模型在查询 OpenClaw 行为、命令、配置或架构时优先查阅本地文档,并在可能时自行运行 `openclaw status`(仅在无法访问时才询问用户)。

View File

@ -1,7 +1,7 @@
---
read_when:
- 更新协议模式或代码生成
summary: TypeBox 模式作为 Gateway 协议的唯一事实来源
summary: TypeBox 模式作为 Gateway网关协议的唯一事实来源
title: TypeBox
x-i18n:
generated_at: "2026-02-01T20:24:36Z"
@ -16,13 +16,13 @@ x-i18n:
最后更新2026-01-10
TypeBox 是一个 TypeScript 优先的模式库。我们用它来定义 **Gateway WebSocket 协议**(握手、请求/响应、服务器事件)。这些模式驱动**运行时验证**、**JSON Schema 导出**以及 macOS 应用的 **Swift 代码生成**。一个事实来源;其他一切都是生成的。
TypeBox 是一个 TypeScript 优先的模式库。我们用它来定义 **Gateway网关 WebSocket 协议**(握手、请求/响应、服务器事件)。这些模式驱动**运行时验证**、**JSON Schema 导出**以及 macOS 应用的 **Swift 代码生成**。一个事实来源;其他一切都是生成的。
如果您想了解更高层次的协议上下文,请从 [Gateway 架构](/concepts/architecture) 开始。
如果你想了解更高层次的协议上下文,请从 [Gateway网关架构](/concepts/architecture) 开始。
## 心智模型30 秒)
每条 Gateway WS 消息都是以下三种帧之一:
每条 Gateway网关 WS 消息都是以下三种帧之一:
- **请求**`{ type: "req", id, method, params }`
- **响应**`{ type: "res", id, ok, payload | error }`
@ -33,7 +33,7 @@ TypeBox 是一个 TypeScript 优先的模式库。我们用它来定义 **Gatewa
连接流程(最简):
```
Client Gateway
Client Gateway网关
|---- req:connect -------->|
|<---- res:hello-ok --------|
|<---- event:tick ----------|
@ -49,7 +49,7 @@ Client Gateway
| 消息 | `send`、`poll`、`agent`、`agent.wait` | 有副作用的操作需要 `idempotencyKey` |
| 聊天 | `chat.history`、`chat.send`、`chat.abort`、`chat.inject` | WebChat 使用这些 |
| 会话 | `sessions.list`、`sessions.patch`、`sessions.delete` | 会话管理 |
| 节点 | `node.list`、`node.invoke`、`node.pair.*` | Gateway WS + 节点操作 |
| 节点 | `node.list`、`node.invoke`、`node.pair.*` | Gateway网关 WS + 节点操作 |
| 事件 | `tick`、`presence`、`agent`、`chat`、`health`、`shutdown` | 服务器推送 |
权威列表位于 `src/gateway/server.ts``METHODS`、`EVENTS`)。
@ -61,14 +61,14 @@ Client Gateway
- 服务器握手 + 方法分发:`src/gateway/server.ts`
- 节点客户端:`src/gateway/client.ts`
- 生成的 JSON Schema`dist/protocol.schema.json`
- 生成的 Swift 模型:`apps/macos/Sources/OpenClawProtocol/GatewayModels.swift`
- 生成的 Swift 模型:`apps/macos/Sources/OpenClawProtocol/Gateway网关Models.swift`
## 当前流水线
- `pnpm protocol:gen`
- 将 JSON Schemadraft07写入 `dist/protocol.schema.json`
- `pnpm protocol:gen:swift`
- 生成 Swift Gateway 模型
- 生成 Swift Gateway网关模型
- `pnpm protocol:check`
- 运行两个生成器并验证输出已提交
@ -76,7 +76,7 @@ Client Gateway
- **服务器端**:每个入站帧都通过 AJV 验证。握手仅接受参数匹配 `ConnectParams``connect` 请求。
- **客户端**JS 客户端在使用事件和响应帧之前进行验证。
- **方法接口**Gateway `hello-ok` 中公布支持的 `methods``events`
- **方法接口**Gateway网关`hello-ok` 中公布支持的 `methods``events`
## 示例帧
@ -228,7 +228,7 @@ export const validateSystemEchoParams = ajv.compile<SystemEchoParams>(SystemEcho
`src/gateway/server-methods/system.ts` 中添加处理器:
```ts
export const systemHandlers: GatewayRequestHandlers = {
export const systemHandlers: Gateway网关RequestHandlers = {
"system.echo": ({ params, respond }) => {
const text = String(params.text ?? "");
respond(true, { ok: true, text });
@ -252,7 +252,7 @@ pnpm protocol:check
Swift 生成器输出:
- 包含 `req`、`res`、`event` 和 `unknown` case 的 `GatewayFrame` 枚举
- 包含 `req`、`res`、`event` 和 `unknown` case 的 `Gateway网关Frame` 枚举
- 强类型的 payload 结构体/枚举
- `ErrorCode` 值和 `GATEWAY_PROTOCOL_VERSION`
@ -268,7 +268,7 @@ Swift 生成器输出:
- 大多数对象使用 `additionalProperties: false` 以实现严格的 payload。
- `NonEmptyString` 是 ID 和方法/事件名称的默认类型。
- 顶层 `GatewayFrame` 在 `type` 上使用**鉴别器**。
- 顶层 `Gateway网关Frame` 在 `type` 上使用**鉴别器**。
- 有副作用的方法通常需要在参数中包含 `idempotencyKey`(示例:`send`、`poll`、`agent`、`chat.send`)。
## 实时 Schema JSON
@ -277,7 +277,7 @@ Swift 生成器输出:
- https://raw.githubusercontent.com/openclaw/openclaw/main/dist/protocol.schema.json
## 当更改模式时
## 当更改模式时
1. 更新 TypeBox 模式。
2. 运行 `pnpm protocol:check`

View File

@ -1,7 +1,7 @@
---
read_when:
- 正在更改向模型或用户展示时间戳的方式
- 正在调试消息或系统提示词输出中的时间格式问题
- 正在更改向模型或用户展示时间戳的方式
- 正在调试消息或系统提示词输出中的时间格式问题
summary: 信封、提示词、工具和连接器中的日期与时间处理
title: 日期与时间
x-i18n:
@ -28,7 +28,7 @@ OpenClaw 默认使用**主机本地时间作为传输时间戳**,并且**仅
此信封时间戳**默认为主机本地时间**,与提供商时区无关。
可以覆盖此行为:
可以覆盖此行为:
```json5
{

View File

@ -1,7 +1,7 @@
---
read_when:
- 需要检查原始模型输出中的推理泄漏
- 希望在迭代开发时以监视模式运行 Gateway
- 希望在迭代开发时以监视模式运行 Gateway网关
- 需要可重复的调试工作流
summary: 调试工具:监视模式、原始模型流和推理泄漏追踪
title: 调试
@ -35,9 +35,9 @@ x-i18n:
`/debug reset` 会清除所有覆盖项,恢复为磁盘上的配置。
## Gateway 监视模式
## Gateway网关监视模式
要快速迭代,可在文件监视器下运行 Gateway
要快速迭代,可在文件监视器下运行 Gateway网关
```bash
pnpm gateway:watch --force
@ -49,14 +49,14 @@ pnpm gateway:watch --force
tsx watch src/entry.ts gateway --force
```
`gateway:watch` 后添加任何 Gateway CLI 标志,它们会在每次重启时被透传。
`gateway:watch` 后添加任何 Gateway网关 CLI 标志,它们会在每次重启时被透传。
## 开发配置文件 + 开发 Gateway--dev
## 开发配置文件 + 开发 Gateway网关--dev
使用开发配置文件来隔离状态,搭建一个安全的、可随时丢弃的调试环境。有**两个** `--dev` 标志:
- **全局 `--dev`(配置文件):** 将状态隔离到 `~/.openclaw-dev`,并将 Gateway 默认端口设为 `19001`(派生端口随之偏移)。
- **`gateway --dev`:告诉 Gateway 在缺少配置和工作区时自动创建默认配置 + 工作区**(并跳过 BOOTSTRAP.md
- **全局 `--dev`(配置文件):** 将状态隔离到 `~/.openclaw-dev`,并将 Gateway网关默认端口设为 `19001`(派生端口随之偏移)。
- **`gateway --dev`:告诉 Gateway网关在缺少配置和工作区时自动创建默认配置 + 工作区**(并跳过 BOOTSTRAP.md
推荐流程(开发配置文件 + 开发引导):
@ -76,7 +76,7 @@ OPENCLAW_PROFILE=dev openclaw tui
- `OPENCLAW_GATEWAY_PORT=19001`(浏览器/画布端口随之偏移)
2. **开发引导**`gateway --dev`
- 如缺少配置则写入最小配置(`gateway.mode=local`,绑定回环地址)。
- 如缺少配置则写入最小配置(`gateway.mode=local`,绑定 local loopback)。
- 将 `agent.workspace` 设为开发工作区。
- 设置 `agent.skipBootstrap=true`(不使用 BOOTSTRAP.md
- 如缺少工作区文件则进行初始化:
@ -99,7 +99,7 @@ OPENCLAW_PROFILE=dev openclaw gateway --dev --reset
`--reset` 会清除配置、凭据、会话和开发工作区(使用 `trash` 而非 `rm`),然后重新创建默认的开发环境。
提示:如果非开发 Gateway 已在运行launchd/systemd请先停止它
提示:如果非开发 Gateway网关已在运行launchd/systemd请先停止它
```bash
openclaw gateway stop

View File

@ -45,7 +45,7 @@ x-i18n:
}
```
更改标志后需重启 Gateway。
更改标志后需重启 Gateway网关
## 环境变量覆盖(一次性)
@ -89,7 +89,7 @@ rg "telegram http error" /tmp/openclaw/openclaw-*.log
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"
```
对于远程 Gateway你也可以使用 `openclaw logs --follow`(参见 [/cli/logs](/cli/logs))。
对于远程 Gateway网关,你也可以使用 `openclaw logs --follow`(参见 [/cli/logs](/cli/logs))。
## 注意事项

View File

@ -1,7 +1,7 @@
---
read_when:
- 需要了解加载了哪些环境变量及其加载顺序
- 正在调试 Gateway 中缺失的 API 密钥
- 正在调试 Gateway网关中缺失的 API 密钥
- 正在编写提供商认证或部署环境的文档
summary: OpenClaw 从哪里加载环境变量及其优先级顺序
title: 环境变量
@ -20,7 +20,7 @@ OpenClaw 从多个来源获取环境变量。规则是**永远不覆盖已有的
## 优先级(从高到低)
1. **进程环境**Gateway 进程从父 shell/守护进程继承的变量)。
1. **进程环境**Gateway网关进程从父 shell/守护进程继承的变量)。
2. **当前工作目录下的 `.env`**dotenv 默认行为;不覆盖已有值)。
3. **全局 `.env`**,位于 `~/.openclaw/.env`(即 `$OPENCLAW_STATE_DIR/.env`;不覆盖已有值)。
4. **配置文件中的 `env` 块**,位于 `~/.openclaw/openclaw.json`(仅在变量缺失时应用)。
@ -83,6 +83,6 @@ OpenClaw 从多个来源获取环境变量。规则是**永远不覆盖已有的
## 相关内容
- [Gateway 配置](/gateway/configuration)
- [Gateway网关配置](/gateway/configuration)
- [常见问题:环境变量与 .env 加载](/help/faq#env-vars-and-env-loading)
- [模型概览](/concepts/models)

View File

@ -1,7 +1,7 @@
---
read_when: 修改手引导向导步骤或配置 schema 端点时
summary: 手引导向导和配置 schema 的 RPC 协议说明
title: 手引导与配置协议
read_when: 修改手引导向导步骤或配置 schema 端点时
summary: 手引导向导和配置 schema 的 RPC 协议说明
title: 手引导与配置协议
x-i18n:
generated_at: "2026-02-01T20:24:58Z"
model: claude-opus-4-5
@ -11,19 +11,19 @@ x-i18n:
workflow: 14
---
# 手引导 + 配置协议
# 手引导 + 配置协议
用途:在 CLI、macOS 应用和 Web UI 之间共享手引导与配置界面。
用途:在 CLI、macOS 应用和 Web UI 之间共享手引导与配置界面。
## 组件
- 向导引擎(共享会话 + 提示 + 手引导状态)。
- CLI 手引导使用与 UI 客户端相同的向导流程。
- Gateway RPC 暴露向导 + 配置 schema 端点。
- macOS 手引导使用向导步骤模型。
- 向导引擎(共享会话 + 提示 + 手引导状态)。
- CLI 手引导使用与 UI 客户端相同的向导流程。
- Gateway网关 RPC 暴露向导 + 配置 schema 端点。
- macOS 手引导使用向导步骤模型。
- Web UI 根据 JSON Schema + UI 提示渲染配置表单。
## Gateway RPC
## Gateway网关 RPC
- `wizard.start` 参数:`{ mode?: "local"|"remote", workspace?: string }`
- `wizard.next` 参数:`{ sessionId, answer?: { stepId, value? } }`
@ -44,4 +44,4 @@ x-i18n:
## 说明
- 本文档是跟踪手引导/配置协议重构的唯一位置。
- 本文档是跟踪手引导/配置协议重构的唯一位置。

View File

@ -17,12 +17,12 @@ x-i18n:
## 背景
近期 Gateway 日志显示 `cron.add` 反复因无效参数(缺少 `sessionTarget`、`wakeMode`、`payload` 以及格式错误的 `schedule`而失败。这表明至少有一个客户端可能是智能体工具调用路径正在发送包装过的或部分指定的任务载荷。此外TypeScript、Gateway schema、CLI 标志和 UI 表单类型之间的 cron 提供商枚举存在偏差,同时 `cron.status` 的 UI 也存在不匹配问题(期望 `jobCount`,而 Gateway 返回的是 `jobs`)。
近期 Gateway网关日志显示 `cron.add` 反复因无效参数(缺少 `sessionTarget`、`wakeMode`、`payload` 以及格式错误的 `schedule`而失败。这表明至少有一个客户端可能是智能体工具调用路径正在发送包装过的或部分指定的任务载荷。此外TypeScript、Gateway网关 schema、CLI 标志和 UI 表单类型之间的 cron 提供商枚举存在偏差,同时 `cron.status` 的 UI 也存在不匹配问题(期望 `jobCount`,而 Gateway网关返回的是 `jobs`)。
## 目标
- 通过标准化常见的包装载荷并推断缺失的 `kind` 字段,消除 `cron.add` 的 INVALID_REQUEST 错误。
- 在 Gateway schema、cron 类型、CLI 文档和 UI 表单之间对齐 cron 提供商列表。
- 在 Gateway网关 schema、cron 类型、CLI 文档和 UI 表单之间对齐 cron 提供商列表。
- 明确智能体 cron 工具 schema使 LLM 生成正确的任务载荷。
- 修复 Control UI 中 cron 状态的任务计数显示。
- 添加测试以覆盖标准化和工具行为。
@ -35,17 +35,17 @@ x-i18n:
## 发现(当前差距)
- Gateway 中的 `CronPayloadSchema` 不包含 `signal` + `imessage`,而 TS 类型中包含它们。
- Control UI 的 CronStatus 期望 `jobCount`,但 Gateway 返回的是 `jobs`
- Gateway网关中的 `CronPayloadSchema` 不包含 `signal` + `imessage`,而 TS 类型中包含它们。
- Control UI 的 CronStatus 期望 `jobCount`,但 Gateway网关返回的是 `jobs`
- 智能体 cron 工具 schema 允许任意 `job` 对象,导致格式错误的输入。
- Gateway 严格验证 `cron.add` 且不进行标准化,因此包装过的载荷会失败。
- Gateway网关严格验证 `cron.add` 且不进行标准化,因此包装过的载荷会失败。
## 变更内容
- `cron.add``cron.update` 现在会标准化常见的包装结构并推断缺失的 `kind` 字段。
- 智能体 cron 工具 schema 与 Gateway schema 保持一致,减少了无效载荷。
- 提供商枚举已在 Gateway、CLI、UI 和 macOS 选择器之间对齐。
- Control UI 使用 Gateway `jobs` 计数字段显示状态。
- 智能体 cron 工具 schema 与 Gateway网关 schema 保持一致,减少了无效载荷。
- 提供商枚举已在 Gateway网关、CLI、UI 和 macOS 选择器之间对齐。
- Control UI 使用 Gateway网关`jobs` 计数字段显示状态。
## 当前行为
@ -57,7 +57,7 @@ x-i18n:
## 验证
- 监控 Gateway 日志,确认 `cron.add` INVALID_REQUEST 错误已减少。
- 监控 Gateway网关日志,确认 `cron.add` INVALID_REQUEST 错误已减少。
- 确认 Control UI 的 cron 状态在刷新后显示任务计数。
## 可选后续工作

View File

@ -3,7 +3,7 @@ last_updated: "2026-01-19"
owner: openclaw
status: 草稿
summary: 计划:添加 OpenResponses /v1/responses 端点并平稳废弃 Chat Completions
title: OpenResponses Gateway 计划
title: OpenResponses Gateway网关计划
x-i18n:
generated_at: "2026-02-01T20:25:20Z"
model: claude-opus-4-5
@ -13,11 +13,11 @@ x-i18n:
workflow: 14
---
# OpenResponses Gateway 集成计划
# OpenResponses Gateway网关集成计划
## 背景
OpenClaw Gateway 当前在 `/v1/chat/completions` 暴露了一个最小化的 OpenAI 兼容 Chat Completions 端点(参见 [OpenAI Chat Completions](/gateway/openai-http-api))。
OpenClaw Gateway网关当前在 `/v1/chat/completions` 暴露了一个最小化的 OpenAI 兼容 Chat Completions 端点(参见 [OpenAI Chat Completions](/gateway/openai-http-api))。
Open Responses 是一个基于 OpenAI Responses API 的开放推理标准。它专为智能体工作流设计使用基于项目的输入和语义化流式事件。OpenResponses 规范定义的是 `/v1/responses`,而非 `/v1/chat/completions`
@ -60,7 +60,7 @@ Open Responses 是一个基于 OpenAI Responses API 的开放推理标准。它
## 建议架构
- 添加 `src/gateway/open-responses.schema.ts`,仅包含 Zod schema不引入 Gateway 依赖)。
- 添加 `src/gateway/open-responses.schema.ts`,仅包含 Zod schema不引入 Gateway网关依赖)。
- 添加 `src/gateway/openresponses-http.ts`(或 `open-responses-http.ts`)用于 `/v1/responses`
- 保持 `src/gateway/openai-http.ts` 不变,作为旧版兼容适配器。
- 添加配置 `gateway.http.endpoints.responses.enabled`(默认 `false`)。
@ -89,7 +89,7 @@ Open Responses 是一个基于 OpenAI Responses API 的开放推理标准。它
- `CreateResponseBody`
- `ItemParam` + 消息内容部分联合类型
- `ResponseResource`
- Gateway 使用的流式事件结构
- Gateway网关使用的流式事件结构
- 将 schema 保存在单个隔离模块中,以避免漂移并支持未来的代码生成。
## 流式实现(第一阶段)

View File

@ -189,7 +189,7 @@ Hindsight 在此处的关键洞察:存储**叙事性的、自包含的事实**
### 为什么仍然拆分为库?
- 保持记忆逻辑可在无 Gateway/运行时的情况下测试
- 保持记忆逻辑可在无 Gateway网关/运行时的情况下测试
- 可在其他上下文中复用(本地脚本、未来的桌面应用等)
形态:

View File

@ -17,21 +17,21 @@ x-i18n:
OpenClaw 支持通过 OAuth 和 API 密钥对模型提供商进行认证。对于 Anthropic 账户,我们推荐使用 **API 密钥**。对于 Claude 订阅访问,请使用 `claude setup-token` 创建的长期有效令牌。
参见 [/concepts/oauth](/concepts/oauth) 了解完整的 OAuth 流程和存储布局。
参见 [/concepts/oauth](/concepts/oauth) 了解全部 OAuth 流程和存储布局。
## 推荐的 Anthropic 设置API 密钥)
如果你直接使用 Anthropic请使用 API 密钥。
1. 在 Anthropic 控制台中创建 API 密钥。
2. 将其放置在 **Gateway 主机**(运行 `openclaw gateway` 的机器)上。
2. 将其放置在 **Gateway网关主机**(运行 `openclaw gateway` 的机器)上。
```bash
export ANTHROPIC_API_KEY="..."
openclaw models status
```
3. 如果 Gateway 在 systemd/launchd 下运行,建议将密钥放在 `~/.openclaw/.env` 中,以便守护进程能够读取:
3. 如果 Gateway网关在 systemd/launchd 下运行,建议将密钥放在 `~/.openclaw/.env` 中,以便守护进程能够读取:
```bash
cat >> ~/.openclaw/.env <<'EOF'
@ -39,20 +39,20 @@ ANTHROPIC_API_KEY=...
EOF
```
然后重启守护进程(或重启 Gateway 进程)并重新检查:
然后重启守护进程(或重启 Gateway网关进程)并重新检查:
```bash
openclaw models status
openclaw doctor
```
如果你不想自行管理环境变量,手引导向导可以为守护进程存储 API 密钥:`openclaw onboard`。
如果你不想自行管理环境变量,手引导向导可以为守护进程存储 API 密钥:`openclaw onboard`。
参见[帮助](/help)了解环境变量继承的详细信息(`env.shellEnv`、`~/.openclaw/.env`、systemd/launchd
## Anthropicsetup-token订阅认证
对于 Anthropic推荐的方式是使用 **API 密钥**。如果你使用的是 Claude 订阅,也支持 setup-token 流程。在 **Gateway 主机**上运行:
对于 Anthropic推荐的方式是使用 **API 密钥**。如果你使用的是 Claude 订阅,也支持 setup-token 流程。在 **Gateway网关主机**上运行:
```bash
claude setup-token
@ -126,7 +126,7 @@ openclaw models auth order clear --provider anthropic
### "No credentials found"
如果 Anthropic 令牌配置缺失,请在 **Gateway 主机**上运行 `claude setup-token`,然后重新检查:
如果 Anthropic 令牌配置缺失,请在 **Gateway网关主机**上运行 `claude setup-token`,然后重新检查:
```bash
openclaw models status

View File

@ -38,7 +38,7 @@ OpenClaw 通过 `exec` 工具运行 shell 命令,并将长时间运行的任
## 子进程桥接
在 exec/process 工具之外启动长时间运行的子进程时(例如 CLI 重启或 Gateway 辅助进程),请挂载子进程桥接助手,以便终止信号能被正确转发,并在退出/出错时分离监听器。这可以避免在 systemd 上产生孤儿进程,并保持跨平台的关闭行为一致性。
在 exec/process 工具之外启动长时间运行的子进程时(例如 CLI 重启或 Gateway网关辅助进程),请挂载子进程桥接助手,以便终止信号能被正确转发,并在退出/出错时分离监听器。这可以避免在 systemd 上产生孤儿进程,并保持跨平台的关闭行为一致性。
环境变量覆盖:

View File

@ -2,7 +2,7 @@
read_when:
- 在 macOS/iOS 上调试 Bonjour 发现问题
- 更改 mDNS 服务类型、TXT 记录或发现相关的用户体验
summary: Bonjour/mDNS 发现 + 调试Gateway 信标、客户端及常见故障模式)
summary: Bonjour/mDNS 发现 + 调试Gateway网关信标、客户端及常见故障模式)
title: Bonjour 发现
x-i18n:
generated_at: "2026-02-01T20:25:34Z"
@ -15,21 +15,21 @@ x-i18n:
# Bonjour / mDNS 发现
OpenClaw 使用 BonjourmDNS / DNSSD作为**仅限局域网的便捷方式**来发现活跃的 GatewayWebSocket 端点)。这是尽力而为的机制,**不能**替代 SSH 或基于 Tailnet 的连接。
OpenClaw 使用 BonjourmDNS / DNSSD作为**仅限局域网的便捷方式**来发现活跃的 Gateway网关WebSocket 端点)。这是尽力而为的机制,**不能**替代 SSH 或基于 Tailnet 的连接。
## 通过 Tailscale 实现广域 Bonjour单播 DNSSD
如果节点和 Gateway 处于不同网络,组播 mDNS 无法跨越网络边界。您可以通过切换到基于 Tailscale 的**单播 DNSSD**"广域 Bonjour")来保持相同的发现体验。
如果节点和 Gateway网关处于不同网络,组播 mDNS 无法跨越网络边界。你可以通过切换到基于 Tailscale 的**单播 DNSSD**"广域 Bonjour")来保持相同的发现体验。
概要步骤:
1. 在 Gateway 主机上运行 DNS 服务器(可通过 Tailnet 访问)。
1. 在 Gateway网关主机上运行 DNS 服务器(可通过 Tailnet 访问)。
2. 在专用区域下为 `_openclaw-gw._tcp` 发布 DNSSD 记录(示例:`openclaw.internal.`)。
3. 配置 Tailscale **分割 DNS**,使选择的域名通过该 DNS 服务器为客户端(包括 iOS解析。
3. 配置 Tailscale **分割 DNS**,使选择的域名通过该 DNS 服务器为客户端(包括 iOS解析。
OpenClaw 支持任意发现域名;`openclaw.internal.` 仅为示例。iOS/Android 节点会同时浏览 `local.`配置的广域域名。
OpenClaw 支持任意发现域名;`openclaw.internal.` 仅为示例。iOS/Android 节点会同时浏览 `local.`配置的广域域名。
### Gateway 配置(推荐)
### Gateway网关配置(推荐)
```json5
{
@ -38,7 +38,7 @@ OpenClaw 支持任意发现域名;`openclaw.internal.` 仅为示例。iOS/Andr
}
```
### 一次性 DNS 服务器设置Gateway 主机)
### 一次性 DNS 服务器设置Gateway网关主机)
```bash
openclaw dns setup --apply
@ -46,8 +46,8 @@ openclaw dns setup --apply
此命令会安装 CoreDNS 并将其配置为:
- 仅在 Gateway 的 Tailscale 接口上监听 53 端口
- 从 `~/.openclaw/dns/<domain>.db` 提供选择的域名服务(示例:`openclaw.internal.`
- 仅在 Gateway网关的 Tailscale 接口上监听 53 端口
- 从 `~/.openclaw/dns/<domain>.db` 提供选择的域名服务(示例:`openclaw.internal.`
从 Tailnet 连接的机器上验证:
@ -60,36 +60,36 @@ dig @<TAILNET_IPV4> -p 53 _openclaw-gw._tcp.openclaw.internal PTR +short
在 Tailscale 管理控制台中:
- 添加指向 Gateway Tailnet IP 的名称服务器UDP/TCP 53
- 添加分割 DNS使的发现域名使用该名称服务器。
- 添加指向 Gateway网关 Tailnet IP 的名称服务器UDP/TCP 53
- 添加分割 DNS使的发现域名使用该名称服务器。
客户端接受 Tailnet DNS 后iOS 节点即可在的发现域名中浏览 `_openclaw-gw._tcp`,无需组播。
客户端接受 Tailnet DNS 后iOS 节点即可在的发现域名中浏览 `_openclaw-gw._tcp`,无需组播。
### Gateway 监听器安全(推荐)
### Gateway网关监听器安全(推荐)
Gateway WS 端口(默认 `18789`)默认绑定到回环地址。若需局域网/Tailnet 访问,请显式绑定并保持认证启用。
Gateway网关 WS 端口(默认 `18789`)默认绑定到 local loopback。若需局域网/Tailnet 访问,请显式绑定并保持认证启用。
对于仅限 Tailnet 的设置:
- 在 `~/.openclaw/openclaw.json` 中设置 `gateway.bind: "tailnet"`
- 重启 Gateway或重启 macOS 菜单栏应用)。
- 重启 Gateway网关(或重启 macOS 菜单栏应用)。
## 广播方
只有 Gateway 广播 `_openclaw-gw._tcp`
只有 Gateway网关广播 `_openclaw-gw._tcp`
## 服务类型
- `_openclaw-gw._tcp` — Gateway 传输信标(供 macOS/iOS/Android 节点使用)。
- `_openclaw-gw._tcp` — Gateway网关传输信标(供 macOS/iOS/Android 节点使用)。
## TXT 键(非机密提示)
Gateway 广播小型非机密提示以方便 UI 流程:
Gateway网关广播小型非机密提示以方便 UI 流程:
- `role=gateway`
- `displayName=<友好名称>`
- `lanHost=<主机名>.local`
- `gatewayPort=<端口>`Gateway WS + HTTP
- `gatewayPort=<端口>`Gateway网关 WS + HTTP
- `gatewayTls=1`(仅在启用 TLS 时)
- `gatewayTlsSha256=<sha256>`(仅在启用 TLS 且指纹可用时)
- `canvasPort=<端口>`(仅在启用 canvas 主机时;默认 `18793`
@ -113,9 +113,9 @@ Gateway 广播小型非机密提示以方便 UI 流程:
如果浏览正常但解析失败,通常是遇到了局域网策略或 mDNS 解析器问题。
## 在 Gateway 日志中调试
## 在 Gateway网关日志中调试
Gateway 会写入滚动日志文件(启动时输出为 `gateway log file: ...`)。查找 `bonjour:` 行,特别是:
Gateway网关会写入滚动日志文件(启动时输出为 `gateway log file: ...`)。查找 `bonjour:` 行,特别是:
- `bonjour: advertise failed ...`
- `bonjour: ... name conflict resolved` / `hostname conflict resolved`
@ -127,8 +127,8 @@ iOS 节点使用 `NWBrowser` 来发现 `_openclaw-gw._tcp`。
要获取日志:
- 设置 → Gateway → 高级 → **发现调试日志**
- 设置 → Gateway → 高级 → **发现日志** → 复现问题 → **复制**
- 设置 → Gateway网关 → 高级 → **发现调试日志**
- 设置 → Gateway网关 → 高级 → **发现日志** → 复现问题 → **复制**
日志包含浏览器状态转换和结果集变化。
@ -137,7 +137,7 @@ iOS 节点使用 `NWBrowser` 来发现 `_openclaw-gw._tcp`。
- **Bonjour 无法跨网络**:请使用 Tailnet 或 SSH。
- **组播被阻止**:某些 WiFi 网络会禁用 mDNS。
- **睡眠 / 接口变动**macOS 可能会临时丢失 mDNS 结果;请重试。
- **浏览正常但解析失败**:保持机器名称简单(避免使用表情符号或标点符号),然后重启 Gateway。服务实例名称来源于主机名因此过于复杂的名称可能会导致某些解析器混淆。
- **浏览正常但解析失败**:保持机器名称简单(避免使用表情符号或标点符号),然后重启 Gateway网关。服务实例名称来源于主机名,因此过于复杂的名称可能会导致某些解析器混淆。
## 转义的实例名称(`\032`
@ -149,7 +149,7 @@ Bonjour/DNSSD 经常将服务实例名称中的字节转义为十进制 `\DDD
## 禁用 / 配置
- `OPENCLAW_DISABLE_BONJOUR=1` 禁用广播(旧版:`OPENCLAW_DISABLE_BONJOUR`)。
- `~/.openclaw/openclaw.json` 中的 `gateway.bind` 控制 Gateway 绑定模式。
- `~/.openclaw/openclaw.json` 中的 `gateway.bind` 控制 Gateway网关绑定模式。
- `OPENCLAW_SSH_PORT` 覆盖 TXT 中广播的 SSH 端口(旧版:`OPENCLAW_SSH_PORT`)。
- `OPENCLAW_TAILNET_DNS` 在 TXT 中发布 MagicDNS 提示(旧版:`OPENCLAW_TAILNET_DNS`)。
- `OPENCLAW_CLI_PATH` 覆盖广播的 CLI 路径(旧版:`OPENCLAW_CLI_PATH`)。
@ -157,4 +157,4 @@ Bonjour/DNSSD 经常将服务实例名称中的字节转义为十进制 `\DDD
## 相关文档
- 发现策略和传输选择:[发现](/gateway/discovery)
- 节点配对 + 审批:[Gateway 配对](/gateway/pairing)
- 节点配对 + 审批:[Gateway网关配对](/gateway/pairing)

View File

@ -2,7 +2,7 @@
read_when:
- 构建或调试节点客户端iOS/Android/macOS 节点模式)
- 排查配对或桥接认证故障
- 审计 Gateway 暴露的节点接口
- 审计 Gateway网关暴露的节点接口
summary: 桥接协议旧版节点TCP JSONL、配对、作用域 RPC
title: 桥接协议
x-i18n:
@ -16,18 +16,18 @@ x-i18n:
# 桥接协议(旧版节点传输)
桥接协议是一种**旧版**节点传输方式TCP JSONL。新的节点客户端应改用统一的 Gateway WebSocket 协议。
桥接协议是一种**旧版**节点传输方式TCP JSONL。新的节点客户端应改用统一的 Gateway网关 WebSocket 协议。
如果你正在构建操作端或节点客户端,请使用 [Gateway 协议](/gateway/protocol)。
如果你正在构建操作端或节点客户端,请使用 [Gateway网关协议](/gateway/protocol)。
**注意:** 当前版本的 OpenClaw 不再附带 TCP 桥接监听器;本文档仅作历史参考保留。旧版 `bridge.*` 配置键已不再属于配置模式的一部分。
## 为什么有两种协议
- **安全边界**:桥接仅暴露一个小型允许列表,而非完整的 Gateway API 接口。
- **配对与节点身份**:节点准入由 Gateway 管理,并与每个节点的令牌绑定。
- **发现体验**:节点可以通过局域网上的 Bonjour 发现 Gateway或通过 tailnet 直接连接。
- **回环 WS**:完整的 WS 控制平面保持在本地,除非通过 SSH 隧道转发。
- **安全边界**:桥接仅暴露一个小型允许列表,而非完整的 Gateway网关 API 接口。
- **配对与节点身份**:节点准入由 Gateway网关管理,并与每个节点的令牌绑定。
- **发现体验**:节点可以通过局域网上的 Bonjour 发现 Gateway网关,或通过 tailnet 直接连接。
- **local loopback WS**:完整的 WS 控制平面保持在本地,除非通过 SSH 隧道转发。
## 传输方式
@ -40,20 +40,20 @@ x-i18n:
## 握手与配对
1. 客户端发送 `hello`,附带节点元数据和令牌(如果已配对)。
2. 如果未配对Gateway 回复 `error``NOT_PAIRED`/`UNAUTHORIZED`)。
2. 如果未配对Gateway网关回复 `error``NOT_PAIRED`/`UNAUTHORIZED`)。
3. 客户端发送 `pair-request`
4. Gateway 等待审批,然后发送 `pair-ok``hello-ok`
4. Gateway网关等待审批,然后发送 `pair-ok``hello-ok`
`hello-ok` 返回 `serverName`,可能包含 `canvasHostUrl`
## 帧类型
客户端 → Gateway
客户端 → Gateway网关
- `req` / `res`:作用域 Gateway RPC聊天、会话、配置、健康检查、语音唤醒、skills.bins
- `req` / `res`:作用域 Gateway网关 RPC聊天、会话、配置、健康检查、语音唤醒、skills.bins
- `event`:节点信号(语音转录、智能体请求、聊天订阅、执行生命周期)
Gateway → 客户端:
Gateway网关 → 客户端:
- `invoke` / `invoke-res`:节点命令(`canvas.*`、`camera.*`、`screen.record`、`location.get`、`sms.send`
- `event`:已订阅会话的聊天更新
@ -63,7 +63,7 @@ Gateway → 客户端:
## 执行生命周期事件
节点可以发出 `exec.finished``exec.denied` 事件以展示 system.run 活动。这些会映射为 Gateway 中的系统事件。(旧版节点可能仍会发出 `exec.started`。)
节点可以发出 `exec.finished``exec.denied` 事件以展示 system.run 活动。这些会映射为 Gateway网关中的系统事件。(旧版节点可能仍会发出 `exec.started`。)
有效载荷字段(除特别说明外均为可选):

View File

@ -39,7 +39,7 @@ Codex CLI 同样开箱即用:
openclaw agent --message "hi" --model codex-cli/gpt-5.2-codex
```
如果你的 Gateway 在 launchd/systemd 下运行且 PATH 较精简,只需添加命令路径:
如果你的 Gateway网关在 launchd/systemd 下运行且 PATH 较精简,只需添加命令路径:
```json5
{

View File

@ -393,7 +393,7 @@ x-i18n:
},
},
// Gateway + 网络
// Gateway网关 + 网络
gateway: {
mode: "local",
port: 18789,

View File

@ -30,11 +30,11 @@ OpenClaw 从 `~/.openclaw/openclaw.json` 读取可选的 **JSON5** 配置(支
## 严格配置验证
OpenClaw 只接受完全匹配 schema 的配置。
未知键、类型错误或无效值会导致 Gateway **拒绝启动**以确保安全。
未知键、类型错误或无效值会导致 Gateway网关 **拒绝启动**以确保安全。
验证失败时:
- Gateway 不会启动。
- Gateway网关不会启动。
- 只允许诊断命令(例如:`openclaw doctor`、`openclaw logs`、`openclaw health`、`openclaw status`、`openclaw service`、`openclaw help`)。
- 运行 `openclaw doctor` 查看具体问题。
- 运行 `openclaw doctor --fix`(或 `--yes`)应用迁移/修复。
@ -43,7 +43,7 @@ Doctor 不会写入任何更改,除非你明确选择了 `--fix`/`--yes`。
## Schema + UI 提示
Gateway 通过 `config.schema` 暴露配置的 JSON Schema 表示,供 UI 编辑器使用。
Gateway网关通过 `config.schema` 暴露配置的 JSON Schema 表示,供 UI 编辑器使用。
控制台 UI 根据此 schema 渲染表单,并提供 **Raw JSON** 编辑器作为应急手段。
渠道插件和扩展可以为其配置注册 schema + UI 提示,因此渠道设置
@ -53,8 +53,8 @@ Gateway 通过 `config.schema` 暴露配置的 JSON Schema 表示,供 UI 编
## 应用 + 重启RPC
使用 `config.apply` 在一步中验证 + 写入完整配置并重启 Gateway。
它会写入重启哨兵文件,并在 Gateway 恢复后 ping 最后活跃的会话。
使用 `config.apply` 在一步中验证 + 写入完整配置并重启 Gateway网关
它会写入重启哨兵文件,并在 Gateway网关恢复后 ping 最后活跃的会话。
警告:`config.apply` 会替换**整个配置**。如果你只想更改部分键,
请使用 `config.patch``openclaw config set`。请备份 `~/.openclaw/openclaw.json`
@ -88,7 +88,7 @@ openclaw gateway call config.apply --params '{
- `null` 删除键
- 数组替换
`config.apply` 类似,它会验证、写入配置、存储重启哨兵,并调度
Gateway 重启(当提供 `sessionKey` 时可选择唤醒)。
Gateway网关重启(当提供 `sessionKey` 时可选择唤醒)。
参数:
@ -294,7 +294,7 @@ OpenClaw 从父进程shell、launchd/systemd、CI 等)读取环境变量。
}
```
参见 [/environment](/environment) 了解完整的优先级和来源。
参见 [/environment](/environment) 了解全部优先级和来源。
### `env.shellEnv`(可选)
@ -406,7 +406,7 @@ OpenClaw 在以下位置存储**每个智能体的**认证配置文件OAuth +
### `agents.list[].identity`
用于默认值和用户体验的可选每智能体身份标识。由 macOS 手引导助手写入。
用于默认值和用户体验的可选每智能体身份标识。由 macOS 手引导助手写入。
如果设置了OpenClaw 会推导默认值(仅在你未明确设置时):
@ -484,7 +484,7 @@ OpenClaw 在以下位置存储**每个智能体的**认证配置文件OAuth +
### `channels.whatsapp.dmPolicy`
控制 WhatsApp 私聊(DM)的处理方式:
控制 WhatsApp 私聊(私信)的处理方式:
- `"pairing"`(默认):未知发送者会收到配对码;所有者必须批准
- `"allowlist"`:仅允许 `channels.whatsapp.allowFrom`(或已配对的允许存储)中的发送者
@ -536,7 +536,7 @@ OpenClaw 在以下位置存储**每个智能体的**认证配置文件OAuth +
### `channels.whatsapp.accounts`(多账号)
在一个 Gateway 中运行多个 WhatsApp 账号:
在一个 Gateway网关中运行多个 WhatsApp 账号:
```json5
{
@ -734,7 +734,7 @@ OpenClaw 在以下位置存储**每个智能体的**认证配置文件OAuth +
### 多智能体路由(`agents.list` + `bindings`
在一个 Gateway 中运行多个隔离的智能体(独立的工作区、`agentDir`、会话)。
在一个 Gateway网关中运行多个隔离的智能体(独立的工作区、`agentDir`、会话)。
入站消息通过绑定路由到智能体。
- `agents.list[]`:每智能体覆盖。
@ -783,7 +783,7 @@ OpenClaw 在以下位置存储**每个智能体的**认证配置文件OAuth +
#### 每智能体访问配置(多智能体)
每个智能体可以携带自己的沙盒 + 工具策略。用于在一个 Gateway 中混合访问级别:
每个智能体可以携带自己的沙盒 + 工具策略。用于在一个 Gateway网关中混合访问级别:
- **完全访问**(个人智能体)
- **只读**工具 + 工作区
@ -1011,7 +1011,7 @@ OpenClaw 在以下位置存储**每个智能体的**认证配置文件OAuth +
### `web`WhatsApp Web 渠道运行时)
WhatsApp 通过 Gateway 的 Web 渠道Baileys Web运行。当存在已链接的会话时自动启动。
WhatsApp 通过 Gateway网关的 Web 渠道Baileys Web运行。当存在已链接的会话时自动启动。
设置 `web.enabled: false` 使其默认关闭。
```json5
@ -1099,7 +1099,7 @@ OpenClaw 仅在存在 `channels.telegram` 配置段时启动 Telegram。机器
草稿流式传输说明:
- 使用 Telegram `sendMessageDraft`(草稿气泡,不是真正的消息)。
- 需要**私聊话题**DM 中的 message_thread_id机器人已启用话题
- 需要**私聊话题**私信 中的 message_thread_id机器人已启用话题
- `/reasoning stream` 将推理过程流式传输到草稿中,然后发送最终答案。
重试策略默认值和行为记录在[重试策略](/concepts/retry)中。
@ -1611,7 +1611,7 @@ WhatsApp 入站前缀通过 `channels.whatsapp.messagePrefix` 配置(已弃用
### `talk`
Talk 模式macOS/iOS/Android的默认值。语音 ID 在未设置时回退到 `ELEVENLABS_VOICE_ID``SAG_VOICE_ID`
`apiKey` 在未设置时回退到 `ELEVENLABS_API_KEY`(或 Gateway 的 shell 配置文件)。
`apiKey` 在未设置时回退到 `ELEVENLABS_API_KEY`(或 Gateway网关的 shell 配置文件)。
`voiceAliases` 允许 Talk 指令使用友好名称(例如 `"voice":"Clawd"`)。
```json5
@ -2721,7 +2721,7 @@ Z.AI 模型通过内置的 `zai` 提供商提供。在环境中设置 `ZAI_API_K
- `per-account-channel-peer`:按账号 + 渠道 + 发送者隔离私聊(推荐用于多账号收件箱)。
- `identityLinks`:将规范 id 映射到提供商前缀的对等方,以便在使用 `per-peer`、`per-channel-peer` 或 `per-account-channel-peer` 时同一人跨渠道共享私聊会话。
- 示例:`alice: ["telegram:123456789", "discord:987654321012345678"]`。
- `reset`:主重置策略。默认为 Gateway 主机上本地时间凌晨 4:00 每日重置。
- `reset`:主重置策略。默认为 Gateway网关主机上本地时间凌晨 4:00 每日重置。
- `mode``daily` 或 `idle`(当存在 `reset` 时默认:`daily`)。
- `atHour`本地小时0-23作为每日重置边界。
- `idleMinutes`:滑动空闲窗口(分钟)。当 daily + idle 都配置时,先到期的获胜。
@ -2732,23 +2732,23 @@ Z.AI 模型通过内置的 `zai` 提供商提供。在环境中设置 `ZAI_API_K
- `sendPolicy.default`:无规则匹配时的 `allow``deny` 回退。
- `sendPolicy.rules[]`:按 `channel`、`chatType``direct|group|room`)或 `keyPrefix`(例如 `cron:`)匹配。第一个 deny 获胜;否则 allow。
### `skills`技能配置)
### `skills`Skills配置)
控制内置白名单、安装偏好、额外技能文件夹和每技能覆盖。适用于**内置**技能和 `~/.openclaw/skills`(工作区技能在名称冲突时仍然优先)。
控制内置白名单、安装偏好、额外 Skills 文件夹和每 Skills 覆盖。适用于**内置**Skills 和 `~/.openclaw/skills`(工作区 Skills 在名称冲突时仍然优先)。
字段:
- `allowBundled`:可选的**仅内置**技能白名单。如果设置,仅那些内置技能符合条件(管理/工作区技能不受影响)。
- `load.extraDirs`:额外要扫描的技能目录(最低优先级)。
- `allowBundled`:可选的**仅内置**Skills 白名单。如果设置,仅那些内置 Skills 符合条件(管理/工作区 Skills 不受影响)。
- `load.extraDirs`:额外要扫描的 Skills 目录(最低优先级)。
- `install.preferBrew`:可用时优先使用 brew 安装程序默认true
- `install.nodeManager`node 安装偏好(`npm` | `pnpm` | `yarn`默认npm
- `entries.<skillKey>`:每技能配置覆盖。
- `entries.<skillKey>`:每 Skills配置覆盖。
技能字段:
Skills 字段:
- `enabled`:设为 `false` 禁用技能,即使它是内置/已安装的。
- `enabled`:设为 `false` 禁用 Skills,即使它是内置/已安装的。
- `env`:为智能体运行注入的环境变量(仅在尚未设置时)。
- `apiKey`:对于声明了主环境变量的技能的可选便利字段(例如 `nano-banana-pro``GEMINI_API_KEY`)。
- `apiKey`:对于声明了主环境变量的 Skills 的可选便利字段(例如 `nano-banana-pro``GEMINI_API_KEY`)。
示例:
@ -2779,8 +2779,8 @@ Z.AI 模型通过内置的 `zai` 提供商提供。在环境中设置 `ZAI_API_K
### `plugins`(扩展)
控制插件发现、允许/拒绝和每插件配置。插件从 `~/.openclaw/extensions`、`<workspace>/.openclaw/extensions` 以及任何 `plugins.load.paths` 条目加载。**配置更改需要重启 Gateway。**
参见 [/plugin](/plugin) 了解完整用法。
控制插件发现、允许/拒绝和每插件配置。插件从 `~/.openclaw/extensions`、`<workspace>/.openclaw/extensions` 以及任何 `plugins.load.paths` 条目加载。**配置更改需要重启 Gateway网关。**
参见 [/plugin](/plugin) 了解全部用法。
字段:
@ -2816,7 +2816,7 @@ Z.AI 模型通过内置的 `zai` 提供商提供。在环境中设置 `ZAI_API_K
### `browser`OpenClaw 管理的浏览器)
OpenClaw 可以为 OpenClaw 启动一个**专用、隔离的** Chrome/Brave/Edge/Chromium 实例并暴露一个小型回环控制服务。
OpenClaw 可以为 OpenClaw 启动一个**专用、隔离的** Chrome/Brave/Edge/Chromium 实例并暴露一个小型 local loopback 控制服务。
配置文件可以通过 `profiles.<name>.cdpUrl` 指向**远程** Chromium 浏览器。远程配置文件为仅附加模式start/stop/reset 被禁用)。
`browser.cdpUrl` 保留用于旧版单配置文件配置,以及作为仅设置 `cdpPort` 的配置文件的基础 scheme/host。
@ -2825,10 +2825,10 @@ OpenClaw 可以为 OpenClaw 启动一个**专用、隔离的** Chrome/Brave/Edge
- enabled`true`
- evaluateEnabled`true`(设为 `false` 禁用 `act:evaluate``wait --fn`
- 控制服务:仅回环(端口从 `gateway.port` 派生,默认 `18791`
- 控制服务:仅 local loopback(端口从 `gateway.port` 派生,默认 `18791`
- CDP URL`http://127.0.0.1:18792`(控制服务 + 1旧版单配置文件
- 配置文件颜色:`#FF4500`(龙虾橙)
- 注意:控制服务器由运行中的 GatewayOpenClaw.app 菜单栏或 `openclaw gateway`)启动。
- 注意:控制服务器由运行中的 Gateway网关OpenClaw.app 菜单栏或 `openclaw gateway`)启动。
- 自动检测顺序:如果为 Chromium 内核则使用默认浏览器;否则 Chrome → Brave → Edge → Chromium → Chrome Canary。
```json5
@ -2873,9 +2873,9 @@ OpenClaw 可以为 OpenClaw 启动一个**专用、隔离的** Chrome/Brave/Edge
}
```
### `gateway`Gateway 服务器模式 + 绑定)
### `gateway`Gateway网关服务器模式 + 绑定)
使用 `gateway.mode` 明确声明此机器是否应运行 Gateway。
使用 `gateway.mode` 明确声明此机器是否应运行 Gateway网关
默认值:
@ -2913,7 +2913,7 @@ OpenClaw 可以为 OpenClaw 启动一个**专用、隔离的** Chrome/Brave/Edge
信任的代理:
- `gateway.trustedProxies`:在 Gateway 前面终止 TLS 的反向代理 IP 列表。
- `gateway.trustedProxies`:在 Gateway网关前面终止 TLS 的反向代理 IP 列表。
- 当连接来自这些 IP 之一时OpenClaw 使用 `x-forwarded-for`(或 `x-real-ip`)来确定客户端 IP用于本地配对检查和 HTTP 认证/本地检查。
- 仅列出你完全控制的代理,并确保它们**覆盖**传入的 `x-forwarded-for`
@ -2923,8 +2923,8 @@ OpenClaw 可以为 OpenClaw 启动一个**专用、隔离的** Chrome/Brave/Edge
- `gateway.port` 控制用于 WebSocket + HTTP控制台 UI、hooks、A2UI的单一多路复用端口。
- OpenAI Chat Completions 端点:**默认禁用**;通过 `gateway.http.endpoints.chatCompletions.enabled: true` 启用。
- 优先级:`--port` > `OPENCLAW_GATEWAY_PORT` > `gateway.port` > 默认 `18789`
- 默认需要 Gateway 认证token/密码或 Tailscale Serve 身份)。非回环绑定需要共享 token/密码。
- 上手引导向导默认生成 gateway token即使在回环上)。
- 默认需要 Gateway网关认证token/密码或 Tailscale Serve 身份)。非 local loopback 绑定需要共享 token/密码。
- 新手引导向导默认生成 gateway token即使在 local loopback 上)。
- `gateway.remote.token` **仅**用于远程 CLI 调用;它不启用本地 gateway 认证。`gateway.token` 被忽略。
认证和 Tailscale
@ -2934,18 +2934,18 @@ OpenClaw 可以为 OpenClaw 启动一个**专用、隔离的** Chrome/Brave/Edge
- 当设置了 `gateway.auth.mode` 时,仅接受该方法(加上可选的 Tailscale 头部)。
- `gateway.auth.password` 可在此设置,或通过 `OPENCLAW_GATEWAY_PASSWORD`(推荐)。
- `gateway.auth.allowTailscale` 允许 Tailscale Serve 身份头部
`tailscale-user-login`)在请求通过回环到达且带有 `x-forwarded-for`
`tailscale-user-login`)在请求通过 local loopback 到达且带有 `x-forwarded-for`
`x-forwarded-proto``x-forwarded-host` 时满足认证。OpenClaw 在接受之前
通过 `tailscale whois` 解析 `x-forwarded-for` 地址来验证身份。为 `true` 时,
Serve 请求不需要 token/密码;设为 `false` 要求显式凭据。当
`tailscale.mode = "serve"` 且认证模式不是 `password` 时默认为 `true`
- `gateway.tailscale.mode: "serve"` 使用 Tailscale Serve仅 tailnet回环绑定)。
- `gateway.tailscale.mode: "serve"` 使用 Tailscale Serve仅 tailnetlocal loopback 绑定)。
- `gateway.tailscale.mode: "funnel"` 公开暴露仪表板;需要认证。
- `gateway.tailscale.resetOnExit` 在关闭时重置 Serve/Funnel 配置。
远程客户端默认值CLI
- `gateway.remote.url` 设置 `gateway.mode = "remote"` 时 CLI 调用的默认 Gateway WebSocket URL。
- `gateway.remote.url` 设置 `gateway.mode = "remote"` 时 CLI 调用的默认 Gateway网关 WebSocket URL。
- `gateway.remote.transport` 选择 macOS 远程传输(`ssh` 默认,`direct` 用于 ws/wss。使用 `direct` 时,`gateway.remote.url` 必须为 `ws://``wss://`。`ws://host` 默认端口 `18789`
- `gateway.remote.token` 提供远程调用的 token不需要认证时留空
- `gateway.remote.password` 提供远程调用的密码(不需要认证时留空)。
@ -2986,13 +2986,13 @@ macOS 应用行为:
### `gateway.reload`(配置热重载)
Gateway 监视 `~/.openclaw/openclaw.json`(或 `OPENCLAW_CONFIG_PATH`)并自动应用更改。
Gateway网关监视 `~/.openclaw/openclaw.json`(或 `OPENCLAW_CONFIG_PATH`)并自动应用更改。
模式:
- `hybrid`(默认):安全更改热应用;关键更改重启 Gateway。
- `hybrid`(默认):安全更改热应用;关键更改重启 Gateway网关
- `hot`:仅应用热安全更改;需要重启时记录日志。
- `restart`:任何配置更改都重启 Gateway。
- `restart`:任何配置更改都重启 Gateway网关
- `off`:禁用热重载。
```json5
@ -3012,7 +3012,7 @@ Gateway 监视 `~/.openclaw/openclaw.json`(或 `OPENCLAW_CONFIG_PATH`)并自
- `~/.openclaw/openclaw.json`(或 `OPENCLAW_CONFIG_PATH`
热应用(无需完全重启 Gateway
热应用(无需完全重启 Gateway网关
- `hooks`webhook 认证/路径/映射)+ `hooks.gmail`Gmail 监视器重启)
- `browser`(浏览器控制服务器重启)
@ -3022,7 +3022,7 @@ Gateway 监视 `~/.openclaw/openclaw.json`(或 `OPENCLAW_CONFIG_PATH`)并自
- `telegram`、`discord`、`signal`、`imessage`(渠道重启)
- `agent`、`models`、`routing`、`messages`、`session`、`whatsapp`、`logging`、`skills`、`ui`、`talk`、`identity`、`wizard`(动态读取)
需要完全重启 Gateway
需要完全重启 Gateway网关
- `gateway`(端口/绑定/认证/控制台 UI/tailscale
- `bridge`(旧版)
@ -3033,7 +3033,7 @@ Gateway 监视 `~/.openclaw/openclaw.json`(或 `OPENCLAW_CONFIG_PATH`)并自
### 多实例隔离
要在一台主机上运行多个 Gateway用于冗余或救援机器人请隔离每个实例的状态 + 配置并使用唯一端口:
要在一台主机上运行多个 Gateway网关(用于冗余或救援机器人),请隔离每个实例的状态 + 配置并使用唯一端口:
- `OPENCLAW_CONFIG_PATH`(每实例配置)
- `OPENCLAW_STATE_DIR`(会话/凭据)
@ -3045,8 +3045,8 @@ Gateway 监视 `~/.openclaw/openclaw.json`(或 `OPENCLAW_CONFIG_PATH`)并自
- `openclaw --dev …` → 使用 `~/.openclaw-dev` + 端口从基础 `19001` 偏移
- `openclaw --profile <name> …` → 使用 `~/.openclaw-<name>`(端口通过配置/环境变量/标志)
参见 [Gateway 运维手册](/gateway) 了解派生的端口映射gateway/browser/canvas
参见[多 Gateway](/gateway/multiple-gateways) 了解浏览器/CDP 端口隔离细节。
参见 [Gateway网关运维手册](/gateway) 了解派生的端口映射gateway/browser/canvas
参见[多 Gateway网关](/gateway/multiple-gateways) 了解浏览器/CDP 端口隔离细节。
示例:
@ -3056,9 +3056,9 @@ OPENCLAW_STATE_DIR=~/.openclaw-a \
openclaw gateway --port 19001
```
### `hooks`Gateway webhook
### `hooks`Gateway网关 webhook
在 Gateway HTTP 服务器上启用简单的 HTTP webhook 端点。
在 Gateway网关 HTTP 服务器上启用简单的 HTTP webhook 端点。
默认值:
@ -3151,12 +3151,12 @@ Gmail hook 的模型覆盖:
- 启动时,如果配置的模型不在模型目录或白名单中,会发出警告。
- `hooks.gmail.thinking` 设置 Gmail hook 的默认思考级别,被每 hook 的 `thinking` 覆盖。
Gateway 自动启动:
Gateway网关自动启动:
- 如果 `hooks.enabled=true``hooks.gmail.account` 已设置Gateway 在启动时
- 如果 `hooks.enabled=true``hooks.gmail.account` 已设置Gateway网关在启动时
启动 `gog gmail watch serve` 并自动续期监视。
- 设置 `OPENCLAW_SKIP_GMAIL_WATCHER=1` 禁用自动启动(用于手动运行)。
- 避免在 Gateway 旁边单独运行 `gog gmail watch serve`;它会
- 避免在 Gateway网关旁边单独运行 `gog gmail watch serve`;它会
`listen tcp 127.0.0.1:8788: bind: address already in use` 而失败。
注意:当 `tailscale.mode` 开启时OpenClaw 将 `serve.path` 默认为 `/`,以便
@ -3166,11 +3166,11 @@ Tailscale 可以正确代理 `/gmail-pubsub`(它会去除设置的路径前缀
### `canvasHost`LAN/tailnet Canvas 文件服务器 + 实时重载)
Gateway 通过 HTTP 提供 HTML/CSS/JS 目录服务,以便 iOS/Android 节点可以简单地 `canvas.navigate` 到它。
Gateway网关通过 HTTP 提供 HTML/CSS/JS 目录服务,以便 iOS/Android 节点可以简单地 `canvas.navigate` 到它。
默认根目录:`~/.openclaw/workspace/canvas`
默认端口:`18793`(选择此端口以避免 OpenClaw 浏览器 CDP 端口 `18792`
服务器监听 **Gateway 绑定主机**LAN 或 Tailnet以便节点可以访问。
服务器监听 **Gateway网关绑定主机**LAN 或 Tailnet以便节点可以访问。
服务器:
@ -3195,7 +3195,7 @@ Gateway 通过 HTTP 提供 HTML/CSS/JS 目录服务,以便 iOS/Android 节点
}
```
`canvasHost.*` 的更改需要重启 Gateway配置重载会触发重启
`canvasHost.*` 的更改需要重启 Gateway网关(配置重载会触发重启)。
禁用方式:
@ -3205,11 +3205,11 @@ Gateway 通过 HTTP 提供 HTML/CSS/JS 目录服务,以便 iOS/Android 节点
### `bridge`(旧版 TCP 桥接,已移除)
当前版本不再包含 TCP 桥接监听器;`bridge.*` 配置键会被忽略。
节点通过 Gateway WebSocket 连接。此部分仅保留供历史参考。
节点通过 Gateway网关 WebSocket 连接。此部分仅保留供历史参考。
旧版行为:
- Gateway 可以为节点iOS/Android暴露简单的 TCP 桥接,通常在端口 `18790`
- Gateway网关可以为节点iOS/Android暴露简单的 TCP 桥接,通常在端口 `18790`
默认值:
@ -3231,7 +3231,7 @@ TLS
- `bridge.tls.certPath` / `bridge.tls.keyPath`:桥接证书 + 私钥的 PEM 路径。
- `bridge.tls.caPath`:可选的 PEM CA 捆绑包(自定义根证书或未来的 mTLS
启用 TLS 后Gateway 在发现 TXT 记录中通告 `bridgeTls=1``bridgeTlsSha256`,以便节点可以固定证书。如果尚未存储指纹,手动连接使用首次信任。
启用 TLS 后Gateway网关在发现 TXT 记录中通告 `bridgeTls=1``bridgeTlsSha256`,以便节点可以固定证书。如果尚未存储指纹,手动连接使用首次信任。
自动生成的证书需要 PATH 中有 `openssl`;如果生成失败,桥接不会启动。
```json5
@ -3267,14 +3267,14 @@ TLS
### `discovery.wideArea`(广域 Bonjour / 单播 DNSSD
启用后Gateway `~/.openclaw/dns/` 下使用配置的发现域(示例:`openclaw.internal.`)为 `_openclaw-gw._tcp` 写入单播 DNS-SD 区域。
启用后Gateway网关`~/.openclaw/dns/` 下使用配置的发现域(示例:`openclaw.internal.`)为 `_openclaw-gw._tcp` 写入单播 DNS-SD 区域。
要使 iOS/Android 跨网络发现(跨地域访问),请配合以下使用:
- 在 Gateway 主机上运行 DNS 服务器,为你选择的域名提供服务(推荐 CoreDNS
- Tailscale **split DNS**,使客户端通过 Gateway DNS 服务器解析该域名
- 在 Gateway网关主机上运行 DNS 服务器,为你选择的域名提供服务(推荐 CoreDNS
- Tailscale **split DNS**,使客户端通过 Gateway网关 DNS 服务器解析该域名
一次性设置助手Gateway 主机):
一次性设置助手Gateway网关主机):
```bash
openclaw dns setup --apply
@ -3313,9 +3313,9 @@ openclaw dns setup --apply
| `{{SenderE164}}` | 发送者电话号码(尽力而为) |
| `{{Provider}}` | 提供商提示whatsapp | telegram | discord | googlechat | slack | signal | imessage | msteams | webchat | …) |
## CronGateway 调度器)
## CronGateway网关调度器)
Cron 是 Gateway 自有的唤醒和定时任务调度器。参见 [Cron 任务](/automation/cron-jobs) 了解功能概述和 CLI 示例。
Cron 是 Gateway网关自有的唤醒和定时任务调度器。参见 [Cron 任务](/automation/cron-jobs) 了解功能概述和 CLI 示例。
```json5
{

View File

@ -3,7 +3,7 @@ read_when:
- 实现或更改 Bonjour 发现/广播功能
- 调整远程连接模式(直连 vs SSH
- 为远程节点设计节点发现 + 配对方案
summary: 节点发现与传输Bonjour、Tailscale、SSH用于查找 Gateway
summary: 节点发现与传输Bonjour、Tailscale、SSH用于查找 Gateway网关
title: 发现与传输
x-i18n:
generated_at: "2026-02-01T20:25:57Z"
@ -18,36 +18,36 @@ x-i18n:
OpenClaw 有两个表面上看起来相似但实际上不同的问题:
1. **操作者远程控制**macOS 菜单栏应用控制运行在其他位置的 Gateway。
2. **节点配对**iOS/Android以及未来的节点找到 Gateway 并安全配对。
1. **操作者远程控制**macOS 菜单栏应用控制运行在其他位置的 Gateway网关
2. **节点配对**iOS/Android以及未来的节点找到 Gateway网关并安全配对。
设计目标是将所有网络发现/广播保留在 **Node Gateway**`openclaw gateway`让客户端Mac 应用、iOS作为消费者。
设计目标是将所有网络发现/广播保留在 **Node Gateway网关**`openclaw gateway`让客户端Mac 应用、iOS作为消费者。
## 术语
- **Gateway**:一个长期运行的 Gateway 进程,拥有状态(会话、配对、节点注册表)并运行渠道。大多数配置每台主机使用一个;也可以进行隔离的多 Gateway 设置。
- **Gateway WS控制平面**:默认位于 `127.0.0.1:18789` 的 WebSocket 端点;可通过 `gateway.bind` 绑定到局域网/Tailnet。
- **直连 WS 传输**:面向局域网/Tailnet 的 Gateway WS 端点(无 SSH
- **Gateway网关**:一个长期运行的 Gateway网关进程,拥有状态(会话、配对、节点注册表)并运行渠道。大多数配置每台主机使用一个;也可以进行隔离的多 Gateway网关设置。
- **Gateway网关 WS控制平面**:默认位于 `127.0.0.1:18789` 的 WebSocket 端点;可通过 `gateway.bind` 绑定到局域网/Tailnet。
- **直连 WS 传输**:面向局域网/Tailnet 的 Gateway网关 WS 端点(无 SSH
- **SSH 传输(回退)**:通过 SSH 转发 `127.0.0.1:18789` 实现远程控制。
- **旧版 TCP 桥接(已弃用/移除)**:旧的节点传输方式(参见 [桥接协议](/gateway/bridge-protocol));不再用于发现广播。
协议详情:
- [Gateway 协议](/gateway/protocol)
- [Gateway网关协议](/gateway/protocol)
- [桥接协议(旧版)](/gateway/bridge-protocol)
## 为什么同时保留"直连"和 SSH
- **直连 WS** 在同一网络和 Tailnet 内提供最佳用户体验:
- 通过 Bonjour 在局域网上自动发现
- 配对令牌 + ACL 由 Gateway 管理
- 配对令牌 + ACL 由 Gateway网关管理
- 不需要 shell 访问;协议接口可以保持精简且可审计
- **SSH** 仍然是通用的回退方案:
- 在任何有 SSH 访问的地方都可以工作(甚至跨不相关的网络)
- 不受组播/mDNS 问题影响
- 除 SSH 外不需要新的入站端口
## 发现输入(客户端如何获知 Gateway 位置)
## 发现输入(客户端如何获知 Gateway网关位置)
### 1) Bonjour / mDNS仅限局域网
@ -55,20 +55,20 @@ Bonjour 是尽力而为的机制,无法跨网络。它仅用于"同一局域
目标方向:
- **Gateway** 通过 Bonjour 广播其 WS 端点。
- 客户端浏览并显示"选择 Gateway"列表,然后存储所选端点。
- **Gateway网关** 通过 Bonjour 广播其 WS 端点。
- 客户端浏览并显示"选择 Gateway网关"列表,然后存储所选端点。
故障排除和信标详情:[Bonjour](/gateway/bonjour)。
#### 服务信标详情
- 服务类型:
- `_openclaw-gw._tcp`Gateway 传输信标)
- `_openclaw-gw._tcp`Gateway网关传输信标)
- TXT 键(非机密):
- `role=gateway`
- `lanHost=<主机名>.local`
- `sshPort=22`(或实际广播的端口)
- `gatewayPort=18789`Gateway WS + HTTP
- `gatewayPort=18789`Gateway网关 WS + HTTP
- `gatewayTls=1`(仅在启用 TLS 时)
- `gatewayTlsSha256=<sha256>`(仅在启用 TLS 且指纹可用时)
- `canvasPort=18793`(默认 canvas 主机端口;服务于 `/__openclaw__/canvas/`
@ -78,7 +78,7 @@ Bonjour 是尽力而为的机制,无法跨网络。它仅用于"同一局域
禁用/覆盖:
- `OPENCLAW_DISABLE_BONJOUR=1` 禁用广播。
- `~/.openclaw/openclaw.json` 中的 `gateway.bind` 控制 Gateway 绑定模式。
- `~/.openclaw/openclaw.json` 中的 `gateway.bind` 控制 Gateway网关绑定模式。
- `OPENCLAW_SSH_PORT` 覆盖 TXT 中广播的 SSH 端口(默认为 22
- `OPENCLAW_TAILNET_DNS` 发布 `tailnetDns` 提示MagicDNS
- `OPENCLAW_CLI_PATH` 覆盖广播的 CLI 路径。
@ -89,11 +89,11 @@ Bonjour 是尽力而为的机制,无法跨网络。它仅用于"同一局域
- Tailscale MagicDNS 名称(首选)或稳定的 Tailnet IP。
如果 Gateway 能检测到自己运行在 Tailscale 下,它会将 `tailnetDns` 作为可选提示发布给客户端(包括广域信标)。
如果 Gateway网关能检测到自己运行在 Tailscale 下,它会将 `tailnetDns` 作为可选提示发布给客户端(包括广域信标)。
### 3) 手动 / SSH 目标
当没有直接路由(或直连被禁用)时,客户端始终可以通过 SSH 转发回环 Gateway 端口进行连接。
当没有直接路由(或直连被禁用)时,客户端始终可以通过 SSH 转发 local loopback Gateway网关端口进行连接。
参见 [远程访问](/gateway/remote)。
@ -102,22 +102,22 @@ Bonjour 是尽力而为的机制,无法跨网络。它仅用于"同一局域
推荐的客户端行为:
1. 如果已配置并可达已配对的直连端点,则使用它。
2. 否则,如果 Bonjour 在局域网上发现了 Gateway提供一键"使用此 Gateway"选项并将其保存为直连端点。
2. 否则,如果 Bonjour 在局域网上发现了 Gateway网关,提供一键"使用此 Gateway网关"选项并将其保存为直连端点。
3. 否则,如果配置了 Tailnet DNS/IP尝试直连。
4. 否则,回退到 SSH。
## 配对 + 认证(直连传输)
Gateway 是节点/客户端准入的权威来源。
Gateway网关是节点/客户端准入的权威来源。
- 配对请求在 Gateway 中创建/批准/拒绝(参见 [Gateway 配对](/gateway/pairing))。
- Gateway 强制执行:
- 配对请求在 Gateway网关中创建/批准/拒绝(参见 [Gateway网关配对](/gateway/pairing))。
- Gateway网关强制执行:
- 认证(令牌 / 密钥对)
- 权限范围/ACLGateway 不是对所有方法的原始代理)
- 权限范围/ACLGateway网关不是对所有方法的原始代理)
- 速率限制
## 各组件职责
- **Gateway**:广播发现信标,管理配对决策,并托管 WS 端点。
- **macOS 应用**:帮助您选择 Gateway,显示配对提示,仅将 SSH 作为回退方案。
- **iOS/Android 节点**:将 Bonjour 浏览作为便捷方式,连接到已配对的 Gateway WS。
- **Gateway网关**:广播发现信标,管理配对决策,并托管 WS 端点。
- **macOS 应用**:帮助你选择 Gateway网关,显示配对提示,仅将 SSH 作为回退方案。
- **iOS/Android 节点**:将 Bonjour 浏览作为便捷方式,连接到已配对的 Gateway网关 WS。

View File

@ -54,7 +54,7 @@ openclaw doctor --non-interactive
openclaw doctor --deep
```
扫描系统服务以查找额外的 Gateway 安装launchd/systemd/schtasks
扫描系统服务以查找额外的 Gateway网关安装launchd/systemd/schtasks
如果你想在写入前查看更改,请先打开配置文件:
@ -67,7 +67,7 @@ cat ~/.openclaw/openclaw.json
- 可选的 git 安装预检更新(仅交互模式)。
- UI 协议新鲜度检查(当协议 schema 更新时重建控制 UI
- 健康检查 + 重启提示。
- 技能状态摘要(可用/缺失/受阻)。
- Skills 状态摘要(可用/缺失/受阻)。
- 遗留值的配置规范化。
- OpenCode Zen 提供商覆盖警告(`models.providers.opencode`)。
- 遗留磁盘状态迁移(会话/智能体目录/WhatsApp 认证)。
@ -76,14 +76,14 @@ cat ~/.openclaw/openclaw.json
- 模型认证健康:检查 OAuth 过期、可刷新即将过期的令牌、报告认证配置的冷却/禁用状态。
- 额外工作区目录检测(`~/openclaw`)。
- 启用沙箱时的沙箱镜像修复。
- 遗留服务迁移和额外 Gateway 检测。
- Gateway 运行时检查(服务已安装但未运行;缓存的 launchd 标签)。
- 渠道状态警告(从运行中的 Gateway 探测)。
- 遗留服务迁移和额外 Gateway网关检测。
- Gateway网关运行时检查(服务已安装但未运行;缓存的 launchd 标签)。
- 渠道状态警告(从运行中的 Gateway网关探测)。
- Supervisor 配置审计launchd/systemd/schtasks及可选修复。
- Gateway 运行时最佳实践检查Node vs Bun、版本管理器路径
- Gateway 端口冲突诊断(默认 `18789`)。
- 开放 DM 策略的安全警告。
- 未设置 `gateway.auth.token` 时的 Gateway 认证警告(本地模式;提供令牌生成)。
- Gateway网关运行时最佳实践检查Node vs Bun、版本管理器路径
- Gateway网关端口冲突诊断(默认 `18789`)。
- 开放 私信 策略的安全警告。
- 未设置 `gateway.auth.token` 时的 Gateway网关认证警告(本地模式;提供令牌生成)。
- Linux 上的 systemd linger 检查。
- 源码安装检查pnpm workspace 不匹配、缺失 UI 资源、缺失 tsx 二进制文件)。
- 写入更新后的配置 + 向导元数据。
@ -108,7 +108,7 @@ Doctor 将:
- 显示它应用的迁移。
- 使用更新后的 schema 重写 `~/.openclaw/openclaw.json`
Gateway 在启动时检测到遗留配置格式时也会自动运行 doctor 迁移,因此过时的配置无需手动干预即可修复。
Gateway网关在启动时检测到遗留配置格式时也会自动运行 doctor 迁移,因此过时的配置无需手动干预即可修复。
当前迁移:
@ -143,7 +143,7 @@ Doctor 可以将旧版磁盘布局迁移到当前结构:
- 从遗留的 `~/.openclaw/credentials/*.json``oauth.json` 除外)
- 到 `~/.openclaw/credentials/whatsapp/<accountId>/...`(默认账户 ID`default`
这些迁移尽力执行且幂等;当 doctor 保留任何遗留文件夹作为备份时会发出警告。Gateway/CLI 在启动时也会自动迁移遗留会话 + 智能体目录,使历史/认证/模型落入每个智能体的路径中,无需手动运行 doctor。WhatsApp 认证仅通过 `openclaw doctor` 进行迁移。
这些迁移尽力执行且幂等;当 doctor 保留任何遗留文件夹作为备份时会发出警告。Gateway网关/CLI 在启动时也会自动迁移遗留会话 + 智能体目录,使历史/认证/模型落入每个智能体的路径中,无需手动运行 doctor。WhatsApp 认证仅通过 `openclaw doctor` 进行迁移。
### 4) 状态完整性检查(会话持久化、路由和安全性)
@ -177,33 +177,33 @@ Doctor 还会报告由于以下原因暂时不可用的认证配置:
当启用沙箱时doctor 检查 Docker 镜像,并在当前镜像缺失时提供构建或切换到遗留名称的选项。
### 8) Gateway 服务迁移和清理提示
### 8) Gateway网关服务迁移和清理提示
Doctor 检测遗留 Gateway 服务launchd/systemd/schtasks并提供删除它们并使用当前 Gateway 端口安装 OpenClaw 服务的选项。它还可以扫描额外的类 Gateway 服务并打印清理提示。以配置文件命名的 OpenClaw Gateway 服务被视为一等公民,不会被标记为"额外"。
Doctor 检测遗留 Gateway网关服务launchd/systemd/schtasks并提供删除它们并使用当前 Gateway网关端口安装 OpenClaw 服务的选项。它还可以扫描额外的类 Gateway网关服务并打印清理提示。以配置文件命名的 OpenClaw Gateway网关服务被视为一等公民,不会被标记为"额外"。
### 9) 安全警告
当提供商对 DM 开放且没有允许列表时或当策略以危险方式配置时doctor 会发出警告。
当提供商对 私信 开放且没有允许列表时或当策略以危险方式配置时doctor 会发出警告。
### 10) systemd lingerLinux
如果作为 systemd 用户服务运行doctor 确保 linger 已启用,以便 Gateway 在注销后保持运行。
如果作为 systemd 用户服务运行doctor 确保 linger 已启用,以便 Gateway网关在注销后保持运行。
### 11) 技能状态
### 11) Skills 状态
Doctor 打印当前工作区可用/缺失/受阻技能的快速摘要。
Doctor 打印当前工作区可用/缺失/受阻 Skills 的快速摘要。
### 12) Gateway 认证检查(本地令牌)
### 12) Gateway网关认证检查(本地令牌)
当本地 Gateway 缺少 `gateway.auth`doctor 发出警告并提供生成令牌的选项。使用 `openclaw doctor --generate-gateway-token` 在自动化中强制创建令牌。
当本地 Gateway网关缺少 `gateway.auth`doctor 发出警告并提供生成令牌的选项。使用 `openclaw doctor --generate-gateway-token` 在自动化中强制创建令牌。
### 13) Gateway 健康检查 + 重启
### 13) Gateway网关健康检查 + 重启
Doctor 运行健康检查,并在 Gateway 看起来不健康时提供重启选项。
Doctor 运行健康检查,并在 Gateway网关看起来不健康时提供重启选项。
### 14) 渠道状态警告
如果 Gateway 健康doctor 运行渠道状态探测并报告警告及建议的修复方案。
如果 Gateway网关健康doctor 运行渠道状态探测并报告警告及建议的修复方案。
### 15) Supervisor 配置审计 + 修复
@ -217,13 +217,13 @@ Doctor 检查已安装的 supervisor 配置launchd/systemd/schtasks是否
- `openclaw doctor --repair --force` 覆盖自定义 supervisor 配置。
- 你始终可以通过 `openclaw gateway install --force` 强制完全重写。
### 16) Gateway 运行时 + 端口诊断
### 16) Gateway网关运行时 + 端口诊断
Doctor 检查服务运行时PID、上次退出状态并在服务已安装但实际未运行时发出警告。它还检查 Gateway 端口(默认 `18789`上的端口冲突并报告可能的原因Gateway 已在运行、SSH 隧道)。
Doctor 检查服务运行时PID、上次退出状态并在服务已安装但实际未运行时发出警告。它还检查 Gateway网关端口(默认 `18789`上的端口冲突并报告可能的原因Gateway网关已在运行、SSH 隧道)。
### 17) Gateway 运行时最佳实践
### 17) Gateway网关运行时最佳实践
当 Gateway 服务运行在 Bun 或版本管理器管理的 Node 路径(`nvm`、`fnm`、`volta`、`asdf` 等上时doctor 会发出警告。WhatsApp + Telegram 渠道需要 Node而版本管理器路径在升级后可能会失效因为服务不会加载你的 shell 初始化文件。Doctor 会在系统 Node 安装可用时提供迁移选项Homebrew/apt/choco
当 Gateway网关服务运行在 Bun 或版本管理器管理的 Node 路径(`nvm`、`fnm`、`volta`、`asdf` 等上时doctor 会发出警告。WhatsApp + Telegram 渠道需要 Node而版本管理器路径在升级后可能会失效因为服务不会加载你的 shell 初始化文件。Doctor 会在系统 Node 安装可用时提供迁移选项Homebrew/apt/choco
### 18) 配置写入 + 向导元数据

View File

@ -1,9 +1,9 @@
---
read_when:
- 运行或调试 Gateway 进程时
- 运行或调试 Gateway网关进程时
- 调查单实例强制机制时
summary: Gateway 单例守卫:通过 WebSocket 监听器绑定实现
title: Gateway
summary: Gateway网关单例守卫:通过 WebSocket 监听器绑定实现
title: Gateway网关
x-i18n:
generated_at: "2026-02-01T20:25:58Z"
model: claude-opus-4-5
@ -13,29 +13,29 @@ x-i18n:
workflow: 14
---
# Gateway
# Gateway网关
最后更新2025-12-11
## 原因
- 确保同一主机上每个基础端口只运行一个 Gateway 实例;额外的 Gateway 必须使用隔离的配置文件和唯一端口。
- 确保同一主机上每个基础端口只运行一个 Gateway网关实例;额外的 Gateway网关必须使用隔离的配置文件和唯一端口。
- 在崩溃/SIGKILL 后不会留下过期的锁文件。
- 当控制端口已被占用时,快速失败并给出清晰的错误信息。
## 机制
- Gateway 在启动时立即通过独占 TCP 监听器绑定 WebSocket 监听器(默认 `ws://127.0.0.1:18789`)。
- 如果绑定失败并返回 `EADDRINUSE`,启动时将抛出 `GatewayLockError("another gateway instance is already listening on ws://127.0.0.1:<port>")`。
- Gateway网关在启动时立即通过独占 TCP 监听器绑定 WebSocket 监听器(默认 `ws://127.0.0.1:18789`)。
- 如果绑定失败并返回 `EADDRINUSE`,启动时将抛出 `Gateway网关LockError("another gateway instance is already listening on ws://127.0.0.1:<port>")`。
- 操作系统会在进程以任何方式退出时自动释放监听器,包括崩溃和 SIGKILL——无需单独的锁文件或清理步骤。
- 关闭时Gateway 会关闭 WebSocket 服务器和底层 HTTP 服务器以及时释放端口。
- 关闭时Gateway网关会关闭 WebSocket 服务器和底层 HTTP 服务器以及时释放端口。
## 错误表现
- 如果另一个进程持有该端口,启动时将抛出 `GatewayLockError("another gateway instance is already listening on ws://127.0.0.1:<port>")`。
- 其他绑定失败将表现为 `GatewayLockError("failed to bind gateway socket on ws://127.0.0.1:<port>: …")`。
- 如果另一个进程持有该端口,启动时将抛出 `Gateway网关LockError("another gateway instance is already listening on ws://127.0.0.1:<port>")`。
- 其他绑定失败将表现为 `Gateway网关LockError("failed to bind gateway socket on ws://127.0.0.1:<port>: …")`。
## 运维说明
- 如果端口被*其他*进程占用,错误信息相同;请释放该端口或使用 `openclaw gateway --port <port>` 选择另一个端口。
- macOS 应用在启动 Gateway 之前仍会维护自己的轻量级 PID 守卫;运行时锁由 WebSocket 绑定强制执行。
- macOS 应用在启动 Gateway网关之前仍会维护自己的轻量级 PID 守卫;运行时锁由 WebSocket 绑定强制执行。

Some files were not shown because too many files have changed in this diff Show More