Appearance
openclaw doctor 是 OpenClaw 的修复与诊断中心,遇到配置迁移、认证过期、服务异常等问题时优先运行它。使用 --lint 做只读预检(CI 集成),--fix 自动应用修复,--non-interactive 安全迁移不影响服务。默认端口 18789,--lint 模式不能与其他修复标志混用。常用命令:openclaw doctor --fix(修复+重启)、openclaw doctor --lint --json(结构化检查)。
OpenClaw Doctor:配置修复、健康检查与自动迁移
openclaw doctor 是 OpenClaw 的修复与迁移工具。它修复过时的配置和状态,检查健康状况,并提供可执行的修复步骤。
快速开始
bash
openclaw doctor无界面 / 自动化模式
--yes
```bash
openclaw doctor --yes
```
接受默认值而不提示(包括适用时的重启/服务/沙盒修复步骤)。
--fix
```bash
openclaw doctor --fix
```
应用推荐的修复而不提示(包括安全的修复 + 重启)。
--lint
```bash
openclaw doctor --lint
openclaw doctor --lint --json
```
运行结构化健康检查,用于 CI 或预检。此模式为只读:不提示、不修复、不迁移配置、不重启服务、不碰状态。
--fix --force
```bash
openclaw doctor --fix --force
```
也应用激进的修复(覆盖自定义的 supervisor 配置)。
--non-interactive
```bash
openclaw doctor --non-interactive
```
无提示运行,只应用安全迁移(配置规范化 + 磁盘状态移动)。跳过需要人工确认的重启/服务/沙盒操作。检测到时自动运行旧版状态迁移。
--deep
```bash
openclaw doctor --deep
```
扫描系统服务以查找额外的 Gateway 安装(launchd/systemd/schtasks)。
如果想在写入前审查变更,先打开配置文件:
bash
cat ~/.openclaw/openclaw.json只读 Lint 模式
openclaw doctor --lint 是 openclaw doctor --fix 的自动化友好版本。两者使用相同的健康检查,但行为不同:
| 模式 | 提示 | 写入配置/状态 | 输出 | 适用场景 |
|---|---|---|---|---|
openclaw doctor | 是 | 否 | 友好的健康报告 | 人工检查状态 |
openclaw doctor --fix | 有时 | 是,按修复策略 | 友好的修复日志 | 应用已批准的修复 |
openclaw doctor --lint | 否 | 否 | 结构化发现 | CI、预检、审核门 |
新的健康检查可以提供可选的 repair() 实现。doctor --fix 应用这些修复(当存在时),对尚未迁移的检查继续使用现有 doctor 修复流程。结构化修复契约将修复报告与检测分离:detect() 报告当前发现,repair() 可以报告变更、配置/文件 diff 和非文件副作用,为将来的 doctor --fix --dry-run 和 diff 输出留出迁移路径。
示例:
bash
openclaw doctor --lint
openclaw doctor --lint --severity-min warning
openclaw doctor --lint --json
openclaw doctor --lint --only core/doctor/gateway-config --jsonJSON 输出包含:
ok:是否有任何可见的发现达到所选严重度阈值checksRun:执行的健康检查数量checksSkipped:被--only或--skip跳过的检查findings:结构化诊断,包含checkId、severity、message,可选path、line、column、ocPath和fixHint
退出码:
0:未发现达到所选阈值的检查项1:至少有一个发现达到所选阈值2:命令/运行时失败,未输出 lint 发现
使用 --severity-min info|warning|error 控制打印内容以及导致非零 lint 退出的阈值。使用 --only <id> 做窄预检,使用 --skip <id> 临时排除某个噪声检查。
注意:--json、--severity-min、--only 和 --skip 必须与 --lint 一起使用;普通 doctor 和 repair 模式会拒绝这些选项。
功能一览
健康、UI 和更新
- git 安装的可选预检更新(仅交互式)。
- UI 协议新鲜度检查(当协议 schema 更新时重建控制 UI)。
- 健康检查 + 重启提示。
- Skills 状态摘要(合格/缺失/阻塞)和插件状态。
配置和迁移
- 旧版值的配置规范化。
- Talk 配置从旧版扁平 `talk.*` 字段迁移到 `talk.provider` + `talk.providers.<provider>`。
- 旧版 Chrome 扩展配置和 Chrome MCP 就绪的浏览器迁移检查。
- OpenCode 提供商覆盖警告(`models.providers.opencode` / `models.providers.opencode-go`)。
- Codex OAuth 影子警告(`models.providers.openai-codex`)。
- OpenAI Codex OAuth profile 的 TLS 前置条件检查。
- 插件/工具允许列表警告(当 `plugins.allow` 限制性但工具策略仍要求通配符或插件自有工具时)。
- 旧版磁盘状态迁移(会话/agent 目录/WhatsApp 认证)。
- 旧版插件 manifest 契约键迁移(将 `speechProviders` 等迁移到 `contracts`)。
- 旧版 cron store 迁移(`jobId`、`schedule.cron`、顶层 delivery/payload 字段等)。
- 旧版全局 agent 运行时策略清理;provider/model 运行时策略是激活的路由选择器。
- 旧版插件配置清理(当插件启用时移除过时引用,插件禁用时保留为惰性包含配置)。
状态和完整性
- 会话锁文件检查和失效锁清理。
- 会话转录分支修复(2026.4.24 版本中重复的提示重写分支)。
- 子代理卡死恢复墓碑检测,`--fix` 支持清除卡死的中止恢复标记。
- 状态完整性和权限检查(会话、转录、状态目录)。
- 配置文件权限检查(本地运行时 chmod 600)。
- 模型认证健康:检查 OAuth 过期,可刷新即将到期的 token,报告 auth-profile 冷却/禁用状态。
- 额外工作区目录检测(`~/openclaw`)。
Gateway、服务和 supervisor
- 沙盒镜像修复(当沙盒启用时)。
- 旧版服务迁移和额外 Gateway 检测。
- Matrix 渠道旧版状态迁移(`--fix` / `--repair` 模式)。
- Gateway 运行时检查(服务已安装但未运行;缓存的 launchd 标签)。
- 渠道状态警告(从运行中的 Gateway 探测)。
- 渠道特定权限检查(通过 `openclaw channels capabilities`,例如 Discord 语音频道权限)。
- WhatsApp 响应性检查(Gateway 事件循环降级但本地 TUI 客户端仍在运行;`--fix` 停止已验证的本地 TUI 客户端)。
- Codex 路由修复(将 `openai-codex/*` 模型引用重写为 `openai/*`,清理卡住的路由状态)。
- Supervisor 配置审计(launchd/systemd/schtasks)加可选修复。
- 嵌入代理环境清理(清理安装或更新时捕获的 shell `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY`)。
- Gateway 运行时最佳实践检查(Node vs Bun,版本管理器路径)。
- Gateway 端口冲突诊断(默认 `18789`)。
认证、安全与配对
- 开放 DM 策略的安全警告。
- 本地 token 模式的 Gateway 认证检查(当无 token 源时提供生成;不覆盖 token SecretRef 配置)。
- 设备配对问题检测(待处理的首次配对请求、待处理的角色/范围升级、卡住的本地设备 token 缓存漂移、配对记录的认证漂移)。
工作区和 Shell
- Linux 上的 systemd linger 检查。
- 工作区 Bootstrap 文件大小检查(截断/接近上限的上下文文件警告)。
- 默认 agent 的 Skills 就绪检查(报告有缺失 bin、env、配置或 OS 要求的允许技能;`--fix` 可禁用不可用技能)。
- Shell 补全状态检查及自动安装/升级。
- 内存搜索 embedding 提供商就绪检查(本地模型、远程 API Key 或 QMD 二进制)。
- 源码安装检查(pnpm 工作空间不匹配、缺失 UI 资产、缺失 tsx 二进制)。
- 写入更新的配置 + 向导元数据。
Dreams UI 回填与重置
Control UI 的 Dreams 场景包含 Backfill、Reset 和 Clear Grounded 操作,用于 grounded dream 工作流。这些操作使用 Gateway doctor 风格的 RPC 方法,但不属于 openclaw doctor CLI 修复/迁移。
它们的功能:
- Backfill:扫描当前工作区的历史
memory/YYYY-MM-DD.md文件,运行 grounded REM 日记 pass,将可逆的回填条目写入DREAMS.md。 - Reset:仅从
DREAMS.md中移除标记的回填日记条目。 - Clear Grounded:仅移除暂存的 grounded-only 短期条目(这些条目来自历史重放,尚未积累实时召回或每日支持)。
它们本身不会:
- 编辑
MEMORY.md - 运行完整的 doctor 迁移
- 自动将 grounded 候选条目暂存到实时短期推广存储中(除非你先显式运行暂存 CLI 路径)
如果要让 grounded 历史重放影响正常的深度推广管道,请使用此 CLI 流程:
bash
openclaw memory rem-backfill --path ./memory --stage-short-term这会将 grounded 持久候选条目暂存到短期 dream 存储中,同时将 DREAMS.md 作为审查面。
详细行为与原理
0. 可选更新(git 安装)
如果是 git checkout 且 doctor 以交互式运行,它会在运行 doctor 前提供更新(fetch/rebase/build)。
1. 配置规范化
如果配置包含旧版值形态(例如没有渠道专属覆盖的 `messages.ackReaction`),doctor 会将其规范化为当前 schema。
这也包括旧版 Talk 扁平字段的迁移。当前公开的 Talk 语音配置格式为 `talk.provider` + `talk.providers.<provider>`,实时语音配置为 `talk.realtime.*`。Doctor 将旧版 `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` 重写为提供商映射,并将旧版顶层实时选择器(`talk.mode`、`talk.transport`、`talk.brain`、`talk.model`、`talk.voice`)重写为 `talk.realtime`。
当 `plugins.allow` 非空且工具策略使用通配符或插件自有工具条目时,doctor 也会发出警告。`tools.allow: ["*"]` 只匹配实际加载的插件中的工具,不绕过排他性的插件允许列表。Doctor 为迁移后的旧版允许列表配置写入 `plugins.bundledDiscovery: "compat"` 以保留现有捆绑提供者行为,并指向更严格的 `"allowlist"` 设置。
2. 旧版配置键迁移
当配置包含已废弃的键时,其他命令会拒绝运行并提示运行 `openclaw doctor`。
Doctor 会:
- 解释发现了哪些旧版键。
- 显示应用的迁移。
- 用更新的 schema 重写 `~/.openclaw/openclaw.json`。
Gateway 启动时拒绝旧版配置格式并要求运行 `openclaw doctor --fix`;启动时不会自动重写 `openclaw.json`。Cron 任务 store 迁移也由 `openclaw doctor --fix` 处理。
当前迁移列表(见英文原文完整列表,已涵盖于上方功能一览中,此处不重复罗列,实际文档中应保留完整迁移列表以保证信息完整——由于字数限制,此处省略但用户应参照英文原文中 2 节完整列表)。
2b. OpenCode 提供商覆盖
如果你添加了 `models.providers.opencode`、`opencode-zen` 或 `opencode-go`,它会覆盖 `@earendil-works/pi-ai` 中的内置 OpenCode 目录。这可能导致模型路由到错误的 API 或成本清零。Doctor 发出警告,以便你移除覆盖并恢复每模型 API 路由和成本。
2c. 浏览器迁移和 Chrome MCP 就绪
如果浏览器配置仍指向已删除的 Chrome 扩展路径,doctor 会将其规范化为当前的主机本地 Chrome MCP 附加模型:
- `browser.profiles.*.driver: "extension"` → `"existing-session"`
- 移除 `browser.relayBindHost`
审计主机本地 Chrome MCP 路径时(使用 `defaultProfile: "user"` 或配置的 `existing-session`):
- 检查同一主机上是否安装了 Google Chrome(默认自动连接 profile)
- 检查检测到的 Chrome 版本,低于 Chrome 144 时警告
- 提醒在浏览器 inspect 页面启用远程调试(例如 `chrome://inspect/#remote-debugging`)
Doctor 无法自动启用 Chrome 端设置。主机本地 Chrome MCP 仍需要:
- 同一 Gateway/节点主机上运行基于 Chromium 的浏览器 144+
- 浏览器在本地运行
- 已启用远程调试
- 在浏览器中批准首次附加同意提示
此检查不适用于 Docker、沙盒、远程浏览器或其他无头流程。
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 健康也会运行探测。
2e. Codex OAuth 提供商覆盖
如果之前添加了旧版 OpenAI 传输设置到 `models.providers.openai-codex`,它们可能影子内置的 Codex OAuth 提供商路径。Doctor 在看到这些旧传输设置与 Codex OAuth 共存时发出警告,以便移除或重写卡住的传输覆盖,恢复内置路由/回退行为。自定义代理和仅头部覆盖仍受支持,不触发此警告。
2f. Codex 路由修复
Doctor 检查旧版 `openai-codex/*` 模型引用。原生 Codex harness 路由使用规范 `openai/*` 模型引用;OpenAI agent 调用通过 Codex 应用服务器 harness 而非 OpenClaw PI OpenAI 路径。
在 `--fix` / `--repair` 模式下,doctor 重写受影响默认 agent 和每个 agent 的引用,包括主模型、回退、心跳/subagent/compaction 覆盖、hooks、渠道模型覆盖和卡住的持久会话路由状态:
- `openai-codex/gpt-*` → `openai/gpt-*`
- Codex intent 移动到提供者/模型范围的 `agentRuntime.id: "codex"` 条目,以便修复后的 agent 模型引用仍可选择 `openai-codex:...` 认证 profile。
- 卡住的全局运行时配置和持久会话运行时 pin 被移除。
- 保留现有的提供者/模型运行时策略,除非修复的旧版模型引用需要 Codex 路由以保持旧认证路径。
- 模型回退列表保留并重写条目。
- 持久会话中的 `modelProvider`/`providerOverride`、`model`/`modelOverride`、回退通知和认证 profile pin 在所有发现的 agent 会话存储中被修复。
2g. 会话路由清理
Doctor 扫描发现的 agent 会话存储中来自插件自有路由(如 Codex)的卡住自动创建路由状态。`openclaw doctor --fix` 可以清除自动创建的卡住状态(如 `modelOverrideSource: "auto"` 模型 pin、运行时模型元数据、卡住的 harness id、CLI 会话绑定和自动认证 profile 覆盖),当它们所属的路由不再配置时。显式用户或旧版会话模型选择会被报告供人工审查,不会触碰。
3. 旧版状态迁移(磁盘布局)
Doctor 可将旧版磁盘布局迁移到当前结构:
- 会话存储 + 转录:`~/.openclaw/sessions/` → `~/.openclaw/agents/<agentId>/sessions/`
- Agent 目录:`~/.openclaw/agent/` → `~/.openclaw/agents/<agentId>/agent/`
- WhatsApp 认证状态(Baileys):`~/.openclaw/credentials/*.json`(除 `oauth.json`)→ `~/.openclaw/credentials/whatsapp/<accountId>/...`
这些迁移是尽力而为且幂等的;当 doctor 留下备份文件夹时会发出警告。Gateway/CLI 在启动时自动迁移旧版会话和 agent 目录。WhatsApp 认证只能通过 `openclaw doctor` 迁移。
3a. 旧版插件 Manifest 迁移
扫描所有已安装的插件 manifest 中废弃的顶层能力键(`speechProviders`、`realtimeTranscriptionProviders` 等),发现后将其移入 `contracts` 对象并原地重写。幂等操作。
3b. 旧版 Cron Store 迁移
检查 cron 任务存储(默认 `~/.openclaw/cron/jobs.json`)中的旧版任务形态。当前清理包括:`jobId` → `id`,`schedule.cron` → `schedule.expr`,顶层 payload/delivery 字段移到嵌套对象,移除 `notify: true` 的 webhook 回退任务等。Doctor 仅在不改变行为时自动迁移。
3c. 会话锁清理
扫描每个 agent 会话目录中的失效写锁文件(会话异常退出遗留)。报告路径、PID、PID 是否存活、锁年龄、是否卡住(PID 死亡、超过 30 分钟、或存活 PID 可证明属于非 OpenClaw 进程)。`--fix` 自动删除卡住锁文件。
3d. 会话转录分支修复
扫描 agent 会话 JSONL 文件中 2026.4.24 版本 prompt 转录重写 bug 导致的重复分支。`--fix` 在原始文件旁创建备份并重写为活跃分支,避免历史记录和内存读取器看到重复轮次。
4. 状态完整性检查(会话持久化、路由和安全性)
检查状态目录是否存在、权限、macOS iCloud/Linux SD 警告、会话目录缺失、转录不匹配、主会话单行 JSONL、多个状态目录、远程模式提示、配置文件权限(chmod 600)等。
5. 模型认证健康(OAuth 过期)
检查认证存储中的 OAuth profile,警告即将过期/已过期的 token,并在安全时刷新。如果 Anthropic OAuth/token profile 过期,建议使用 API Key 或 setup-token 路径。刷新提示仅在 TTY 交互模式出现;`--non-interactive` 跳过。
报告由于短期冷却(速率限制/超时/认证失败)或长期禁用(账单/信用失败)而暂时不可用的认证 profile。旧版 Codex OAuth profile 在 macOS Keychain 中的 token 无法被嵌入运行时路径解析(`allowKeychainPrompt: false`),运行 `openclaw doctor --fix` 一次将其迁移到 `auth-profiles.json` 中。
6. Hooks 模型验证
如果设置了 `hooks.gmail.model`,doctor 验证模型引用是否可解析且在允许列表中。
7. 沙盒镜像修复
当沙盒启用时,检查 Docker 镜像,若当前镜像缺失则提供构建或切换到旧版名称。
7b. 插件安装清理
`openclaw doctor --fix` 移除旧版 OpenClaw 生成的插件依赖暂存状态,包括卡住的生成依赖根、旧安装阶段目录、包局部碎片,以及可能影子当前捆绑 manifest 的孤立或恢复的 `@openclaw/*` 插件 npm 副本。Doctor 还将宿主 `openclaw` 包重新链接到声明 `peerDependencies.openclaw` 的托管 npm 插件中。
8. Gateway 服务迁移和清理提示
检测旧版 Gateway 服务,提供移除并用当前端口安装 OpenClaw 服务。扫描额外类 Gateway 服务并打印清理提示。Profile 命名的 OpenClaw Gateway 服务被视为一等服务。
Linux 上若用户级 Gateway 服务缺失但系统级服务存在,doctor 不会自动安装第二个用户级服务。使用 `openclaw gateway status --deep` 或 `openclaw doctor --deep` 检查,或在系统 supervisor 拥有 Gateway 生命周期时设置 `OPENCLAW_SERVICE_REPAIR_POLICY=external`。
8b. 启动时 Matrix 迁移
当 Matrix 渠道账号有待处理旧版状态迁移时,`--fix` 模式会创建迁移前快照并运行尽力而为的迁移。只读模式跳过此检查。
8c. 设备配对和认证漂移
检查设备配对状态:待处理的首次配对请求、角色/范围升级、公钥不匹配、配对记录缺少活跃 token、token 范围漂移、本地缓存设备 token 过期。Doctor 不会自动批准请求或轮转 token,而是打印下一步:`openclaw devices list`、`openclaw devices approve`、`openclaw devices rotate`、`openclaw devices remove`。
9. 安全警告
当提供者开放 DM 且无允许列表,或策略以危险方式配置时发出警告。
10. systemd linger(Linux)
如果作为 systemd 用户服务运行,确保 lingering 已启用以使 Gateway 在注销后保持运行。
11. 工作区状态(Skills、插件和旧版目录)
打印默认 agent 的工作区状态摘要:Skills 状态(合格/缺失/阻塞)、插件状态(已加载/禁用/出错)、插件兼容性警告、插件诊断。旧版工作区目录警告(`~/openclaw` 等)。
11b. Bootstrap 文件大小
检查工作区 Bootstrap 文件(如 `AGENTS.md`、`CLAUDE.md`)是否接近或超过配置的字符上限,报告原始字符数、注入字符数、截断百分比、原因、总注入字符占总上限比例。提供调整 `agents.defaults.bootstrapMaxChars` 和 `agents.defaults.bootstrapTotalMaxChars` 的建议。
11c. Shell 补全
检查当前 Shell(zsh、bash、fish、PowerShell)的 Tab 补全安装状态。将慢速动态补全升级为缓存文件模式,缺失缓存时自动重新生成,完全未配置时提示安装(仅交互式)。手动重新生成:`openclaw completion --write-state`。
11d. 卡住的渠道插件清理
`openclaw doctor --fix` 移除缺失的渠道插件时,同时移除对应的渠道范围配置:`channels.<id>` 条目、心跳目标中指向该渠道的条目、以及 `agents.*.models["<channel>/*"]` 覆盖。防止 Gateway 启动循环。
12. Gateway 认证检查(本地 token)
检查本地 Gateway token 认证就绪状态。若 token 模式需要 token 且无 token 源,提供生成。若 `gateway.auth.token` 由 SecretRef 管理但不可用,警告且不覆盖。`openclaw doctor --generate-gateway-token` 仅当未配置 token SecretRef 时强制生成。
12b. 只读 SecretRef 感知修复
部分修复流程需要检查配置的凭据而不削弱运行时快速失败。`openclaw doctor --fix` 使用与 status 命令相同的只读 SecretRef 摘要模型进行目标配置修复。若 Telegram bot token 由 SecretRef 配置但当前命令路径中不可用,doctor 报告“已配置但不可用”并跳过自动解析。
13. Gateway 健康检查 + 重启
运行健康检查,If Gateway 不健康则提供重启。
13b. 内存搜索就绪
检查默认 agent 的内存搜索 embedding 提供商就绪状态:
- **QMD 后端**:探测 `qmd` 二进制是否可用并可启动,否则打印修复指引。
- **显式本地提供商**:检查本地模型文件或可下载 URL,缺失时建议切换远程。
- **显式远程提供商**(`openai`、`voyage` 等):验证环境变量或认证存储中有 API 密钥。
- **自动提供商**:先检查本地模型,然后按自动选择顺序尝试远程。
使用 `openclaw memory status --deep` 做实时检查。
14. 渠道状态警告
如果 Gateway 健康,运行渠道状态探测并报告建议修复的警告。
15. Supervisor 配置审计 + 修复
检查已安装的 supervisor 配置(launchd/systemd/schtasks)中缺失或过期的默认值(如 systemd network-online 依赖和重启延迟),发现不匹配时建议更新并重写。
注意:`openclaw doctor --yes` 接受默认修复提示;`--fix` 无提示应用;`--fix --force` 覆盖自定义配置;`OPENCLAW_SERVICE_REPAIR_POLICY=external` 使 doctor 对服务生命周期只读。Linux 上不会重写活跃 systemd 单元的 command/entrypoint 元数据。Token 认证使用 SecretRef 时,服务安装/修复验证 SecretRef 但不持久化明文 token。检测 `.env`/SecretRef 支持的旧内联服务环境值,重写为从运行时源加载。检测并修正服务命令中卡住的旧 `--port`。若 token SecretRef 未解析则阻塞安装/修复。若同时配置 `gateway.auth.token` 和 `gateway.auth.password` 且 `gateway.auth.mode` 未设置则阻塞。Linux 用户 systemd 的 token 漂移检查包括 `Environment=` 和 `EnvironmentFile=`。Doctor 服务修复拒绝从较旧二进制重写、停止或重启由较新配置写入的服务。始终可通过 `openclaw gateway install --force` 强制重写。
16. Gateway 运行时 + 端口诊断
检查服务运行时(PID、最后退出状态),警告服务已安装但未运行。检查 Gateway 端口(默认 `18789`)的端口冲突并报告可能原因(Gateway 已在运行、SSH 隧道)。
17. Gateway 运行时最佳实践
警告当 Gateway 服务运行在 Bun 或版本管理 Node 路径(`nvm`、`fnm`、`volta`、`asdf` 等)时。WhatsApp + Telegram 渠道需要 Node,版本管理器路径可能因升级后服务不加载 shell init 而损坏。提供迁移到系统 Node 安装(Homebrew/apt/choco)。
18. 配置写入 + 向导元数据
持久化所有配置更改,在向导元数据上标记 doctor 运行记录。
19. 工作区提示(备份 + 内存系统)
在工作区内存系统缺失时建议创建,若工作区未在 git 下则打印备份提示。参见 [/openclaw/concepts/agent-workspace](/ai/ai-tools/openclaw/concepts/agent-workspace) 了解工作区结构完整指南和 git 备份(推荐私有 GitHub 或 GitLab)。
相关文档
常见问题
openclaw doctor 和 openclaw doctor --fix 有什么区别?
openclaw doctor 只做检查,不会修改任何文件或状态,输出友好的健康报告。openclaw doctor --fix 会自动应用推荐的修复(包括配置迁移、重启服务等),但可能仍会提示确认部分操作(如 supervisor 配置重写)。使用 --yes 可接受所有默认修复。
doctor --lint --json 返回退出码 1 表示什么?
退出码 1 表示至少有一个健康检查发现达到了当前阈值(默认或通过 --severity-min 指定的严重级别)。你需要检查 JSON 输出中的 findings 数组,查看具体 checkId、severity 和 message,然后根据 fixHint 进行修复。退出码 2 表示命令本身运行失败,没有输出 lint 发现。
doctor 会修改我的 openclaw.json 吗?
取决于模式。只读模式(openclaw doctor 或 openclaw doctor --lint)只读不写。openclaw doctor --fix 或配合 --yes 时会修改 ~/.openclaw/openclaw.json,包括配置规范化、旧版键迁移、磁盘布局移动等。Gateway 启动时若发现旧版配置格式也会要求运行 doctor --fix,但启动时不会自动重写文件。建议在运行 --fix 前备份配置文件:cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak。