gateway日志:FailoverError: Unknown model: deepseek/deepseek-v4-flash
AI员工说:“让我修复模型配置。”
它把模型改成了 xiaomi/mimo-v2-flash。
400 Unsupported model。更糟了。

背景

AI团队的任务终于能派发了。但agent一直起不来——gateway日志:

FailoverError: Unknown model: deepseek/deepseek-v4-flash
Agent无法启动因为模型配置错误

deepseek/deepseek-v4-flash——这个模型【根本不存在】。我们的模型是小米的mimo,不是deepseek。

那这个deepseek是哪来的?

根因:一个"默认值"引发的连环错误

容器启动脚本 start.sh 创建agent时的模型逻辑:

# 默认模型:取已配置providers的第一个模型
provs = cfg.get('models', {}).get('providers', {})
default_model = 'deepseek/deepseek-v4-flash'   # ← 硬编码默认!
if provs:
    pname = list(provs.keys())[0]
    ...

看到了——providers为空时,default_model 硬编码成 deepseek/deepseek-v4-flash。

而providers(openclaw.json的模型配置)是配置中心【保存大模型配置】时写入的。新装系统、还没配置大模型就重启容器 → providers为空 → agent模型 = deepseek(不存在的模型)→ agent起不来。

AI登场:自己动手修配置

负责排障的AI统筹员工(我们叫它小飞)看到了报错,决定自己修:

"让我检查并修复模型配置..."
"模型 deepseek/deepseek-v4-flash 不可用。让我检查可用的模型:"

它打开openclaw.json,把agent模型改成了 xiaomi/mimo-v2-flash——然后重启gateway。

结果:

400 Unsupported model mimo-v2-flash

mimo-v2-flash 也不存在。正确模型名是 mimo-v2.5。

AI修配置,就像蒙着眼换灯泡——它知道灯泡坏了,但不知道型号,随手抓了一个装上去,还是不亮。

排查:模型名从哪来?

小飞(AI)为什么写 mimo-v2-flash?因为它【猜的】——它看到provider叫"xiaomi",模型列表里大概有mimo系列,就拼了一个 “v2-flash”。

而正确的配置是用户【在配置中心填过的】:

{
  "provider": "xiaomi-token-plan",
  "base_url": "https://token-plan-cn.xiaomimimo.com/v1",
  "model": "mimo-v2.5"
}

provider的名字是 xiaomi-token-plan(不是 xiaomi),模型是 mimo-v2.5(不是 v2-flash)。

AI没有读配置中心保存的真实配置,而是凭"看起来差不多"猜。

修复:让默认值从真实配置来,而不是硬编码

# start.sh:providers为空时,读config.json的用户大模型配置
default_model = 'deepseek/deepseek-v4-flash'   # 兜底(理论上不该走到)
if provs:
    pname = list(provs.keys())[0]
    ...
else:
    try:
        _cfg_m = json.load(open('/vol1/1000/ai-team-collab/config/config.json', encoding='utf-8'))
        _mods = _cfg_m.get('models') or []
        if _mods:
            default_model = f"{_mods[0]['provider']}/{_mods[0]['model']}"
            # = xiaomi-token-plan/mimo-v2.5  ← 从用户真实配置来!
    except Exception:
        pass

正确配置后的最终形态:xiaomi-token-plan/mimo-v2.5(status=200 连通,agent秒醒)。

类比:装修队不问房东,自己买了扇门

房东说"我要白色的门"。装修队没确认尺寸型号,去建材市场随手买了扇门——白色是白色,但门框装不上。更气人的是,房东早就把门的尺寸写在了合同里(配置中心),装修队就是不看。

经验总结

  1. 默认值必须是"无配置时也不炸"的值——硬编码一个不存在的模型当默认,等于埋雷
  2. AI修配置,必须读配置中心,不能猜——模型名、provider名、base_url,全是有唯一正确答案的字段,猜就是错
  3. 错误信息要看全——Unknown model: deepseek 已经明确告诉你了:模型名不对。先确认"真实配置里模型叫什么",再动手
  4. AI的"修复"要复核——LLM改配置(openclaw.json这种关键文件),改完要diff验证,不能信它说"改好了"
  5. 配置的真相只有一个来源——用户配置中心保存的那份。其他任何地方(默认值/猜测)都是可能出错的分身
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐