让OpenClaw摆脱只识字不认图-多模型配置,fallback备胎模型
OpenClaw 支持为不同媒体类型指定独立的模型,而不是所有请求都走同一个模型。可能你也遇到过,文字聊天非常聪明,发一张图过去,就是另一个画风,要么无法识别,要么识别成了你都不认识的样子。这主要是我们所使用的模型可能无法直接处理图片导致的。本文详细说明OpenClaw的多模型配置,以便在对应的场景选择最合适的模型,提升OpenClaw的综合能力。一、六种模型角色
model → 主对话模型(文本回复)
imageModel → 图片理解(Vision)
imageGenerationModel → 文生图 / 图生图
pdfModel → PDF 文档阅读理解
videoGenerationModel → 视频生成
musicGenerationModel → 音乐生成
为了更好的识别图片,我们最好为OpenClaw配置一个专用的imageModel。如果某角色没有显式配置,OpenClaw 会从已注册的供应商模型列表中 auto-detect 第一个支持该能力的模型。
与此同时,OpenClaw还支持模型primary + fallbacks功能,这一点对于主模型使用国外厂商的情况就很好用了。为了避免OpenClaw因为模型访问的网络问题而超时或直接罢工,我们可以为OpenClaw配置fallback model(实际上是一个数组),当主模型不可用或报错时,OpenClaw会自动降级到fallback模型完成请求,切换过程中用户无感。二、imageModel 什么时候被调用,为什么有时候不配置也能识别并不是所有图片都走 imageModel。实际大部分时候的流程:
-
渠道收到图片 → 判断主模型(model)是否原生支持 Vision
-
支持 → 图片直接传给主模型,imageModel 不参与
-
不支持 → 图片转给 imageModel 做理解,结果以 [Image: 描述] 摘要注入 Prompt
所以在配置前我们收到的回复是主模型生成的,只是它”看到了”图片的摘要描述,或者它本身就是一个多模态的模型,可以识别图片。三、tools.media – 关注媒体预处理,也是一种办法agents.defaults.imageModel 控制的是模型路由——谁来处理图片。tools.media.image 控制的是入站媒体预处理——在 Agent 收到消息之前,先用一个模型把图片/音频/视频转成文字摘要。两者独立,可同时启用,也可只用其中一个。
入站媒体 → tools.media 预处理(可选)→ Agent 主循环 → model/imageModel 推理
四、其他类型附件的处理建议
|
类型 |
处理器 |
|---|---|
|
图片 |
imageModel 或主模型 Vision |
|
音频 |
tools.media.audio → 语音转文字 |
|
视频 |
tools.media.video(如 Gemini) |
|
|
pdfModel → imageModel → 主模型,逐级兜底 |
|
Word / EPUB |
不在媒体管道内,渠道仅下载,Agent 需用 exec 调用 pandoc 等工具提取文字 |
五、总结
模型配置决定”谁来看”,tools.media 决定”要不要先转成文字”。
两者配合,让每个媒体类型走最合适的模型和处理路径。
配置示例:
{
agents: {
defaults: {
model: { primary: “deepseek/deepseek-v4-flash” },
imageModel:{ primary: “siliconflow/Qwen/Qwen3-VL-32B-Instruct” },
pdfModel: { primary: “anthropic/claude-opus-4-6” },
}
},
tools: {
media: {
audio: { enabled: true, models: […] },
image: { enabled: true, maxBytes: 10485760 },
}
}
}
配好之后,发图、发语音、传 PDF,OpenClaw 会自动走对应模型处理,这些都会自动处理好,不用在对话里反复切换。
夜雨聆风