Appearance
openclaw doctor
Gateway 和频道的健康检查 + 快速修复工具。
相关文档:
- 故障排查:Troubleshooting
- 安全审计:Security
示例
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 会报告高优先级警告并给出修复建议(
安装 Docker或openclaw 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的习惯,可以快速发现潜在问题,避免半夜龙虾"罢工"。