首页龙虾技能列表 › Model Failover Doctor — OpenClaw 故障转移诊断与修复

Model Failover Doctor — OpenClaw 故障转移诊断与修复

v1.0.0

诊断和修复 OpenClaw '所有模型失败' 错误,通过检测无效模型 ID、提供商不匹配和会话回退问题,支持选项自动修复。确保 OpenClaw 服务的稳定性和正常运行。

0· 315·3 当前·4 累计
by @halfmoon82·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/11
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
安全
high confidence
该技能的代码和指令与其声明的目的一致:仅检查和(可选)编辑 OpenClaw 故障转移相关文件(位于用户主目录下)并可以重启网关;不请求外部凭据或尝试网络数据泄漏。
评估建议
该工具似乎做了它声称的:诊断和可选自动修复故障转移配置问题,通过读写 OpenClaw 配置文件和重启网关。运行 `--fix` 或 `--restart` 之前,请先运行 `--dry-run` 预览更改,检查生成的备份,手动审查提议的编辑,以确保与您的路由/覆盖匹配。建议在维护窗口内运行修复,因为网关重启会影响可用性。如果有顾虑,可以打开脚本和相关文件以验证行为——提供的代码中没有网络调用或凭据泄漏的迹象。...
详细分析 ▾
用途与能力
名称/描述与代码和 SKILL.md 的行为一致:通过读写 OpenClaw 配置文件(message-injector、pools.json、session_model_state.json)和创建备份来检测和修复故障转移问题。没有请求无关的凭据或二进制文件。
指令范围
SKILL.md 和脚本指示读取和修改 ~/.openclaw 下的文件(openclaw.json、.lib/pools.json、.lib/session_model_state.json 和 message-injector index.ts)。它还支持 --dry-run、--fix 和 --restart。这些操作适用于故障转移修复工具的范围,但注意脚本会读取潜在敏感的配置文件,并在使用 --fix 时写入这些文件(首先创建时间戳备份)。
安装机制
无安装规格;该技能仅为指令+脚本。没有从外部 URL 下载内容,也没有安装新二进制文件。
凭证需求
该技能不请求环境变量或外部凭据。它在 ~/.openclaw 内操作配置文件,这对于一个修复网关/会话配置的工具是合适的。访问这些文件对于其声明的目的是必要的。
持久化与权限
该技能不是始终运行的,也不请求提升的平台权限。它修改 OpenClaw 配置/扩展文件(message-injector、pools/会话状态)并在其工作空间区域写入备份;这对于一个修复工具是预期的。默认允许自主调用,但这是平台规范,不是这里的独特关注点。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/3/5

Model Failover Doctor 技能的初始发布:- 诊断和修复 OpenClaw '所有模型失败' 错误。- 提供明确的触发条件(例如,跨提供商的相同模型 ID 失败,重启后消息失败,手动编辑错误)。- 支持仅诊断、自动修复(含网关重启)和干运行预览模式。- 包含常见问题的根因快速参考表和自动修复可用性。- 详细描述最常见的根因(MI-1)和其解决方案。- 确保所有自动修复都备份以确保安全和手动恢复。

● 可疑

安装命令 点击复制

官方npx clawhub@latest install model-failover-doctor
镜像加速npx clawhub@latest install model-failover-doctor --registry https://cn.clawhub-mirror.com

技能文档

诊断和修复 OpenClaw '所有模型失败' 错误的专用工具。

触发条件

遇到以下任何一种情况时,调用此工具:
  • 日志或用户报告 All models failed (N),且 N 个 provider 的错误信息中模型 ID 全部相同
- 例:kimi-coding/k2p5: No available channel for model openai/gpt-5.3-codex ← 提供商和模型不匹配
  • agent 重启后第一条消息必然失败,但后续消息正常(冷启动会话无 fallbackChain)
  • pools.json 或 session_model_state.json 手动编辑后 agent 开始报 503 model_not_found

诊断命令

# 仅诊断,不修改任何文件
python3 ~/.openclaw/workspace/skills/model-failover-doctor/model_failover_doctor.py
# 诊断 + 自动修复 + 重启网关
python3 ~/.openclaw/workspace/skills/model-failover-doctor/model_failover_doctor.py --fix --restart
# 预览将要修改的内容(不实际写入)
python3 ~/.openclaw/workspace/skills/model-failover-doctor/model_failover_doctor.py --dry-run

根因速查表

症状代码严重自动修复
所有 fallback 的模型 ID 相同(提供商已切换但模型没变)MI-1🔴
同一死亡模型被不同会话/子代理反复踩坑MI-2🟡❌ 需手动
pools.json 中引用了不存在的提供商P-1🔴
会话无 fallbackChain,运行时回退永远无法推进S-1🔴
会话回退链包含无效提供商前缀S-2🔴
## 根因 MI-1 详解(最常见) 问题message-injectorbefore_agent_start 无条件返回:
return { modelOverride, providerOverride, ... }
后果:网关尝试每个回退时都携带相同的 modelOverride,导致 kimi-codingzaiminimax 等收到了错误的模型 ID。 修复:包装在 lockModel 条件中,正常路由只依赖 sessions.patch
return { ...(lockModel ? { modelOverride, providerOverride } : {}), ... }

备份说明

所有自动修复操作会在 ~/.openclaw/workspace/.lib/.mfd_backups/ 创建时间戳备份, 可随时手动恢复。

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务