#how image model is working

1 messages · Page 1 of 1 (latest)

smoky sorrel
#

{
"agents": {
"defaults": {
"imageModel": "google-gemini-cli/gemini-3-flash-preview"
}
}
}

how this settigs works? for image openclaw will always relies on imageModel from this setting?

viscid dustBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

velvet frigateBOT
#

agents.defaults.imageModel is not “the model for everything when an image exists” — it has two specific jobs:

  1. Tool image uses it (by default)
  • The image tool (“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 uses agents.defaults.imageModel.
    Source: /docs/tools/index.md + config reference notes.
    Docs: https://docs.openclaw.ai/tools (see image tool)
  1. 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.imageModel as the fallback path for the image input.
    Docs: https://docs.openclaw.ai/gateway/configuration-reference (see agents.defaults.model / imageModel)
    Docs: https://docs.openclaw.ai/concepts/models (“agents.defaults.imageModel is 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.

smoky sorrel
#

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?