openclaw doctor

Gateway 和 channel 的健康检查与自动修复工具。

用法

openclaw doctor
openclaw doctor --repair          # 应用推荐的非服务类修复
openclaw doctor --deep            # 扫描系统服务,报告额外 gateway 实例
openclaw doctor --repair --non-interactive
openclaw doctor --generate-gateway-token

主要选项

选项说明
--repair / --fix自动应用非服务类修复(服务安装/重写仍需交互确认)
--force激进修复,包括覆盖自定义服务配置
--non-interactive无提示运行,仅执行安全迁移和非服务修复
--deep扫描系统服务,报告近期 supervisor 重启切换
--generate-gateway-token生成并配置 gateway token
--no-workspace-suggestions禁用 workspace 内存/搜索建议

修复能力

  • 配置迁移:将 openai-codex/* 模型引用重写为规范的 openai/* 引用
  • 插件修复:清理缺失插件的 plugins.allow/deny/entries,修复悬空 channel 配置
  • 插件隔离:将无效插件配置的 plugins.entries.<id> 禁用并移除无效 config payload
  • Talk 迁移:将旧版扁平 Talk 配置迁移到 talk.provider + talk.providers.<provider>
  • Cron 迁移:扫描并重写 ~/.openclaw/cron/jobs.json 中的旧版 cron job 格式
  • 沙箱修复:迁移旧版 sandbox registry 文件到分片目录

注意事项

  • Nix 模式(OPENCLAW_NIX_MODE=1)下,--fix、--repair、--generate-gateway-token 被禁用
  • 交互式提示(keychain/OAuth 修复)仅在 stdin 为 TTY 且未设置 --non-interactive 时运行
  • --fix 写入备份到 ~/.openclaw/openclaw.json.bak,并列出每个被删除的未知配置键
  • 设置 OPENCLAW_SERVICE_REPAIR_POLICY=external 可跳过服务安装/重启,仅做非服务修复

macOS launchctl 覆盖问题

若曾用 launchctl setenv 设置过 token,会导致持续 “unauthorized” 错误:

launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD

相关链接