3.2 常用诊断命令与日志排障

本节把排障从”看报错猜原因”变成基于官方命令与日志证据的分层定位。核心思路是先用 healthstatus 判断系统是否可用,再用 channels status --probemodels status --check 分别验证渠道与模型依赖,最后通过 doctor 与诊断配置把敏感信息脱敏后采样留证。

本节涉及的所有 CLI 命令均可在附录 E 命令速查表中查阅完整语法与参数说明;更系统化的检查流程另见附录 C 排障检查清单

3.2.1 分层定位顺序:先外后内

建议固定排障顺序。

  1. 进程与健康:服务是否可用。

  2. 网关与渠道:渠道是否连通、是否被策略拒绝。

  3. 模型与配额:模型是否可用、是否限流或认证失败。

  4. 会话与工具:是否串话、是否被工具策略拦截。

命令梯子流程图:

spinner

图 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 选项卡实时查看系统运行状态:

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 只检查进程存活。生产环境建议两者都纳入监控。

最后更新于