#how image model is working
1 messages · Page 1 of 1 (latest)
agents.defaults.imageModel is not “the model for everything when an image exists” — it has two specific jobs:
- Tool
imageuses it (by default)
- The
imagetool (“analyze an image”) uses the image model directly, independent of your main chat model. - You can override per call with the tool param
model, but if you don’t, it usesagents.defaults.imageModel.
Source:/docs/tools/index.md+ config reference notes.
Docs: https://docs.openclaw.ai/tools (seeimagetool)
- Fallback routing when your selected chat model can’t take image input
- If your current/default chat model supports images, OpenClaw will just use that model for messages with images.
- If it doesn’t support images, OpenClaw will use
agents.defaults.imageModelas the fallback path for the image input.
Docs: https://docs.openclaw.ai/gateway/configuration-reference (seeagents.defaults.model/imageModel)
Docs: https://docs.openclaw.ai/concepts/models (“agents.defaults.imageModelis used only when the primary model can’t accept images.”)
About your config snippet
You’re using the short form:
{
"agents": {
"defaults": {
"imageModel": "google-gemini-cli/gemini-3-flash-preview"
}
}
}
That’s valid and means “set agents.defaults.imageModel.primary to this model”.
If you want fallbacks, use the object form:
{
agents: {
defaults: {
imageModel: {
primary: "google-gemini-cli/gemini-3-flash-preview",
fallbacks: ["...another vision model..."]
}
}
}
}
If you tell me what your main agents.defaults.model is, I can tell you whether your chat will typically use that directly for images (vision-capable) or hit the imageModel fallback.
so bassically openclaw will always try to use current/default chat model and if that dont work will use what is set on "agents": {
"defaults": {
"imageModel": "google-gemini-cli/gemini-3-flash-preview"
is this right? I understood properly?