3.2 常用诊断命令与日志排障
本节把排障从”看报错猜原因”变成基于官方命令与日志证据的分层定位。核心思路是先用 health 与 status 判断系统是否可用,再用 channels status --probe 与 models status --check 分别验证渠道与模型依赖,最后通过 doctor 与诊断配置把敏感信息脱敏后采样留证。
本节涉及的所有 CLI 命令均可在附录 E 命令速查表中查阅完整语法与参数说明;更系统化的检查流程另见附录 C 排障检查清单。
3.2.1 分层定位顺序:先外后内
建议固定排障顺序。
进程与健康:服务是否可用。
网关与渠道:渠道是否连通、是否被策略拒绝。
模型与配额:模型是否可用、是否限流或认证失败。
会话与工具:是否串话、是否被工具策略拦截。
命令梯子流程图:
图 3-2:命令梯子流程图
3.2.2 四个命令覆盖 80% 排障
操作示例:先跑一遍健康与状态探测,再分别验证渠道与模型依赖,把问题定界到可执行动作。
命令 1:健康检查
openclaw health --json✅ 正常输出
完整的健康检查响应比 3.1 节的最小示例包含更多字段(如 fallback 模型和 last_check 时间戳)。以下为完整格式:
❌ 常见异常
排查建议:
status: "degraded"表示部分组件故障,优先检查errors数组。token expired需要刷新渠道凭据;rate limit需要检查配额与成本控制。
命令 2:状态总览与深度探测
✅ 正常输出(示例)
❌ 常见异常
排查建议:
内存接近上限 >90%,考虑重启网关或扩容。
渠道出现
disconnected,立即检查凭据与网络连接。模型配额 100%,需要增加额度或等待重置。
命令 3:渠道状态与连通性探针
✅ 正常输出
❌ 常见异常
排查建议:
bot_token_invalid:需要更新凭据,参考输出中的命令提示。webhook_latency过高 (>2000ms):检查网络连接、防火墙、对方 API 服务状态。若
http_status为 5xx,对方服务可能故障,稍后重试。
命令 4:模型状态与认证探针
✅ 正常输出
❌ 常见异常
排查建议:
authentication_failed:API 密钥过期或无效,需要刷新凭据,参考输出中给出的管理链接。rate_limited且 quota percent = 100%:配额已用尽,需要增加额度或等待重置时间。若 latency >2000ms,检查网络连接或对方 API 服务是否出现性能问题。
3.2.3 日志与落盘位置:先找到证据
官方说明中,日志默认写入 /tmp/openclaw/openclaw-YYYY-MM-DD.log(以下示例中的 runtime.log 均指代该默认日志路径,实际路径以配置为准)。建议在排障时同时开启 follow 与结构化输出,便于 jq 过滤。也可以直接通过 Dashboard 的 Logs 选项卡实时查看系统运行状态:

图 3-3:Logs 实时监控界面
操作示例:统计某类错误类型的出现频率,快速判断是否为认证或限流类故障。字段名以实际日志为准。
3.2.4 doctor 与诊断配置:可修复、可脱敏、可留证
官方提供 doctor 用于诊断与修复常见问题,并提供诊断配置用于脱敏与控制日志落盘。
配置示例(从官方示例改写,突出脱敏与落盘):
[!WARNING] OpenClaw 对配置有严格的 Schema 校验。如果配置了未知的键,Gateway 将拒绝启动,并仅允许使用
openclaw doctor等诊断命令恢复配置。
3.2.5 典型场景:渠道不响应时如何快速判断
若
health失败:先看进程与端口,再看配置语法与权限。若
channels status --probe失败:优先检查渠道凭据与登录状态。若
models status --check失败:优先检查认证、配额与供应商状态。
排障时不建议先改提示词或工作流;先把依赖与证据链确认下来。
3.2.6 斜杠命令速查:日常高频操作
除了上述系统级诊断命令,OpenClaw 还提供了一套可在聊天界面中直接使用的斜杠命令,用于快速控制智能体行为。以下是最常用的命令速查表:
/status
查看当前运行状态
小龙虾卡住不回复时,先发这个定位问题
/stop
停止当前正在执行的任务
配合 /status 使用;发现任务卡住后强制终止
/compact
压缩当前会话上下文
token 快满时使用,压缩后仍保留核心记忆
/new
开启全新会话
切换话题时避免上下文污染
/model <名字>
切换当前使用的模型
简单任务用便宜模型,复杂任务切强模型,控制成本
/think <级别>
调整思考深度(off / low / high)
日常闲聊用 off 省 token,复杂推理开 high
[!TIP]
/status+/stop是排障第一步。当智能体长时间无响应时,先/status看状态,如果显示正在运行但无输出,多半是某个工具调用卡住了,发/stop让它恢复。
[!WARNING] 飞书不支持原生命令菜单(command menus),但支持以文本发送
/status、/reset、/model等常用命令。若需要更强的原生交互式命令体验,可使用其他支持指令菜单机制的渠道或 Control UI。
💡 踩坑实录:健康检查 \u201cok\u201d 但消息不通
openclaw health --json返回status: "ok",但 WhatsApp 消息始终无回复。最终发现是 Baileys 的 QR 配对过期了——Gateway 进程还在跑,但 WebSocket 连接已断开。channels status --probe才是真正的端到端探测命令,health只检查进程存活。生产环境建议两者都纳入监控。
最后更新于
