Description
The image tool consistently returns Unknown model for any custom provider configured in models.json or openclaw.json. Only built-in providers (openai, anthropic, google) appear to work.
Environment
- OpenClaw version: 2026.4.21 (f788c88)
- OS: macOS 15.4 (arm64)
- Node: v24.5.0
Steps to Reproduce
- Configure a custom provider (e.g.,
astroncodingplan, minimax-portal, volcengine-plan, bailian) with input: ["text", "image"] in models.json
- Set
agents.defaults.imageModel.primary to a custom provider model (e.g., astroncodingplan/astron-code-latest)
- Send an image to the agent
- Observe the error:
Unknown model: astroncodingplan/astron-code-latest
Expected Behavior
The image tool should resolve and use custom provider models just like the text chat model does.
Actual Behavior
All custom provider models return Unknown model. The logs show:
[media-understanding] image: failed (0/1) reason=Model does not support images
[tools] image failed: Unknown model: astroncodingplan/astron-code-latest
[tools] image failed: Unknown model: minimax-portal/MiniMax-M2.7-highspeed
[tools] image failed: Unknown model: volcengine-plan/doubao-seed-2.0-pro
[tools] image failed: Unknown model: bailian/kimi-k2.5
[tools] image failed: Unknown model: dashscope/qwen-vl-max
When the model name is specified without a provider prefix (e.g., astron-code-latest), it defaults to openai/ prefix:
[tools] image failed: Unknown model: openai/astron-code-latest
Additional Context
- The same custom providers work correctly for text chat (model failover works)
- Direct API calls to these providers with image input work fine (tested with Python)
zai/glm-5v-turbo is recognized but fails with connection timeout (separate issue)
- The
models.json file in ~/.openclaw/agents/main/agent/models.json contains all providers with correct input: ["text", "image"] configuration
- Running
openclaw configure generates the models.json file with the providers listed
Workaround
Using Python to call the provider API directly for image analysis, bypassing the OpenClaw image tool.
Description
The
imagetool consistently returnsUnknown modelfor any custom provider configured inmodels.jsonoropenclaw.json. Only built-in providers (openai, anthropic, google) appear to work.Environment
Steps to Reproduce
astroncodingplan,minimax-portal,volcengine-plan,bailian) withinput: ["text", "image"]inmodels.jsonagents.defaults.imageModel.primaryto a custom provider model (e.g.,astroncodingplan/astron-code-latest)Unknown model: astroncodingplan/astron-code-latestExpected Behavior
The image tool should resolve and use custom provider models just like the text chat model does.
Actual Behavior
All custom provider models return
Unknown model. The logs show:When the model name is specified without a provider prefix (e.g.,
astron-code-latest), it defaults toopenai/prefix:Additional Context
zai/glm-5v-turbois recognized but fails with connection timeout (separate issue)models.jsonfile in~/.openclaw/agents/main/agent/models.jsoncontains all providers with correctinput: ["text", "image"]configurationopenclaw configuregenerates themodels.jsonfile with the providers listedWorkaround
Using Python to call the provider API directly for image analysis, bypassing the OpenClaw image tool.