diff --git a/docs/zh-CN/concepts/memory.md b/docs/zh-CN/concepts/memory.md
index 5f587fff6..19ffd8ea6 100644
--- a/docs/zh-CN/concepts/memory.md
+++ b/docs/zh-CN/concepts/memory.md
@@ -1,84 +1,84 @@
---
read_when:
- - 你想了解内存是如何工作的
- - 你想知道应该写入哪些内存文件
-summary: OpenClaw 如何在跨会话中记住内容
-title: 内存概览
+ - 你想了解 memory 的工作方式
+ - 你想知道应该写入哪些 memory 文件
+summary: OpenClaw 如何跨会话记住信息
+title: Memory 概览
x-i18n:
- generated_at: "2026-04-08T03:01:07Z"
+ generated_at: "2026-04-08T21:50:09Z"
model: gpt-5.4
provider: openai
- source_hash: 3bb8552341b0b651609edaaae826a22fdc535d240aed4fad4af4b069454004af
+ source_hash: 2fe47910f5bf1c44be379e971c605f1cb3a29befcf2a7ee11fb3833cbe3b9059
source_path: concepts/memory.md
workflow: 15
---
-# 内存概览
+# Memory 概览
-OpenClaw 会通过在你的智能体工作区中写入**纯 Markdown 文件**来记住内容。模型只会“记住”那些被保存到磁盘上的内容——不存在隐藏状态。
+OpenClaw 通过在你的智能体工作区中写入**纯 Markdown 文件**来记住信息。模型只会“记住”保存到磁盘上的内容——不存在隐藏状态。
## 工作原理
-你的智能体有三个与内存相关的文件:
+你的智能体有三个与 memory 相关的文件:
-- **`MEMORY.md`** —— 长期记忆。持久化的事实、偏好和决策。会在每次私信会话开始时加载。
-- **`memory/YYYY-MM-DD.md`** —— 每日笔记。持续记录的上下文和观察。今天和昨天的笔记会被自动加载。
-- **`DREAMS.md`**(实验性,可选)—— 供人工审阅的梦境日记和 dreaming 扫描摘要。
+- **`MEMORY.md`** —— 长期记忆。保存持久事实、偏好和决策。会在每个私信会话开始时加载。
+- **`memory/YYYY-MM-DD.md`** —— 每日笔记。保存持续积累的上下文和观察内容。今天和昨天的笔记会自动加载。
+- **`DREAMS.md`**(实验性,可选)—— Dream Diary 和 dreaming sweep 摘要,供人工审查,其中包含有依据的历史回填条目。
这些文件位于智能体工作区中(默认是 `~/.openclaw/workspace`)。
-如果你想让智能体记住某件事,只要直接告诉它:“记住我更喜欢 TypeScript。” 它会把内容写入合适的文件。
+如果你希望你的智能体记住某件事,直接告诉它即可:“记住我更喜欢 TypeScript。” 它会将内容写入相应的文件。
-## 内存工具
+## Memory 工具
-智能体有两个用于处理内存的工具:
+智能体有两个用于处理 memory 的工具:
-- **`memory_search`** —— 使用语义搜索查找相关笔记,即使措辞与原始内容不同也可以找到。
-- **`memory_get`** —— 读取特定的内存文件或行范围。
+- **`memory_search`** —— 使用语义搜索查找相关笔记,即使措辞与原文不同也可以找到。
+- **`memory_get`** —— 读取指定的 memory 文件或行范围。
-这两个工具都由当前激活的内存插件提供(默认:`memory-core`)。
+这两个工具都由当前激活的 memory 插件提供(默认:`memory-core`)。
## Memory Wiki 配套插件
-如果你希望持久内存的行为更像一个被维护的知识库,而不只是原始笔记,请使用内置的 `memory-wiki` 插件。
+如果你希望持久记忆的行为更像是一个持续维护的知识库,而不只是原始笔记,可以使用内置的 `memory-wiki` 插件。
-`memory-wiki` 会将持久知识编译为一个 wiki 保险库,包含:
+`memory-wiki` 会将持久知识编译到一个 wiki 资料库中,包含:
- 确定性的页面结构
-- 结构化的主张和证据
-- 矛盾与新鲜度跟踪
-- 生成的仪表板
+- 结构化的主张与证据
+- 矛盾与时效性跟踪
+- 自动生成的仪表板
- 面向智能体/运行时消费者的编译摘要
-- wiki 原生工具,例如 `wiki_search`、`wiki_get`、`wiki_apply` 和 `wiki_lint`
+- wiki 原生工具,如 `wiki_search`、`wiki_get`、`wiki_apply` 和 `wiki_lint`
-它不会替代当前激活的内存插件。当前激活的内存插件仍然负责回忆、提升和 dreaming。`memory-wiki` 则在其旁边增加了一层带有丰富溯源信息的知识层。
+它不会替代当前激活的 memory 插件。当前激活的 memory 插件仍然负责回忆、提升和 dreaming。`memory-wiki` 则在其旁边增加了一层带有丰富来源信息的知识层。
参见 [Memory Wiki](/zh-CN/plugins/memory-wiki)。
-## 内存搜索
+## Memory 搜索
-当配置了嵌入提供商后,`memory_search` 会使用**混合搜索**——将向量相似度(语义含义)与关键词匹配(如 ID 和代码符号等精确术语)结合起来。一旦你为任意受支持的提供商配置了 API 密钥,这项功能即可开箱即用。
+配置 embedding 提供商后,`memory_search` 会使用**混合搜索**——将向量相似度(语义含义)与关键词匹配(如 ID 和代码符号等精确术语)结合起来。一旦你为任意受支持的提供商配置了 API key,它即可开箱即用。
-OpenClaw 会根据可用的 API 密钥自动检测你的嵌入提供商。如果你已配置 OpenAI、Gemini、Voyage 或 Mistral 的密钥,内存搜索会自动启用。
+OpenClaw 会根据可用的 API key 自动检测你的 embedding 提供商。如果你已配置 OpenAI、Gemini、Voyage 或 Mistral key,memory 搜索会自动启用。
-有关搜索工作方式、调优选项和提供商设置的详细信息,请参见
-[内存搜索](/zh-CN/concepts/memory-search)。
+有关搜索工作原理、调优选项和提供商设置的详细信息,请参见
+[Memory Search](/zh-CN/concepts/memory-search)。
-## 内存后端
+## Memory 后端
基于 SQLite。开箱即用,支持关键词搜索、向量相似度和混合搜索。无需额外依赖。
-本地优先的 sidecar,支持重排序、查询扩展,并且能够索引工作区之外的目录。
+local-first sidecar,支持重排序、查询扩展,以及为工作区外部目录建立索引的能力。
-AI 原生的跨会话内存,支持用户建模、语义搜索和多智能体感知。需要安装插件。
+AI 原生的跨会话 memory,支持用户建模、语义搜索和多智能体感知。需安装插件。
@@ -86,47 +86,75 @@ AI 原生的跨会话内存,支持用户建模、语义搜索和多智能体
-将持久内存编译为一个具有丰富溯源信息的 wiki 保险库,包含主张、仪表板、桥接模式,以及对 Obsidian 友好的工作流。
+将持久记忆编译为一个带有丰富来源信息的 wiki 资料库,包含主张、仪表板、桥接模式以及对 Obsidian 友好的工作流。
-## 自动内存刷新
+## 自动 memory 刷新
-在 [压缩](/zh-CN/concepts/compaction) 总结你的对话之前,OpenClaw 会运行一个静默轮次,提醒智能体将重要上下文保存到内存文件中。此功能默认开启——你无需进行任何配置。
+在 [compaction](/zh-CN/concepts/compaction) 总结你的对话之前,OpenClaw 会运行一个静默回合,提醒智能体将重要上下文保存到 memory 文件中。此功能默认开启——你无需配置任何内容。
-内存刷新可以防止在压缩期间丢失上下文。如果你的智能体在对话中有尚未写入文件的重要事实,这些内容会在摘要生成之前自动保存。
+memory 刷新可以防止在 compaction 期间丢失上下文。如果你的智能体在对话中有重要事实尚未写入文件,它们会在摘要发生前自动保存。
## Dreaming(实验性)
-Dreaming 是一种可选的内存后台整合流程。它会收集短期信号、为候选项打分,并仅将符合条件的项目提升到长期记忆中(`MEMORY.md`)。
+Dreaming 是一项可选的 memory 后台整合流程。它会收集短期信号、对候选项进行评分,并仅将符合条件的内容提升到长期记忆(`MEMORY.md`)中。
-它旨在让长期记忆保持高信噪比:
+它的设计目标是让长期记忆保持高信噪比:
-- **选择加入**:默认禁用。
-- **定时执行**:启用后,`memory-core` 会自动管理一个周期性 cron 任务,用于执行完整的 dreaming 扫描。
-- **阈值控制**:提升必须通过分数、回忆频率和查询多样性门槛。
-- **可审阅**:阶段摘要和日记条目会写入 `DREAMS.md`,供人工审阅。
+- **选择启用**:默认禁用。
+- **定时执行**:启用后,`memory-core` 会自动管理一个周期性 cron 任务,用于执行完整的 dreaming sweep。
+- **阈值筛选**:提升必须通过分数、回忆频率和查询多样性这几道门槛。
+- **可审查**:阶段摘要和 diary 条目会写入 `DREAMS.md`,供人工审查。
-有关阶段行为、评分信号和梦境日记详情,请参见
+有关阶段行为、评分信号和 Dream Diary 详情,请参见
[Dreaming(实验性)](/zh-CN/concepts/dreaming)。
+## 有依据的回填与实时提升
+
+dreaming 系统现在有两条紧密相关的审查路径:
+
+- **实时 dreaming** 会基于 `memory/.dreams/` 下的短期 dreaming 存储运行,这也是常规深度阶段在判断哪些内容可以升级到 `MEMORY.md` 时使用的数据来源。
+- **有依据的回填** 会将历史 `memory/YYYY-MM-DD.md` 笔记作为独立的每日文件读取,并将结构化审查输出写入 `DREAMS.md`。
+
+当你希望重放较旧的笔记,并检查系统认为哪些内容具有持久价值,而又不想手动编辑 `MEMORY.md` 时,有依据的回填会很有用。
+
+当你使用:
+
+```bash
+openclaw memory rem-backfill --path ./memory --stage-short-term
+```
+
+有依据的持久候选项不会被直接提升。它们会被暂存到常规深度阶段已经在使用的同一个短期 dreaming 存储中。这意味着:
+
+- `DREAMS.md` 仍然是人工审查界面。
+- 短期存储仍然是面向机器的排序界面。
+- `MEMORY.md` 仍然只会由深度提升流程写入。
+
+如果你认为这次重放没有帮助,可以删除这些暂存产物,而不影响普通 diary 条目或正常的 recall 状态:
+
+```bash
+openclaw memory rem-backfill --rollback
+openclaw memory rem-backfill --rollback-short-term
+```
+
## CLI
```bash
openclaw memory status # 检查索引状态和提供商
-openclaw memory search "query" # 从命令行搜索
+openclaw memory search "query" # 从命令行执行搜索
openclaw memory index --force # 重建索引
```
## 延伸阅读
-- [内置内存引擎](/zh-CN/concepts/memory-builtin) —— 默认的 SQLite 后端
-- [QMD 内存引擎](/zh-CN/concepts/memory-qmd) —— 高级本地优先 sidecar
-- [Honcho 内存](/zh-CN/concepts/memory-honcho) —— AI 原生的跨会话内存
-- [Memory Wiki](/zh-CN/plugins/memory-wiki) —— 编译后的知识保险库和 wiki 原生工具
-- [内存搜索](/zh-CN/concepts/memory-search) —— 搜索流水线、提供商和调优
+- [Builtin Memory Engine](/zh-CN/concepts/memory-builtin) —— 默认 SQLite 后端
+- [QMD Memory Engine](/zh-CN/concepts/memory-qmd) —— 高级 local-first sidecar
+- [Honcho Memory](/zh-CN/concepts/memory-honcho) —— AI 原生跨会话 memory
+- [Memory Wiki](/zh-CN/plugins/memory-wiki) —— 编译后的知识资料库和 wiki 原生工具
+- [Memory Search](/zh-CN/concepts/memory-search) —— 搜索流水线、提供商和调优
- [Dreaming(实验性)](/zh-CN/concepts/dreaming) —— 将短期回忆后台提升到长期记忆
-- [内存配置参考](/zh-CN/reference/memory-config) —— 所有配置项
-- [压缩](/zh-CN/concepts/compaction) —— 压缩如何与内存交互
+- [Memory configuration reference](/zh-CN/reference/memory-config) —— 所有配置项
+- [Compaction](/zh-CN/concepts/compaction) —— compaction 如何与 memory 交互
diff --git a/docs/zh-CN/gateway/doctor.md b/docs/zh-CN/gateway/doctor.md
index 7eec9aef7..15f4dadd0 100644
--- a/docs/zh-CN/gateway/doctor.md
+++ b/docs/zh-CN/gateway/doctor.md
@@ -5,17 +5,17 @@ read_when:
summary: Doctor 命令:健康检查、配置迁移和修复步骤
title: Doctor
x-i18n:
- generated_at: "2026-04-08T16:05:41Z"
+ generated_at: "2026-04-08T21:51:04Z"
model: gpt-5.4
provider: openai
- source_hash: a2f701f5c22cd5afc6b62cf2d916f183155ee55b5cebf03ef0d1272b94121cf7
+ source_hash: 673d8bc20447012646908dafcff6911dd8314ea85718dccc75c43a99d28ea5b1
source_path: gateway/doctor.md
workflow: 15
---
# Doctor
-`openclaw doctor` 是 OpenClaw 的修复 + 迁移工具。它会修复陈旧的配置/状态、执行健康检查,并提供可执行的修复步骤。
+`openclaw doctor` 是 OpenClaw 的修复 + 迁移工具。它会修复过时的配置/状态、检查健康状况,并提供可执行的修复步骤。
## 快速开始
@@ -29,13 +29,13 @@ openclaw doctor
openclaw doctor --yes
```
-接受默认值而不进行提示(包括在适用时的重启/服务/沙箱修复步骤)。
+接受默认选项而不提示(包括在适用时执行重启/服务/沙箱修复步骤)。
```bash
openclaw doctor --repair
```
-不经提示应用推荐的修复(在安全时执行修复 + 重启)。
+不经提示应用推荐修复(在安全情况下执行修复 + 重启)。
```bash
openclaw doctor --repair --force
@@ -47,16 +47,16 @@ openclaw doctor --repair --force
openclaw doctor --non-interactive
```
-无提示运行,并且只应用安全迁移(配置规范化 + 磁盘状态移动)。跳过需要人工确认的重启/服务/沙箱操作。
+在无提示模式下运行,并且只应用安全迁移(配置规范化 + 磁盘状态移动)。跳过需要人工确认的重启/服务/沙箱操作。
检测到旧版状态迁移时会自动运行。
```bash
openclaw doctor --deep
```
-扫描系统服务中的额外 Gateway 网关安装(`launchd`/`systemd`/`schtasks`)。
+扫描系统服务以查找额外的 Gateway 网关安装(`launchd`/`systemd`/`schtasks`)。
-如果你想在写入前先查看变更,先打开配置文件:
+如果你想在写入前先查看变更,请先打开配置文件:
```bash
cat ~/.openclaw/openclaw.json
@@ -64,60 +64,79 @@ cat ~/.openclaw/openclaw.json
## 它会做什么(摘要)
-- 针对 git 安装的可选预检更新(仅交互模式)。
+- 对 git 安装进行可选的飞行前更新(仅交互模式)。
- UI 协议新鲜度检查(当协议 schema 更新时重建 Control UI)。
- 健康检查 + 重启提示。
- Skills 状态摘要(可用/缺失/被阻止)和插件状态。
-- 对旧版值执行配置规范化。
+- 对旧版值进行配置规范化。
- 将旧版扁平 `talk.*` 字段迁移到 `talk.provider` + `talk.providers.` 的 Talk 配置迁移。
-- 针对旧版 Chrome 扩展配置和 Chrome MCP 就绪状态的浏览器迁移检查。
+- 针对旧版 Chrome 扩展配置和 Chrome MCP 就绪情况的浏览器迁移检查。
- OpenCode 提供商覆盖警告(`models.providers.opencode` / `models.providers.opencode-go`)。
-- Codex OAuth 覆盖警告(`models.providers.openai-codex`)。
+- Codex OAuth 遮蔽警告(`models.providers.openai-codex`)。
- OpenAI Codex OAuth 配置的 OAuth TLS 前置条件检查。
-- 旧版磁盘状态迁移(会话/智能体目录/WhatsApp 认证)。
-- 旧版插件清单契约键迁移(`speechProviders`、`realtimeTranscriptionProviders`、`realtimeVoiceProviders`、`mediaUnderstandingProviders`、`imageGenerationProviders`、`videoGenerationProviders`、`webFetchProviders`、`webSearchProviders` → `contracts`)。
-- 旧版 cron 存储迁移(`jobId`、`schedule.cron`、顶层 delivery/payload 字段、payload `provider`、简单 `notify: true` webhook 回退任务)。
-- 会话锁文件检查和陈旧锁清理。
-- 状态完整性和权限检查(会话、转录、状态目录)。
+- 旧版磁盘状态迁移(sessions/agent 目录/WhatsApp 认证)。
+- 旧版插件 manifest 合约键迁移(`speechProviders`、`realtimeTranscriptionProviders`、`realtimeVoiceProviders`、`mediaUnderstandingProviders`、`imageGenerationProviders`、`videoGenerationProviders`、`webFetchProviders`、`webSearchProviders` → `contracts`)。
+- 旧版 cron 存储迁移(`jobId`、`schedule.cron`、顶层 delivery/payload 字段、payload `provider`、简单的 `notify: true` webhook 回退任务)。
+- 会话锁文件检查与过期锁清理。
+- 状态完整性和权限检查(sessions、transcripts、state 目录)。
- 本地运行时的配置文件权限检查(`chmod 600`)。
-- 模型认证健康状态:检查 OAuth 过期情况,可刷新即将过期的令牌,并报告 auth-profile 冷却/禁用状态。
-- 检测额外的工作区目录(`~/openclaw`)。
-- 启用沙箱隔离时执行沙箱镜像修复。
+- 模型认证健康检查:检查 OAuth 过期情况,可刷新即将过期的 token,并报告 auth profile 的冷却/禁用状态。
+- 额外工作区目录检测(`~/openclaw`)。
+- 启用沙箱隔离时的沙箱镜像修复。
- 旧版服务迁移和额外 Gateway 网关检测。
- Matrix 渠道旧版状态迁移(在 `--fix` / `--repair` 模式下)。
- Gateway 网关运行时检查(服务已安装但未运行;缓存的 `launchd` 标签)。
- 渠道状态警告(从正在运行的 Gateway 网关探测)。
-- Supervisor 配置审计(`launchd`/`systemd`/`schtasks`),并可选择修复。
-- Gateway 网关运行时最佳实践检查(Node 与 Bun、版本管理器路径)。
+- Supervisor 配置审计(`launchd`/`systemd`/`schtasks`)及可选修复。
+- Gateway 网关运行时最佳实践检查(Node 对比 Bun、版本管理器路径)。
- Gateway 网关端口冲突诊断(默认 `18789`)。
-- 针对开放私信策略的安全警告。
-- 本地令牌模式的 Gateway 网关认证检查(当没有令牌来源时提供令牌生成功能;不会覆盖令牌 SecretRef 配置)。
+- 面向开放私信策略的安全警告。
+- 针对本地 token 模式的 Gateway 网关认证检查(当没有 token 来源时提供生成 token;不会覆盖 token SecretRef 配置)。
- Linux 上的 `systemd linger` 检查。
-- 工作区 bootstrap 文件大小检查(上下文文件截断/接近上限警告)。
-- shell 自动补全状态检查和自动安装/升级。
-- Memory 搜索嵌入提供商就绪状态检查(本地模型、远程 API key 或 QMD 二进制文件)。
-- 源码安装检查(`pnpm` 工作区不匹配、缺失 UI 资源、缺失 `tsx` 二进制文件)。
+- 工作区引导文件大小检查(上下文文件的截断/接近上限警告)。
+- Shell 补全状态检查和自动安装/升级。
+- Memory 搜索嵌入提供商就绪情况检查(本地模型、远程 API key 或 QMD 二进制)。
+- 源码安装检查(`pnpm` workspace 不匹配、缺失 UI 资源、缺失 `tsx` 二进制)。
- 写入更新后的配置 + 向导元数据。
-## 详细行为与原因说明
+## Dreams UI 回填与重置
+
+Control UI 的 Dreams 场景包含 **Backfill** 和 **Reset** 操作,用于 grounded diary 工作流。这些操作使用 Gateway 网关风格的 doctor RPC 方法,但它们**不是** `openclaw doctor` CLI 修复/迁移的一部分。
+
+它们会做什么:
+
+- **Backfill** 会扫描活动工作区中的历史 `memory/YYYY-MM-DD.md` 文件,运行 grounded REM diary 流程,并将可逆的回填条目写入 `DREAMS.md`。
+- **Reset** 仅从 `DREAMS.md` 中移除那些带标记的回填日记条目。
+
+它们**不会**自行执行以下操作:
+
+- 不会编辑 `MEMORY.md`
+- 不会运行完整的 Doctor 迁移
+- 不会自动将 grounded 候选项暂存到实时短期提升存储中
+
+如果你想让 grounded 历史回放影响正常的深度提升通道,请改用 CLI 流程:
+
+```bash
+openclaw memory rem-backfill --path ./memory --stage-short-term
+```
+
+这会把 grounded 持久候选项暂存到短期 dreaming 存储中,同时将 `DREAMS.md` 作为审查界面保留。
+
+## 详细行为和原因说明
### 0)可选更新(git 安装)
-如果这是一个 git 检出副本,并且 doctor 在交互模式下运行,它会在运行 doctor 之前提供更新选项(`fetch`/`rebase`/`build`)。
+如果这是一个 git checkout,并且 Doctor 正在交互模式下运行,它会先提供更新(fetch/rebase/build)选项,然后再运行 Doctor。
### 1)配置规范化
-如果配置包含旧版值形状(例如没有渠道专用覆盖的 `messages.ackReaction`),doctor 会将它们规范化为当前 schema。
+如果配置包含旧版值形态(例如没有特定渠道覆盖的 `messages.ackReaction`),Doctor 会将其规范化为当前 schema。
-这也包括旧版 Talk 扁平字段。当前公开的 Talk 配置是
-`talk.provider` + `talk.providers.`。Doctor 会将旧的
-`talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` /
-`talk.apiKey` 形式重写为 provider 映射。
+其中包括旧版 Talk 扁平字段。当前公开的 Talk 配置为 `talk.provider` + `talk.providers.`。Doctor 会把旧的 `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` 形态重写到 provider 映射中。
### 2)旧版配置键迁移
-当配置包含已弃用的键时,其他命令会拒绝运行,并要求你运行
-`openclaw doctor`。
+当配置包含已弃用键时,其他命令会拒绝运行,并要求你运行 `openclaw doctor`。
Doctor 将会:
@@ -125,7 +144,7 @@ Doctor 将会:
- 展示它应用的迁移。
- 使用更新后的 schema 重写 `~/.openclaw/openclaw.json`。
-当 Gateway 网关在启动时检测到旧版配置格式,也会自动运行 doctor 迁移,因此无需人工干预也能修复陈旧配置。
+当 Gateway 网关在启动时检测到旧版配置格式,也会自动运行 Doctor 迁移,因此过时配置无需人工干预即可修复。
Cron 任务存储迁移由 `openclaw doctor --fix` 处理。
当前迁移包括:
@@ -140,111 +159,88 @@ Cron 任务存储迁移由 `openclaw doctor --fix` 处理。
- 旧版 `talk.voiceId`/`talk.voiceAliases`/`talk.modelId`/`talk.outputFormat`/`talk.apiKey` → `talk.provider` + `talk.providers.`
- `routing.agentToAgent` → `tools.agentToAgent`
- `routing.transcribeAudio` → `tools.media.audio.models`
-- `messages.tts.` (`openai`/`elevenlabs`/`microsoft`/`edge`)→ `messages.tts.providers.`
-- `channels.discord.voice.tts.` (`openai`/`elevenlabs`/`microsoft`/`edge`)→ `channels.discord.voice.tts.providers.`
-- `channels.discord.accounts..voice.tts.` (`openai`/`elevenlabs`/`microsoft`/`edge`)→ `channels.discord.accounts..voice.tts.providers.`
-- `plugins.entries.voice-call.config.tts.` (`openai`/`elevenlabs`/`microsoft`/`edge`)→ `plugins.entries.voice-call.config.tts.providers.`
+- `messages.tts.`(`openai`/`elevenlabs`/`microsoft`/`edge`)→ `messages.tts.providers.`
+- `channels.discord.voice.tts.`(`openai`/`elevenlabs`/`microsoft`/`edge`)→ `channels.discord.voice.tts.providers.`
+- `channels.discord.accounts..voice.tts.`(`openai`/`elevenlabs`/`microsoft`/`edge`)→ `channels.discord.accounts..voice.tts.providers.`
+- `plugins.entries.voice-call.config.tts.`(`openai`/`elevenlabs`/`microsoft`/`edge`)→ `plugins.entries.voice-call.config.tts.providers.`
- `plugins.entries.voice-call.config.provider: "log"` → `"mock"`
- `plugins.entries.voice-call.config.twilio.from` → `plugins.entries.voice-call.config.fromNumber`
- `plugins.entries.voice-call.config.streaming.sttProvider` → `plugins.entries.voice-call.config.streaming.provider`
- `plugins.entries.voice-call.config.streaming.openaiApiKey|sttModel|silenceDurationMs|vadThreshold`
→ `plugins.entries.voice-call.config.streaming.providers.openai.*`
- `bindings[].match.accountID` → `bindings[].match.accountId`
-- 对于配置了具名 `accounts` 但仍残留单账户顶层渠道值的渠道,将这些账户作用域的值移动到该渠道所选的提升账户中(大多数渠道使用 `accounts.default`;Matrix 可以保留现有匹配的具名/默认目标)
+- 对于配置了具名 `accounts` 但仍残留单账户顶层渠道值的渠道,将这些账户作用域的值移动到该渠道选定的提升账户中(大多数渠道使用 `accounts.default`;Matrix 可以保留现有匹配的具名/默认目标)
- `identity` → `agents.list[].identity`
-- `agent.*` → `agents.defaults` + `tools.*` (`tools`/`elevated`/`exec`/`sandbox`/`subagents`)
+- `agent.*` → `agents.defaults` + `tools.*`(tools/elevated/exec/sandbox/subagents)
- `agent.model`/`allowedModels`/`modelAliases`/`modelFallbacks`/`imageModelFallbacks`
→ `agents.defaults.models` + `agents.defaults.model.primary/fallbacks` + `agents.defaults.imageModel.primary/fallbacks`
- `browser.ssrfPolicy.allowPrivateNetwork` → `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork`
- `browser.profiles.*.driver: "extension"` → `"existing-session"`
-- 移除 `browser.relayBindHost`(旧版扩展 relay 设置)
+- 删除 `browser.relayBindHost`(旧版扩展 relay 设置)
-Doctor 警告还包括多账户渠道的默认账户指导:
+Doctor 警告还包含多账户渠道的默认账户指引:
-- 如果配置了两个或更多 `channels..accounts` 条目,但没有设置 `channels..defaultAccount` 或 `accounts.default`,doctor 会警告回退路由可能会选中意料之外的账户。
-- 如果 `channels..defaultAccount` 被设置为未知账户 ID,doctor 会发出警告并列出已配置的账户 ID。
+- 如果已配置两个或更多 `channels..accounts` 条目,但没有设置 `channels..defaultAccount` 或 `accounts.default`,Doctor 会警告回退路由可能会选到意外的账户。
+- 如果 `channels..defaultAccount` 被设置为未知账户 ID,Doctor 会发出警告并列出已配置的账户 ID。
### 2b)OpenCode 提供商覆盖
-如果你手动添加了 `models.providers.opencode`、`opencode-zen` 或 `opencode-go`,
-它会覆盖来自 `@mariozechner/pi-ai` 的内置 OpenCode 目录。
-这可能会把模型强制路由到错误的 API,或者把成本归零。Doctor 会发出警告,以便你移除该覆盖并恢复按模型进行的 API 路由 + 成本。
+如果你手动添加了 `models.providers.opencode`、`opencode-zen` 或 `opencode-go`,它会覆盖来自 `@mariozechner/pi-ai` 的内置 OpenCode 目录。
+这可能会把模型强制路由到错误的 API,或者把成本清零。Doctor 会发出警告,以便你删除该覆盖并恢复按模型路由 API + 成本。
-### 2c)浏览器迁移和 Chrome MCP 就绪状态
+### 2c)浏览器迁移与 Chrome MCP 就绪情况
-如果你的浏览器配置仍然指向已移除的 Chrome 扩展路径,doctor 会将其规范化为当前主机本地 Chrome MCP 附加模型:
+如果你的浏览器配置仍指向已移除的 Chrome 扩展路径,Doctor 会将其规范化为当前基于主机本地的 Chrome MCP 连接模型:
-- `browser.profiles.*.driver: "extension"` 会变为 `"existing-session"`
-- `browser.relayBindHost` 会被移除
+- `browser.profiles.*.driver: "extension"` 变为 `"existing-session"`
+- 删除 `browser.relayBindHost`
-当你使用 `defaultProfile: "user"` 或已配置的 `existing-session` profile 时,
-Doctor 还会审计主机本地 Chrome MCP 路径:
+当你使用 `defaultProfile: "user"` 或配置了 `existing-session` profile 时,Doctor 还会审计主机本地 Chrome MCP 路径:
-- 检查默认自动连接 profile 所在主机是否安装了 Google Chrome
-- 检查检测到的 Chrome 版本,并在版本低于 Chrome 144 时发出警告
-- 提醒你在浏览器检查页面启用远程调试(例如
- `chrome://inspect/#remote-debugging`、`brave://inspect/#remote-debugging`,
- 或 `edge://inspect/#remote-debugging`)
+- 检查同一主机上是否已安装 Google Chrome,以支持默认自动连接 profile
+- 检查检测到的 Chrome 版本,并在低于 Chrome 144 时发出警告
+- 提醒你在浏览器检查页面启用远程调试(例如 `chrome://inspect/#remote-debugging`、`brave://inspect/#remote-debugging` 或 `edge://inspect/#remote-debugging`)
-Doctor 不能替你启用 Chrome 侧设置。主机本地 Chrome MCP
-仍然需要:
+Doctor 无法替你启用 Chrome 侧设置。主机本地 Chrome MCP 仍然要求:
- Gateway 网关/节点主机上安装 Chromium 内核浏览器 144+
- 浏览器在本地运行
- 在该浏览器中启用远程调试
-- 在浏览器中批准首次附加同意提示
+- 在浏览器中批准首次连接的同意提示
-这里的就绪状态仅指本地附加前置条件。Existing-session 会保留当前 Chrome MCP 路由限制;像 `responsebody`、PDF 导出、下载拦截和批量操作这样的高级路由,仍然需要托管浏览器或原始 CDP profile。
+这里的就绪情况仅涉及本地连接前置条件。Existing-session 仍保留当前 Chrome MCP 的路由限制;像 `responsebody`、PDF 导出、下载拦截和批量操作这样的高级路由仍需要托管浏览器或原始 CDP profile。
-此检查**不**适用于 Docker、沙箱、remote-browser 或其他无头流程。那些流程会继续使用原始 CDP。
+此检查**不**适用于 Docker、沙箱、remote-browser 或其他无头流程。这些流程将继续使用原始 CDP。
### 2d)OAuth TLS 前置条件
-当配置了 OpenAI Codex OAuth profile 时,doctor 会探测 OpenAI
-授权端点,以验证本地 Node/OpenSSL TLS 栈能否校验证书链。如果探测因证书错误失败(例如
-`UNABLE_TO_GET_ISSUER_CERT_LOCALLY`、证书过期或自签名证书),
-doctor 会打印平台专用修复指导。在 macOS 上使用 Homebrew Node 时,
-修复方式通常是 `brew postinstall ca-certificates`。使用 `--deep` 时,
-即使 Gateway 网关处于健康状态,也会运行该探测。
+配置了 OpenAI Codex OAuth profile 时,Doctor 会探测 OpenAI 授权端点,以验证本地 Node/OpenSSL TLS 栈是否能够校验证书链。如果探测因证书错误失败(例如 `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`、证书过期或自签名证书),Doctor 会打印针对平台的修复指引。在 macOS 上,如果使用的是 Homebrew 安装的 Node,通常修复方法是 `brew postinstall ca-certificates`。使用 `--deep` 时,即使 Gateway 网关健康,该探测也会运行。
### 2c)Codex OAuth 提供商覆盖
-如果你之前在 `models.providers.openai-codex` 下添加了旧版 OpenAI 传输设置,
-它们可能会遮蔽较新版本自动使用的内置 Codex OAuth
-提供商路径。Doctor 会在它看到这些旧传输设置与 Codex OAuth 并存时发出警告,
-这样你就可以移除或重写陈旧的传输覆盖,重新获得内置的路由/回退行为。
-自定义代理和仅头部覆盖仍然受支持,不会触发此警告。
+如果你之前在 `models.providers.openai-codex` 下添加了旧版 OpenAI 传输设置,它们可能会遮蔽较新版本自动使用的内置 Codex OAuth 提供商路径。Doctor 在看到这些旧传输设置与 Codex OAuth 同时存在时会发出警告,以便你移除或重写陈旧的传输覆盖,从而恢复内置路由/回退行为。自定义代理和仅 header 的覆盖仍然受支持,不会触发此警告。
### 3)旧版状态迁移(磁盘布局)
-Doctor 可以将较旧的磁盘布局迁移到当前结构:
+Doctor 可以将较旧的磁盘布局迁移为当前结构:
-- 会话存储 + 转录:
- - 从 `~/.openclaw/sessions/` 迁移到 `~/.openclaw/agents//sessions/`
-- 智能体目录:
- - 从 `~/.openclaw/agent/` 迁移到 `~/.openclaw/agents//agent/`
+- Sessions 存储 + transcripts:
+ - 从 `~/.openclaw/sessions/` 到 `~/.openclaw/agents//sessions/`
+- Agent 目录:
+ - 从 `~/.openclaw/agent/` 到 `~/.openclaw/agents//agent/`
- WhatsApp 认证状态(Baileys):
- 从旧版 `~/.openclaw/credentials/*.json`(`oauth.json` 除外)
- - 迁移到 `~/.openclaw/credentials/whatsapp//...`(默认账户 ID:`default`)
+ - 到 `~/.openclaw/credentials/whatsapp//...`(默认账户 ID:`default`)
-这些迁移会尽力执行并保持幂等;如果保留了任何旧版文件夹作为备份,doctor 会发出警告。
-Gateway 网关/CLI 在启动时也会自动迁移旧版会话 + 智能体目录,因此历史记录/认证/模型会进入按智能体划分的路径,无需手动运行 doctor。WhatsApp 认证则有意只通过 `openclaw doctor` 迁移。Talk provider/provider-map 规范化现在按结构相等性进行比较,因此仅键顺序不同的差异不会再触发重复的空操作 `doctor --fix` 变更。
+这些迁移会尽力执行,并且是幂等的;如果保留任何旧版文件夹作为备份,Doctor 会发出警告。Gateway 网关/CLI 在启动时也会自动迁移旧版 sessions + agent 目录,因此历史/认证/模型会落到按 agent 划分的路径中,而无需手动运行 Doctor。WhatsApp 认证有意仅通过 `openclaw doctor` 迁移。Talk provider/provider-map 规范化现在通过结构相等性比较,因此仅键顺序不同的差异不再触发重复的无操作 `doctor --fix` 变更。
-### 3a)旧版插件清单迁移
+### 3a)旧版插件 manifest 迁移
-Doctor 会扫描所有已安装插件的清单,查找已弃用的顶层能力键
-(`speechProviders`、`realtimeTranscriptionProviders`、
-`realtimeVoiceProviders`、`mediaUnderstandingProviders`、
-`imageGenerationProviders`、`videoGenerationProviders`、`webFetchProviders`、
-`webSearchProviders`)。发现后,它会提供将它们移动到 `contracts`
-对象中的选项,并原地重写清单文件。此迁移是幂等的;
-如果 `contracts` 键已经包含相同的值,旧版键会被移除,
-不会重复数据。
+Doctor 会扫描所有已安装插件的 manifest,查找已弃用的顶层能力键(`speechProviders`、`realtimeTranscriptionProviders`、`realtimeVoiceProviders`、`mediaUnderstandingProviders`、`imageGenerationProviders`、`videoGenerationProviders`、`webFetchProviders`、`webSearchProviders`)。发现后,它会提议将它们移动到 `contracts` 对象中,并原地重写 manifest 文件。此迁移是幂等的;如果 `contracts` 键中已经有相同的值,则只会移除旧版键,而不会重复数据。
### 3b)旧版 cron 存储迁移
-Doctor 还会检查 cron 任务存储(默认是 `~/.openclaw/cron/jobs.json`,
-或在覆盖时使用 `cron.store`),查找调度器为了兼容性仍然接受的旧任务形状。
+Doctor 还会检查 cron 任务存储(默认是 `~/.openclaw/cron/jobs.json`,或在覆盖时使用 `cron.store`)中调度器仍为兼容性接受的旧任务形态。
当前 cron 清理包括:
@@ -253,236 +249,171 @@ Doctor 还会检查 cron 任务存储(默认是 `~/.openclaw/cron/jobs.json`
- 顶层 payload 字段(`message`、`model`、`thinking`、...)→ `payload`
- 顶层 delivery 字段(`deliver`、`channel`、`to`、`provider`、...)→ `delivery`
- payload `provider` delivery 别名 → 显式 `delivery.channel`
-- 简单的旧版 `notify: true` webhook 回退任务 → 显式 `delivery.mode="webhook"`,并设置 `delivery.to=cron.webhook`
+- 简单的旧版 `notify: true` webhook 回退任务 → 显式 `delivery.mode="webhook"` 且 `delivery.to=cron.webhook`
-只有在不改变行为的前提下,doctor 才会自动迁移 `notify: true` 任务。
-如果某个任务把旧版 notify 回退与现有的非 webhook delivery 模式组合使用,
-doctor 会发出警告,并将该任务保留给人工审查。
+Doctor 只会在能够保证行为不变时自动迁移 `notify: true` 任务。如果某个任务把旧版 notify 回退与现有非 webhook delivery 模式组合在一起,Doctor 会发出警告,并将该任务留给人工审查。
### 3c)会话锁清理
-Doctor 会扫描每个智能体会话目录中的陈旧写锁文件——这些文件是在会话异常退出时遗留的。
-对于找到的每个锁文件,它会报告:
-路径、PID、该 PID 是否仍存活、锁龄,以及它是否
-被视为陈旧(PID 已死亡或超过 30 分钟)。在 `--fix` / `--repair`
-模式下,它会自动移除陈旧锁文件;否则它会打印说明,并指示你使用 `--fix` 重新运行。
+Doctor 会扫描每个 agent 的会话目录,查找过期写锁文件——即会话异常退出后遗留的文件。对于找到的每个锁文件,它会报告:
+路径、PID、PID 是否仍在存活、锁龄,以及它是否被视为过期(PID 已死亡或超过 30 分钟)。在 `--fix` / `--repair` 模式下,它会自动移除过期锁文件;否则它会打印说明,并提示你用 `--fix` 重新运行。
### 4)状态完整性检查(会话持久化、路由和安全)
-状态目录是运行中的核心中枢。如果它消失了,你会失去
-会话、凭证、日志和配置(除非你在别处有备份)。
+状态目录是运行中的核心中枢。如果它消失了,你会丢失 sessions、凭证、日志和配置(除非你在别处有备份)。
Doctor 会检查:
-- **状态目录缺失**:警告灾难性的状态丢失,提示重新创建
- 目录,并提醒你它无法恢复丢失的数据。
-- **状态目录权限**:验证可写性;提供修复权限的选项
- (当检测到所有者/组不匹配时会给出 `chown` 提示)。
-- **macOS 云同步状态目录**:当状态路径位于 iCloud Drive
+- **状态目录缺失**:警告灾难性的状态丢失,提示重新创建目录,并提醒你它无法恢复已丢失的数据。
+- **状态目录权限**:验证可写性;提供修复权限选项(当检测到所有者/组不匹配时还会给出 `chown` 提示)。
+- **macOS 云同步状态目录**:当状态解析到 iCloud Drive
(`~/Library/Mobile Documents/com~apple~CloudDocs/...`)或
- `~/Library/CloudStorage/...` 下时发出警告,因为由同步支持的路径可能导致更慢的 I/O
- 以及锁/同步竞争。
-- **Linux SD 或 eMMC 状态目录**:当状态路径解析到 `mmcblk*`
- 挂载源时发出警告,因为基于 SD 或 eMMC 的随机 I/O 在
- 会话和凭证写入负载下可能更慢且磨损更快。
-- **会话目录缺失**:`sessions/` 和会话存储目录是
- 持久化历史记录并避免 `ENOENT` 崩溃所必需的。
-- **转录不匹配**:当近期会话条目缺少
- 转录文件时发出警告。
-- **主会话“单行 JSONL”**:当主转录只有一行时发出标记
- (历史记录没有持续累积)。
-- **多个状态目录**:当多个主目录下存在多个 `~/.openclaw` 文件夹,
- 或 `OPENCLAW_STATE_DIR` 指向其他位置时发出警告(历史记录可能在不同安装之间分裂)。
-- **远程模式提醒**:如果 `gateway.mode=remote`,doctor 会提醒你在
- 远程主机上运行它(状态存储在那里)。
-- **配置文件权限**:如果 `~/.openclaw/openclaw.json`
- 对组/所有人可读,则发出警告,并提供收紧为 `600` 的选项。
+ `~/Library/CloudStorage/...` 下时发出警告,因为基于同步的路径可能会导致更慢的 I/O 以及锁/同步竞争。
+- **Linux SD 或 eMMC 状态目录**:当状态解析到 `mmcblk*`
+ 挂载源时发出警告,因为基于 SD 或 eMMC 的随机 I/O 在 sessions 和凭证写入场景下可能更慢且磨损更快。
+- **Session 目录缺失**:`sessions/` 和 session 存储目录是持久化历史、避免 `ENOENT` 崩溃所必需的。
+- **Transcript 不匹配**:当最近的 session 条目缺少 transcript 文件时发出警告。
+- **主 session “1 行 JSONL”**:当主 transcript 只有一行时标记出来(历史没有持续累积)。
+- **多个状态目录**:当多个主目录中存在多个 `~/.openclaw` 文件夹,或 `OPENCLAW_STATE_DIR` 指向别处时发出警告(历史可能会在不同安装之间分裂)。
+- **远程模式提醒**:如果 `gateway.mode=remote`,Doctor 会提醒你在远程主机上运行它(状态存储在那里)。
+- **配置文件权限**:如果 `~/.openclaw/openclaw.json` 对组/所有人可读,则发出警告,并提供收紧到 `600` 的选项。
-### 5)模型认证健康状态(OAuth 过期)
+### 5)模型认证健康状况(OAuth 过期)
-Doctor 会检查认证存储中的 OAuth profile,在令牌即将过期/已过期时发出警告,
-并在安全时进行刷新。如果 Anthropic
-OAuth/令牌 profile 已过期,它会建议使用 Anthropic API key 或
-Anthropic setup-token 路径。
-仅在交互模式(TTY)下才会显示刷新提示;`--non-interactive`
-会跳过刷新尝试。
+Doctor 会检查 auth 存储中的 OAuth profile,在 token 即将过期/已过期时发出警告,并在安全时刷新它们。如果 Anthropic OAuth/token profile 已陈旧,它会建议使用 Anthropic API key 或 Anthropic setup-token 路径。
+只有在交互模式(TTY)下运行时才会出现刷新提示;`--non-interactive` 会跳过刷新尝试。
-当 OAuth 刷新永久失败时(例如 `refresh_token_reused`、
-`invalid_grant`,或提供商提示你需要重新登录),doctor 会报告
-需要重新认证,并打印需要运行的精确命令
-`openclaw models auth login --provider ...`。
+当 OAuth 刷新永久失败时(例如 `refresh_token_reused`、`invalid_grant`,或提供商告诉你需要重新登录),Doctor 会报告需要重新认证,并打印精确的 `openclaw models auth login --provider ...` 命令供你运行。
-Doctor 还会报告由于以下原因而暂时不可用的 auth-profile:
+Doctor 还会报告因以下原因暂时不可用的 auth profile:
-- 短暂冷却(速率限制/超时/认证失败)
-- 更长时间的禁用(计费/额度失败)
+- 短期冷却(速率限制/超时/认证失败)
+- 较长时间的禁用(计费/额度失败)
-### 6)Hooks 模型验证
+### 6)Hooks 模型校验
-如果设置了 `hooks.gmail.model`,doctor 会根据目录和 allowlist 验证该模型引用,
-并在其无法解析或被禁止时发出警告。
+如果设置了 `hooks.gmail.model`,Doctor 会根据目录和 allowlist 校验模型引用,并在它无法解析或不被允许时发出警告。
### 7)沙箱镜像修复
-启用沙箱隔离时,doctor 会检查 Docker 镜像,并在当前镜像缺失时提供构建或切换到旧版名称的选项。
+当启用沙箱隔离时,Doctor 会检查 Docker 镜像,并在当前镜像缺失时提供构建或切换到旧版名称的选项。
### 7b)内置插件运行时依赖
-Doctor 会验证内置插件运行时依赖(例如
-Discord 插件运行时包)是否存在于 OpenClaw 安装根目录中。
-如果缺失,doctor 会报告这些包,并在
-`openclaw doctor --fix` / `openclaw doctor --repair` 模式下安装它们。
+Doctor 会验证内置插件的运行时依赖(例如 Discord 插件运行时包)是否存在于 OpenClaw 安装根目录中。
+如果缺失,Doctor 会报告相关包,并在 `openclaw doctor --fix` / `openclaw doctor --repair` 模式下安装它们。
### 8)Gateway 网关服务迁移和清理提示
-Doctor 会检测旧版 Gateway 网关服务(`launchd`/`systemd`/`schtasks`),
-并提供移除它们、然后使用当前 Gateway 网关端口安装 OpenClaw 服务的选项。
-它还可以扫描额外的类 Gateway 网关服务并打印清理提示。
-以 profile 命名的 OpenClaw Gateway 网关服务会被视为一等公民,不会被标记为“额外”。
+Doctor 会检测旧版 Gateway 网关服务(`launchd`/`systemd`/`schtasks`),并提供移除它们以及使用当前 Gateway 网关端口安装 OpenClaw 服务的选项。它还可以扫描额外的类 Gateway 网关服务并打印清理提示。
+以 profile 命名的 OpenClaw Gateway 网关服务被视为一等服务,不会被标记为“额外”。
### 8b)启动 Matrix 迁移
-当 Matrix 渠道账户存在待处理或可执行的旧版状态迁移时,
-doctor(在 `--fix` / `--repair` 模式下)会先创建迁移前快照,
-然后运行尽力而为的迁移步骤:旧版 Matrix 状态迁移和旧版
-加密状态准备。这两个步骤都不是致命性的;错误会被记录,启动会继续。
-在只读模式下(不带 `--fix` 的 `openclaw doctor`)此检查会被完全跳过。
+当 Matrix 渠道账户存在待处理或可执行的旧版状态迁移时,Doctor(在 `--fix` / `--repair` 模式下)会先创建迁移前快照,然后再运行尽力而为的迁移步骤:旧版 Matrix 状态迁移和旧版加密状态准备。这两个步骤都不是致命的;错误会被记录,启动会继续进行。在只读模式下(不带 `--fix` 的 `openclaw doctor`),此检查会被完全跳过。
### 9)安全警告
-当某个提供商对私信开放但没有 allowlist,或策略配置方式存在危险时,doctor 会发出警告。
+当某个提供商对私信开放但没有 allowlist,或策略配置存在危险方式时,Doctor 会发出警告。
### 10)`systemd linger`(Linux)
-如果作为 `systemd` 用户服务运行,doctor 会确保已启用 lingering,以便
-Gateway 网关在登出后仍保持运行。
+如果作为 `systemd` 用户服务运行,Doctor 会确保已启用 lingering,以便 Gateway 网关在你注销后仍保持运行。
### 11)工作区状态(Skills、插件和旧版目录)
Doctor 会打印默认智能体的工作区状态摘要:
-- **Skills 状态**:统计可用、缺少要求以及被 allowlist 阻止的 Skills 数量。
-- **旧版工作区目录**:当 `~/openclaw` 或其他旧版工作区目录
- 与当前工作区并存时发出警告。
-- **插件状态**:统计已加载/已禁用/出错的插件数量;列出所有
- 出错插件的插件 ID;报告 bundle 插件能力。
+- **Skills 状态**:统计可用、要求缺失和被 allowlist 阻止的 Skills 数量。
+- **旧版工作区目录**:当 `~/openclaw` 或其他旧版工作区目录与当前工作区并存时发出警告。
+- **插件状态**:统计已加载/已禁用/出错的插件;列出发生错误的插件 ID;报告 bundle 插件能力。
- **插件兼容性警告**:标记与当前运行时存在兼容性问题的插件。
-- **插件诊断**:显示插件注册表发出的任何加载时警告或错误。
+- **插件诊断**:显示插件注册表发出的所有加载时警告或错误。
-### 11b)Bootstrap 文件大小
+### 11b)引导文件大小
-Doctor 会检查工作区 bootstrap 文件(例如 `AGENTS.md`、
-`CLAUDE.md` 或其他注入的上下文文件)是否接近或超过已配置的
-字符预算。它会报告每个文件的原始字符数与注入后字符数、截断
-百分比、截断原因(`max/file` 或 `max/total`),以及总注入
-字符数占总预算的比例。当文件被截断或接近上限时,
-doctor 会打印关于调整 `agents.defaults.bootstrapMaxChars`
-和 `agents.defaults.bootstrapTotalMaxChars` 的建议。
+Doctor 会检查工作区引导文件(例如 `AGENTS.md`、`CLAUDE.md` 或其他注入的上下文文件)是否接近或超过配置的字符预算。它会报告每个文件的原始字符数与注入后字符数、截断百分比、截断原因(`max/file` 或 `max/total`),以及总注入字符数占总预算的比例。当文件被截断或接近限制时,Doctor 会打印调优 `agents.defaults.bootstrapMaxChars` 和 `agents.defaults.bootstrapTotalMaxChars` 的建议。
-### 11c)Shell 自动补全
+### 11c)Shell 补全
-Doctor 会检查当前 shell 是否已安装 tab 自动补全
-(`zsh`、`bash`、`fish` 或 PowerShell):
+Doctor 会检查当前 shell 的 Tab 补全是否已安装(zsh、bash、fish 或 PowerShell):
-- 如果 shell profile 使用了较慢的动态补全模式
- (`source <(openclaw completion ...)`),doctor 会将其升级为更快的
- 缓存文件变体。
-- 如果 profile 中已配置补全,但缓存文件缺失,
- doctor 会自动重新生成缓存。
-- 如果完全没有配置补全,它会提示安装
+- 如果 shell profile 使用较慢的动态补全模式
+ (`source <(openclaw completion ...)`),Doctor 会将其升级为更快的缓存文件变体。
+- 如果 profile 中已配置补全,但缓存文件缺失,Doctor 会自动重新生成缓存。
+- 如果完全没有配置补全,它会提示你安装
(仅交互模式;使用 `--non-interactive` 时跳过)。
运行 `openclaw completion --write-state` 可手动重新生成缓存。
-### 12)Gateway 网关认证检查(本地令牌)
+### 12)Gateway 网关认证检查(本地 token)
-Doctor 会检查本地 Gateway 网关令牌认证就绪状态。
+Doctor 会检查本地 Gateway 网关 token 认证就绪情况。
-- 如果令牌模式需要令牌但没有令牌来源,doctor 会提供生成令牌的选项。
-- 如果 `gateway.auth.token` 由 SecretRef 管理但不可用,doctor 会发出警告,且不会用明文覆盖它。
-- `openclaw doctor --generate-gateway-token` 仅在未配置令牌 SecretRef 时强制生成。
+- 如果 token 模式需要 token 且不存在 token 来源,Doctor 会提供生成选项。
+- 如果 `gateway.auth.token` 由 SecretRef 管理但当前不可用,Doctor 会发出警告,并且不会用明文覆盖它。
+- 只有在未配置 token SecretRef 时,`openclaw doctor --generate-gateway-token` 才会强制生成。
-### 12b)只读 SecretRef 感知修复
+### 12b)只读的 SecretRef 感知修复
-某些修复流程需要检查已配置的凭证,而不能削弱运行时快速失败行为。
+某些修复流程需要检查已配置的凭证,但又不能削弱运行时快速失败行为。
-- `openclaw doctor --fix` 现在使用与 status 系列命令相同的只读 SecretRef 摘要模型,用于有针对性的配置修复。
-- 示例:Telegram `allowFrom` / `groupAllowFrom` 的 `@username` 修复会在可用时尝试使用已配置的 bot 凭证。
-- 如果 Telegram bot 令牌通过 SecretRef 配置,但在当前命令路径中不可用,doctor 会报告该凭证“已配置但不可用”,并跳过自动解析,而不是崩溃或误报令牌缺失。
+- `openclaw doctor --fix` 现在使用与状态类命令相同的只读 SecretRef 摘要模型来执行定向配置修复。
+- 例如:Telegram `allowFrom` / `groupAllowFrom` 的 `@username` 修复会在可用时尝试使用已配置的机器人凭证。
+- 如果 Telegram 机器人 token 通过 SecretRef 配置,但在当前命令路径中不可用,Doctor 会报告该凭证“已配置但不可用”,并跳过自动解析,而不是崩溃或误报 token 缺失。
### 13)Gateway 网关健康检查 + 重启
-Doctor 会执行健康检查,并在 Gateway 网关看起来
-不健康时提供重启选项。
+Doctor 会运行健康检查,并在 Gateway 网关看起来不健康时提供重启选项。
-### 13b)Memory 搜索就绪状态
+### 13b)Memory 搜索就绪情况
-Doctor 会检查为默认智能体配置的 Memory 搜索嵌入提供商是否已就绪。
-其行为取决于所配置的后端和提供商:
+Doctor 会检查默认智能体所配置的 Memory 搜索嵌入提供商是否就绪。具体行为取决于配置的后端和提供商:
-- **QMD 后端**:探测 `qmd` 二进制文件是否可用并可启动。
- 如果不可用,会打印修复指导,包括 npm 包和手动二进制路径选项。
-- **显式本地提供商**:检查本地模型文件或可识别的
- 远程/可下载模型 URL。如果缺失,会建议切换到远程提供商。
-- **显式远程提供商**(`openai`、`voyage` 等):验证环境或认证存储中
- 是否存在 API key。如果缺失,会打印可执行的修复提示。
-- **自动提供商**:先检查本地模型可用性,然后按自动选择顺序依次尝试各个远程
- 提供商。
+- **QMD 后端**:探测 `qmd` 二进制是否可用并可启动。
+ 如果不可用,会打印修复指引,包括 npm 包以及手动二进制路径选项。
+- **显式本地提供商**:检查是否存在本地模型文件,或可识别的远程/可下载模型 URL。如果缺失,会建议切换到远程提供商。
+- **显式远程提供商**(`openai`、`voyage` 等):验证环境中或 auth 存储中是否存在 API key。如果缺失,会打印可执行的修复提示。
+- **自动提供商**:先检查本地模型可用性,然后按照自动选择顺序依次尝试每个远程提供商。
-当 Gateway 网关探测结果可用时(检查时 Gateway 网关处于健康状态),
-doctor 会将其结果与 CLI 可见配置交叉比对,并说明
-任何差异。
+当 Gateway 网关探测结果可用时(检查时 Gateway 网关处于健康状态),Doctor 会将其结果与 CLI 可见配置交叉对照,并指出任何差异。
-使用 `openclaw memory status --deep` 可在运行时验证嵌入就绪状态。
+使用 `openclaw memory status --deep` 可在运行时验证嵌入就绪情况。
### 14)渠道状态警告
-如果 Gateway 网关健康,doctor 会运行渠道状态探测,并报告
-附带修复建议的警告。
+如果 Gateway 网关健康,Doctor 会运行渠道状态探测,并报告附带建议修复方法的警告。
### 15)Supervisor 配置审计 + 修复
-Doctor 会检查已安装的 supervisor 配置(`launchd`/`systemd`/`schtasks`),查看是否存在
-缺失或过期的默认值(例如 `systemd network-online` 依赖和
-重启延迟)。发现不匹配时,它会建议更新,并且可以
-将服务文件/任务重写为当前默认值。
+Doctor 会检查已安装的 supervisor 配置(`launchd`/`systemd`/`schtasks`)是否缺失或落后于当前默认值(例如 `systemd` 的 `network-online` 依赖和重启延迟)。发现不匹配时,它会建议更新,并可将服务文件/任务重写为当前默认值。
说明:
-- `openclaw doctor` 在重写 supervisor 配置前会提示确认。
+- `openclaw doctor` 会在重写 supervisor 配置前提示确认。
- `openclaw doctor --yes` 会接受默认修复提示。
-- `openclaw doctor --repair` 会不经提示应用推荐修复。
+- `openclaw doctor --repair` 会在无提示的情况下应用推荐修复。
- `openclaw doctor --repair --force` 会覆盖自定义 supervisor 配置。
-- 如果令牌认证需要令牌,而 `gateway.auth.token` 由 SecretRef 管理,doctor 在服务安装/修复时会验证 SecretRef,但不会把解析出的明文令牌值持久化到 supervisor 服务环境元数据中。
-- 如果令牌认证需要令牌,而已配置的令牌 SecretRef 无法解析,doctor 会阻止安装/修复流程,并提供可执行指导。
-- 如果同时配置了 `gateway.auth.token` 和 `gateway.auth.password`,但 `gateway.auth.mode` 未设置,doctor 会阻止安装/修复,直到显式设置 mode。
-- 对于 Linux user-systemd 单元,doctor 的令牌漂移检查现在会同时包含 `Environment=` 和 `EnvironmentFile=` 来源,以比较服务认证元数据。
+- 如果 token 认证需要 token 且 `gateway.auth.token` 由 SecretRef 管理,Doctor 在服务安装/修复时会校验 SecretRef,但不会将解析出的明文 token 值持久化到 supervisor 服务环境元数据中。
+- 如果 token 认证需要 token 且配置的 token SecretRef 无法解析,Doctor 会阻止安装/修复路径,并提供可执行的指引。
+- 如果同时配置了 `gateway.auth.token` 和 `gateway.auth.password`,但未设置 `gateway.auth.mode`,Doctor 会阻止安装/修复,直到明确设置 mode。
+- 对于 Linux user-systemd 单元,Doctor 的 token 漂移检查现在同时包含 `Environment=` 和 `EnvironmentFile=` 来源,以比较服务认证元数据。
- 你始终可以通过 `openclaw gateway install --force` 强制完整重写。
### 16)Gateway 网关运行时 + 端口诊断
-Doctor 会检查服务运行时(PID、最近退出状态),并在
-服务已安装但实际上未运行时发出警告。它还会检查 Gateway 网关端口
-(默认 `18789`)上的端口冲突,并报告可能原因(Gateway 网关已在运行、
-SSH 隧道)。
+Doctor 会检查服务运行时(PID、最近退出状态),并在服务已安装但实际上未运行时发出警告。它还会检查 Gateway 网关端口(默认 `18789`)上的端口冲突,并报告可能原因(Gateway 网关已在运行、SSH 隧道)。
### 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)配置写入 + 向导元数据
-Doctor 会持久化任何配置更改,并写入向导元数据来记录此次
-doctor 运行。
+Doctor 会持久化所有配置变更,并写入向导元数据以记录本次 Doctor 运行。
-### 19)工作区提示(备份 + memory system)
+### 19)工作区提示(备份 + Memory 系统)
-当工作区缺少 memory system 时,Doctor 会给出建议;如果工作区
-尚未纳入 git,它还会打印备份提示。
+当工作区缺少 Memory 系统时,Doctor 会给出建议;如果工作区尚未纳入 git 管理,它还会打印备份提示。
-参见 [/concepts/agent-workspace](/zh-CN/concepts/agent-workspace) 了解关于
-工作区结构和 git 备份的完整指南(推荐使用私有 GitHub 或 GitLab)。
+完整的工作区结构与 git 备份指南,请参见 [/concepts/agent-workspace](/zh-CN/concepts/agent-workspace)(推荐使用私有 GitHub 或 GitLab)。