Skip to content

openclaw doctor

Gateway 和频道的健康检查 + 快速修复工具。

相关文档:

示例

bash
openclaw doctor
openclaw doctor --repair
openclaw doctor --deep

注意事项

  • 交互式提示(如 keychain/OAuth 修复)仅在 stdin 为 TTY 且未设置 --non-interactive 时运行。无头运行(cron、Telegram、无终端)会跳过提示。
  • --fix--repair 的别名)会将备份写入 ~/.openclaw/openclaw.json.bak,然后删除未知配置键,并逐一列出每次删除操作。
  • 状态完整性检查现在可以检测 sessions 目录中的孤立转录文件,并将其归档为 .deleted.<timestamp> 以安全地回收空间。
  • Doctor 还会扫描 ~/.openclaw/cron/jobs.json(或 cron.store)中的旧版 cron 任务格式,并可在调度器运行时自动规范化之前就地重写。
  • Doctor 包含内存搜索就绪性检查,当嵌入凭证缺失时可推荐运行 openclaw configure --section model
  • 如果启用了沙箱模式但 Docker 不可用,doctor 会报告高优先级警告并给出修复建议(安装 Dockeropenclaw config set agents.defaults.sandbox.mode off)。
  • 如果 gateway.auth.token/gateway.auth.password 由 SecretRef 管理且在当前命令路径下不可用,doctor 会报告只读警告,不写入明文备用凭证。
  • 如果修复路径中的频道 SecretRef 检查失败,doctor 会继续运行并报告警告,而不是提前退出。
  • Telegram allowFrom 用户名自动解析(doctor --fix)需要在当前命令路径下有可解析的 Telegram token。如果 token 检查不可用,doctor 会报告警告并跳过该轮的自动解析。

macOS:launchctl 环境变量覆盖问题

如果你之前运行过 launchctl setenv OPENCLAW_GATEWAY_TOKEN ...(或 ...PASSWORD),该值会覆盖配置文件,导致持续出现"unauthorized"错误——这是让龙虾"记住了错误密码"的常见坑。

检查并清除方法:

bash
launchctl getenv OPENCLAW_GATEWAY_TOKEN
launchctl getenv OPENCLAW_GATEWAY_PASSWORD

launchctl unsetenv OPENCLAW_GATEWAY_TOKEN
launchctl unsetenv OPENCLAW_GATEWAY_PASSWORD

建议:每次升级 OpenClaw 或修改认证配置后,养成运行 openclaw doctor 的习惯,可以快速发现潜在问题,避免半夜龙虾"罢工"。