chore(i18n): refresh zh-CN translations
This commit is contained in:
parent
8da7527151
commit
05e1e1e506
@ -1,41 +1,44 @@
|
||||
---
|
||||
read_when:
|
||||
- 更改 Control UI 中的智能体输出渲染
|
||||
- 调试 `[embed ...]`、`MEDIA:`、reply 或音频展示指令
|
||||
summary: 用于嵌入、媒体、音频提示和回复的富输出短代码协议
|
||||
- 在控制 UI 中更改助手输出渲染
|
||||
- 调试 `[embed ...]`、`MEDIA:`、回复或音频呈现指令
|
||||
summary: 富输出短代码协议,用于嵌入、媒体、音频提示和回复
|
||||
title: 富输出协议
|
||||
x-i18n:
|
||||
generated_at: "2026-04-27T11:02:04Z"
|
||||
model: gpt-5.4
|
||||
generated_at: "2026-05-02T21:28:14Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 7c52a2f3a37e7a8d1237046edafc3e80c3199c01f890a1ef39662436590ef55d
|
||||
source_hash: 8e0c365029c26d198090e1f181703e3979394afb0dfa1742f9c088885650de8b
|
||||
source_path: reference/rich-output-protocol.md
|
||||
workflow: 15
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
智能体输出可以携带一小组投递/渲染指令:
|
||||
助手输出可以携带一小组交付/渲染指令:
|
||||
|
||||
- `MEDIA:` 用于附件投递
|
||||
- `[[audio_as_voice]]` 用于音频展示提示
|
||||
- `MEDIA:` 用于附件交付
|
||||
- `[[audio_as_voice]]` 用于音频呈现提示
|
||||
- `[[reply_to_current]]` / `[[reply_to:<id>]]` 用于回复元数据
|
||||
- `[embed ...]` 用于 Control UI 富渲染
|
||||
|
||||
远程 `MEDIA:` 附件必须是公开的 `https:` URL。普通 `http:`、
|
||||
loopback、链路本地、私有和内部主机名会被忽略,不会作为附件
|
||||
指令处理;服务端媒体抓取器仍会执行各自的网络保护措施。
|
||||
远程 `MEDIA:` 附件必须是公开的 `https:` URL。纯 `http:`、
|
||||
回环、链路本地、私有和内部主机名会被忽略为附件指令;服务端媒体获取器仍会执行自己的网络防护。
|
||||
|
||||
普通 Markdown 图片语法默认仍作为文本处理。只有那些明确选择将 Markdown 图片回复映射为媒体附件的渠道,才会在其出站适配器中启用该行为;Telegram 就是这样,因此 `` 仍然可以变成媒体回复。
|
||||
本地 `MEDIA:` 附件可以使用绝对路径、工作区相对路径,或
|
||||
home 相对 `~/` 路径。在交付前,它们仍会经过智能体文件读取策略和
|
||||
媒体类型检查。
|
||||
|
||||
这些指令彼此独立。`MEDIA:` 和 reply/voice 标签仍然属于投递元数据;`[embed ...]` 是仅限 Web 的富渲染路径。
|
||||
受信任的工具结果媒体在投递前也使用同一套 `MEDIA:` / `[[audio_as_voice]]` 解析器,因此文本工具输出仍可将音频附件标记为语音消息。
|
||||
普通 Markdown 图片语法默认仍保留为文本。有意将 Markdown 图片回复映射为媒体附件的渠道会在其出站
|
||||
适配器中选择启用;Telegram 会这样做,因此 `` 仍可变成媒体回复。
|
||||
|
||||
启用分块流式传输后,`MEDIA:` 仍然是单轮次的单次投递元数据。
|
||||
如果同一个媒体 URL 已在流式块中发送,随后又在最终智能体负载中重复出现,
|
||||
OpenClaw 只会投递一次该附件,并从最终负载中移除重复项。
|
||||
这些指令彼此独立。`MEDIA:` 和回复/语音标签仍是交付元数据;`[embed ...]` 是仅用于 Web 的富渲染路径。
|
||||
受信任工具结果媒体在交付前使用同一个 `MEDIA:` / `[[audio_as_voice]]` 解析器,因此文本工具输出仍可将音频附件标记为语音便签。
|
||||
|
||||
启用分块流式传输时,`MEDIA:` 仍是一个轮次中的单次交付元数据。如果同一个媒体 URL 在流式块中发送,并在最终
|
||||
助手负载中重复,OpenClaw 会交付附件一次,并从最终负载中剥离重复项。
|
||||
|
||||
## `[embed ...]`
|
||||
|
||||
`[embed ...]` 是唯一面向智能体的 Control UI 富渲染语法。
|
||||
`[embed ...]` 是面向智能体的唯一 Control UI 富渲染语法。
|
||||
|
||||
自闭合示例:
|
||||
|
||||
@ -45,16 +48,16 @@ OpenClaw 只会投递一次该附件,并从最终负载中移除重复项。
|
||||
|
||||
规则:
|
||||
|
||||
- `[view ...]` 不再是新输出的有效语法。
|
||||
- Embed 短代码只会在智能体消息区域中渲染。
|
||||
- 仅渲染基于 URL 的 embed。请使用 `ref="..."` 或 `url="..."`。
|
||||
- 块形式的内联 HTML embed 短代码不会被渲染。
|
||||
- Web UI 会从可见文本中去掉该短代码,并以内联方式渲染 embed。
|
||||
- `MEDIA:` 不是 embed 别名,不应用于富 embed 渲染。
|
||||
- `[view ...]` 对新输出不再有效。
|
||||
- 嵌入短代码只会在助手消息表面渲染。
|
||||
- 只渲染由 URL 支持的嵌入。使用 `ref="..."` 或 `url="..."`。
|
||||
- 不渲染块形式的内联 HTML 嵌入短代码。
|
||||
- Web UI 会从可见文本中剥离短代码,并以内联方式渲染嵌入。
|
||||
- `MEDIA:` 不是嵌入别名,不应用于富嵌入渲染。
|
||||
|
||||
## 存储后的渲染结构
|
||||
## 存储的渲染形态
|
||||
|
||||
规范化/存储后的智能体内容块是结构化的 `canvas` 项:
|
||||
规范化/存储后的助手内容块是一个结构化的 `canvas` 项:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -71,7 +74,7 @@ OpenClaw 只会投递一次该附件,并从最终负载中移除重复项。
|
||||
}
|
||||
```
|
||||
|
||||
已存储/已渲染的富块直接使用这种 `canvas` 结构。`present_view` 不会被识别。
|
||||
存储/渲染的富块直接使用这个 `canvas` 形态。不识别 `present_view`。
|
||||
|
||||
## 相关内容
|
||||
|
||||
|
||||
@ -1,44 +1,44 @@
|
||||
---
|
||||
read_when:
|
||||
- 新助手实例的新手引导
|
||||
- 为新的助手实例进行新手引导
|
||||
- 审查安全/权限影响
|
||||
summary: 将 OpenClaw 作为个人助理运行的端到端指南,包含安全注意事项
|
||||
summary: 以个人助理方式运行 OpenClaw 的端到端指南,包含安全注意事项
|
||||
title: 个人助手设置
|
||||
x-i18n:
|
||||
generated_at: "2026-04-28T12:04:17Z"
|
||||
generated_at: "2026-05-02T21:28:12Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: b0614272f9a2b30e0900c55b39a8bd6a2b71b9f5d5fbf0fe00c534b91193e6a0
|
||||
source_hash: 9f6087d0756c98741166135df8b915eb5a0803b23e68e486d2d25ec98d4dca79
|
||||
source_path: start/openclaw.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
# 使用 OpenClaw 构建个人助手
|
||||
|
||||
OpenClaw 是一个自托管 Gateway 网关,可将 Discord、Google Chat、iMessage、Matrix、Microsoft Teams、Signal、Slack、Telegram、WhatsApp、Zalo 等连接到 AI 智能体。本指南介绍“个人助手”设置:一个专用 WhatsApp 号码,表现得像始终在线的 AI 助手。
|
||||
OpenClaw 是一个自托管 Gateway 网关,可将 Discord、Google Chat、iMessage、Matrix、Microsoft Teams、Signal、Slack、Telegram、WhatsApp、Zalo 等连接到 AI 智能体。本指南介绍“个人助手”设置:一个专用 WhatsApp 号码,像你的常驻 AI 助手一样工作。
|
||||
|
||||
## ⚠️ 安全优先
|
||||
## ⚠️ 安全第一
|
||||
|
||||
你会把智能体放在一个能够执行以下操作的位置:
|
||||
你正在让智能体处于可以执行以下操作的位置:
|
||||
|
||||
- 在你的机器上运行命令(取决于你的工具策略)
|
||||
- 读取/写入你工作区中的文件
|
||||
- 通过 WhatsApp/Telegram/Discord/Mattermost 和其他内置渠道发回消息
|
||||
- 读取/写入你的工作区文件
|
||||
- 通过 WhatsApp/Telegram/Discord/Mattermost 和其他内置渠道向外发送消息
|
||||
|
||||
从保守配置开始:
|
||||
|
||||
- 始终设置 `channels.whatsapp.allowFrom`(绝不要在你的个人 Mac 上运行对全世界开放的配置)。
|
||||
- 始终设置 `channels.whatsapp.allowFrom`(切勿在个人 Mac 上以向全世界开放的方式运行)。
|
||||
- 为助手使用专用 WhatsApp 号码。
|
||||
- 心跳现在默认每 30 分钟一次。在你信任该设置之前,先通过设置 `agents.defaults.heartbeat.every: "0m"` 禁用它。
|
||||
- Heartbeat 现在默认每 30 分钟运行一次。在你信任这套设置之前,先通过设置 `agents.defaults.heartbeat.every: "0m"` 将其禁用。
|
||||
|
||||
## 前提条件
|
||||
|
||||
- 已安装并完成新手引导的 OpenClaw —— 如果你还没有完成,请参阅[入门指南](/zh-CN/start/getting-started)
|
||||
- 助手需要第二个电话号码(SIM/eSIM/预付费)
|
||||
- 已安装并完成新手引导的 OpenClaw — 如果你还没有完成,请参阅[入门指南](/zh-CN/start/getting-started)
|
||||
- 用于助手的第二个电话号码(SIM/eSIM/预付费)
|
||||
|
||||
## 双手机设置(推荐)
|
||||
|
||||
你想要的是:
|
||||
你需要的是:
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
@ -46,7 +46,7 @@ flowchart TB
|
||||
B -- linked via QR --> C["<b>Your Mac (openclaw)<br></b><br>AI agent"]
|
||||
```
|
||||
|
||||
如果你把个人 WhatsApp 关联到 OpenClaw,那么发给你的每条消息都会变成“智能体输入”。这很少是你想要的。
|
||||
如果你把自己的个人 WhatsApp 关联到 OpenClaw,发给你的每条消息都会变成“智能体输入”。这通常不是你想要的。
|
||||
|
||||
## 5 分钟快速开始
|
||||
|
||||
@ -71,18 +71,18 @@ openclaw gateway --port 18789
|
||||
}
|
||||
```
|
||||
|
||||
现在从你已加入允许列表的手机向助手号码发送消息。
|
||||
现在从你的允许列表手机向助手号码发送消息。
|
||||
|
||||
新手引导完成后,OpenClaw 会自动打开仪表盘并打印一个干净的(非令牌化)链接。如果仪表盘提示认证,请把已配置的共享密钥粘贴到 Control UI 设置中。新手引导默认使用令牌(`gateway.auth.token`),但如果你已将 `gateway.auth.mode` 切换为 `password`,密码认证也可用。稍后重新打开:`openclaw dashboard`。
|
||||
新手引导完成后,OpenClaw 会自动打开仪表板并打印一个干净的(非令牌化)链接。如果仪表板提示认证,请将已配置的共享密钥粘贴到 Control UI 设置中。新手引导默认使用令牌(`gateway.auth.token`),但如果你已将 `gateway.auth.mode` 切换为 `password`,密码认证也可以使用。稍后重新打开:`openclaw dashboard`。
|
||||
|
||||
## 为智能体提供工作区(AGENTS)
|
||||
## 给智能体一个工作区(AGENTS)
|
||||
|
||||
OpenClaw 会从其工作区目录读取操作指令和“记忆”。
|
||||
|
||||
默认情况下,OpenClaw 使用 `~/.openclaw/workspace` 作为智能体工作区,并会在设置/首次智能体运行时自动创建它(以及初始 `AGENTS.md`、`SOUL.md`、`TOOLS.md`、`IDENTITY.md`、`USER.md`、`HEARTBEAT.md`)。`BOOTSTRAP.md` 仅在工作区全新时创建(删除后不应再次出现)。`MEMORY.md` 是可选的(不会自动创建);存在时,会在普通会话中加载。子智能体会话只会注入 `AGENTS.md` 和 `TOOLS.md`。
|
||||
默认情况下,OpenClaw 使用 `~/.openclaw/workspace` 作为 Agent 工作区,并会在设置/首次智能体运行时自动创建它(以及初始 `AGENTS.md`、`SOUL.md`、`TOOLS.md`、`IDENTITY.md`、`USER.md`、`HEARTBEAT.md`)。`BOOTSTRAP.md` 仅在工作区全新时创建(删除后不应再次出现)。`MEMORY.md` 是可选的(不会自动创建);存在时会为普通会话加载。子智能体会话只注入 `AGENTS.md` 和 `TOOLS.md`。
|
||||
|
||||
<Tip>
|
||||
把这个文件夹当作 OpenClaw 的记忆,并将其做成 git 仓库(最好是私有仓库),这样你的 `AGENTS.md` 和记忆文件就会有备份。如果安装了 git,全新工作区会自动初始化。
|
||||
把这个文件夹当作 OpenClaw 的记忆,并将其设为 git 仓库(最好是私有仓库),这样你的 `AGENTS.md` 和记忆文件就会有备份。如果已安装 git,全新的工作区会自动初始化。
|
||||
</Tip>
|
||||
|
||||
```bash
|
||||
@ -104,7 +104,7 @@ openclaw setup
|
||||
}
|
||||
```
|
||||
|
||||
如果你已经从仓库分发自己的工作区文件,可以完全禁用引导文件创建:
|
||||
如果你已经从仓库交付自己的工作区文件,可以完全禁用引导文件创建:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -118,11 +118,11 @@ openclaw setup
|
||||
|
||||
## 将它变成“助手”的配置
|
||||
|
||||
OpenClaw 默认就是一套不错的助手配置,但你通常会想要调整:
|
||||
OpenClaw 默认就是一套不错的助手设置,但你通常会想调整:
|
||||
|
||||
- [`SOUL.md`](/zh-CN/concepts/soul) 中的人设/指令
|
||||
- 思考默认值(如有需要)
|
||||
- 心跳(在你信任它之后)
|
||||
- Heartbeat(在你信任它之后)
|
||||
|
||||
示例:
|
||||
|
||||
@ -162,24 +162,24 @@ OpenClaw 默认就是一套不错的助手配置,但你通常会想要调整
|
||||
}
|
||||
```
|
||||
|
||||
## 会话与记忆
|
||||
## 会话和记忆
|
||||
|
||||
- 会话文件:`~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl`
|
||||
- 会话元数据(令牌用量、上次路由等):`~/.openclaw/agents/<agentId>/sessions/sessions.json`(旧版:`~/.openclaw/sessions/sessions.json`)
|
||||
- `/new` 或 `/reset` 会为该聊天启动一个新会话(可通过 `resetTriggers` 配置)。如果单独发送,OpenClaw 会确认重置,而不会调用模型。
|
||||
- `/compact [instructions]` 会压缩会话上下文并报告剩余的上下文预算。
|
||||
- `/new` 或 `/reset` 会为该聊天启动一个新的会话(可通过 `resetTriggers` 配置)。如果单独发送,OpenClaw 会确认重置而不调用模型。
|
||||
- `/compact [instructions]` 会压缩会话上下文并报告剩余上下文预算。
|
||||
|
||||
## 心跳(主动模式)
|
||||
## Heartbeat(主动模式)
|
||||
|
||||
默认情况下,OpenClaw 每 30 分钟运行一次心跳,提示词为:
|
||||
默认情况下,OpenClaw 每 30 分钟运行一次 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.`
|
||||
设置 `agents.defaults.heartbeat.every: "0m"` 可禁用。
|
||||
|
||||
- 如果 `HEARTBEAT.md` 存在但实际为空(只有空行和类似 `# Heading` 的 Markdown 标题),OpenClaw 会跳过心跳运行以节省 API 调用。
|
||||
- 如果文件缺失,心跳仍会运行,由模型决定要做什么。
|
||||
- 如果智能体回复 `HEARTBEAT_OK`(可带短填充;参见 `agents.defaults.heartbeat.ackMaxChars`),OpenClaw 会抑制该心跳的出站投递。
|
||||
- 默认情况下,允许向私信风格的 `user:<id>` 目标投递心跳。设置 `agents.defaults.heartbeat.directPolicy: "block"` 可在保持心跳运行处于启用状态的同时抑制直接目标投递。
|
||||
- 心跳会运行完整的智能体轮次 —— 间隔越短,消耗的令牌越多。
|
||||
- 如果 `HEARTBEAT.md` 存在但实际上为空(只有空行和类似 `# Heading` 的 Markdown 标题),OpenClaw 会跳过 Heartbeat 运行以节省 API 调用。
|
||||
- 如果文件缺失,Heartbeat 仍会运行,并由模型决定要做什么。
|
||||
- 如果智能体回复 `HEARTBEAT_OK`(可带短填充;参见 `agents.defaults.heartbeat.ackMaxChars`),OpenClaw 会抑制该 Heartbeat 的出站投递。
|
||||
- 默认情况下,允许向私信风格的 `user:<id>` 目标投递 Heartbeat。设置 `agents.defaults.heartbeat.directPolicy: "block"` 可以在保持 Heartbeat 运行的同时抑制直接目标投递。
|
||||
- Heartbeat 会运行完整的智能体轮次 — 间隔越短,消耗的令牌越多。
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -189,15 +189,15 @@ OpenClaw 默认就是一套不错的助手配置,但你通常会想要调整
|
||||
}
|
||||
```
|
||||
|
||||
## 媒体输入与输出
|
||||
## 媒体输入和输出
|
||||
|
||||
入站附件(图片/音频/文档)可以通过模板暴露给你的命令:
|
||||
|
||||
- `{{MediaPath}}`(本地临时文件路径)
|
||||
- `{{MediaUrl}}`(伪 URL)
|
||||
- `{{Transcript}}`(如果已启用音频转写)
|
||||
- `{{Transcript}}`(如果启用了音频转写)
|
||||
|
||||
来自智能体的出站附件:在单独一行包含 `MEDIA:<path-or-url>`(无空格)。示例:
|
||||
智能体发出的出站附件:在单独一行包含 `MEDIA:<path-or-url>`(无空格)。示例:
|
||||
|
||||
```
|
||||
Here’s the screenshot.
|
||||
@ -208,13 +208,14 @@ OpenClaw 会提取这些内容,并将其作为媒体随文本一起发送。
|
||||
|
||||
本地路径行为遵循与智能体相同的文件读取信任模型:
|
||||
|
||||
- 如果 `tools.fs.workspaceOnly` 为 `true`,出站 `MEDIA:` 本地路径会限制在 OpenClaw 临时根目录、媒体缓存、智能体工作区路径以及沙箱生成的文件中。
|
||||
- 如果 `tools.fs.workspaceOnly` 为 `false`,出站 `MEDIA:` 可以使用智能体已被允许读取的主机本地文件。
|
||||
- 主机本地发送仍然只允许媒体和安全文档类型(图片、音频、视频、PDF 和 Office 文档)。纯文本和类似密钥的文件不会被视为可发送媒体。
|
||||
- 如果 `tools.fs.workspaceOnly` 为 `true`,出站 `MEDIA:` 本地路径仍限制在 OpenClaw 临时根目录、媒体缓存、Agent 工作区路径和沙箱生成文件内。
|
||||
- 如果 `tools.fs.workspaceOnly` 为 `false`,出站 `MEDIA:` 可以使用智能体已被允许读取的宿主本地文件。
|
||||
- 本地路径可以是绝对路径、工作区相对路径,或带 `~/` 的主目录相对路径。
|
||||
- 宿主本地发送仍只允许媒体和安全文档类型(图片、音频、视频、PDF 和 Office 文档)。纯文本和类似密钥的文件不会被视为可发送媒体。
|
||||
|
||||
这意味着,当你的文件系统策略已经允许这些读取时,工作区外生成的图片/文件现在也可以发送,同时不会重新打开任意主机文本附件外泄通道。
|
||||
这意味着,当你的文件系统策略已经允许读取这些文件时,工作区外生成的图片/文件现在也可以发送,同时不会重新打开任意宿主文本附件外泄通道。
|
||||
|
||||
## 运维检查清单
|
||||
## 运维清单
|
||||
|
||||
```bash
|
||||
openclaw status # local status (creds, sessions, queued events)
|
||||
@ -228,14 +229,14 @@ openclaw health --json # gateway health snapshot (WS; default can return a fre
|
||||
## 后续步骤
|
||||
|
||||
- WebChat:[WebChat](/zh-CN/web/webchat)
|
||||
- Gateway 网关运维:[Gateway runbook](/zh-CN/gateway)
|
||||
- Cron + 唤醒:[Cron jobs](/zh-CN/automation/cron-jobs)
|
||||
- macOS 菜单栏配套应用:[OpenClaw macOS app](/zh-CN/platforms/macos)
|
||||
- iOS 节点应用:[iOS app](/zh-CN/platforms/ios)
|
||||
- Android 节点应用:[Android app](/zh-CN/platforms/android)
|
||||
- Gateway 网关运维:[Gateway 网关运行手册](/zh-CN/gateway)
|
||||
- Cron + 唤醒:[Cron 任务](/zh-CN/automation/cron-jobs)
|
||||
- macOS 菜单栏配套应用:[OpenClaw macOS 应用](/zh-CN/platforms/macos)
|
||||
- iOS 节点应用:[iOS 应用](/zh-CN/platforms/ios)
|
||||
- Android 节点应用:[Android 应用](/zh-CN/platforms/android)
|
||||
- Windows 状态:[Windows (WSL2)](/zh-CN/platforms/windows)
|
||||
- Linux 状态:[Linux app](/zh-CN/platforms/linux)
|
||||
- 安全:[Security](/zh-CN/gateway/security)
|
||||
- Linux 状态:[Linux 应用](/zh-CN/platforms/linux)
|
||||
- 安全:[安全](/zh-CN/gateway/security)
|
||||
|
||||
## 相关
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user