Repository navigation
Description
π Bug Report (νκ΅μ΄ μμ½ μλ)
Bug type
Behavior bug (incorrect output/state without crash)
Summary
Users subscribed to the OpenCode Go provider (via opencode-go) cannot use the image tool with vision-capable models (kimi-k2.6, minimax-m2.7, glm-5, mimo-v2-omni, qwen3.6-plus, etc.) even though these models support multimodal/vision capabilities through the OpenCode Go API.
νκ΅μ΄ μμ½: OpenCode Go νλ‘λ°μ΄λλ₯Ό ꡬλ νμ¬ OpenClawμ μ°κ²°ν μ¬μ©μλ€μ΄, ν΄λΉ νλ‘λ°μ΄λμ λ©ν°λͺ¨λ¬/λΉμ λͺ¨λΈλ€(kimi, minimax, glm, mimo, qwen λ±)λ‘ μ΄λ―Έμ§ λΆμ κΈ°λ₯μ μ¬μ©ν μ μλ λ²κ·Έμ λλ€.
Steps to reproduce
- Subscribe to OpenCode Go and configure
agents.defaults.model.primaryto a vision-capable model (e.g.,opencode-go/kimi-k2.6) - Do NOT set
agents.defaults.imageModel - Send an image to the agent
- Observe that the
imagetool is either missing or fails withNo media-understanding provider registered for opencode-go
μ¬ν λ°©λ²: OpenCode Goλ₯Ό ꡬλ
νμ¬ agents.defaults.model.primaryλ₯Ό opencode-go/kimi-k2.6 λ±μΌλ‘ μ€μ νκ³ , imageModelμ μ€μ νμ§ μμ μ± μ΄λ―Έμ§λ₯Ό μ μ‘νλ©΄ μ΄λ―Έμ§ ν΄μ΄ λ
ΈμΆλμ§ μκ±°λ "No media-understanding provider registered for opencode-go" μλ¬κ° λ°μν©λλ€.
Expected behavior
The image tool should work with opencode-go vision-capable models, analyzing the uploaded image using the same model.
κΈ°λ λμ: OpenCode Go νλ‘λ°μ΄λμ λΉμ λͺ¨λΈλ‘ μ΄λ―Έμ§λ₯Ό λΆμν μ μμ΄μΌ ν©λλ€.
Actual behavior
- If no explicit
imageModelis configured:createImageTool()returnsnullbecauseresolveImageModelConfigForTool()cannot find a config-driven fallback foropencode-go - Even with PR fix(image): keep tool available for vision-capable runtime modelsΒ #62266's runtime fallback: the actual invocation may still fail because
opencode-gohas no registeredMediaUnderstandingProvider
μ€μ λμ: imageModel μ€μ μ΄ μμΌλ©΄ createImageTool()μ΄ nullμ λ°ννκ³ , PR #62266μ λ°νμ fallbackμ΄ μ μ©λμ΄λ μ€μ μ€ν μ opencode-goμ λ±λ‘λ MediaUnderstandingProviderκ° μμ΄μ μ€ν¨ν©λλ€.
Verified Affected Models
The following opencode-go models are confirmed to show input: ["text"] only in the catalog, despite being vision-capable:
opencode-go/kimi-k2.6(my current session model)opencode-go/minimax-m2.7opencode-go/glm-5opencode-go/mimo-v2-omniopencode-go/qwen3.6-plus
Note: opencode-go/glm-5.1 is not vision-capable and is not affected by this issue.
νμΈλ μν₯ λͺ¨λΈ: μ λͺ¨λΈλ€μ μ€μ λ‘ λΉμ κΈ°λ₯μ μ§μνμ§λ§, OpenClaw μΉ΄νλ‘κ·Έμμλ input: ["text"]λ‘λ§ νμλ©λλ€. glm-5.1μ λΉμ κΈ°λ₯μ΄ μμ΄ ν΄λΉλμ§ μμ΅λλ€.
Root Causes
- Missing
MediaUnderstandingProviderregistration:extensions/opencode-go/index.tsdoes not callapi.registerMediaUnderstandingProvider(). Other providers likeminimaxandopenaido register one. - Missing
imageinput capability in model catalog: Vision-capable models in the opencode-go catalog are listed with onlyinput: ["text"]instead ofinput: ["text", "image"].
κ·Όλ³Έ μμΈ:
extensions/opencode-go/index.tsμapi.registerMediaUnderstandingProvider()νΈμΆμ΄ μμ. minimax, openai λ± λ€λ₯Έ νλ‘λ°μ΄λλ λ±λ‘λμ΄ μμ.- λͺ¨λΈ μΉ΄νλ‘κ·Έμμ λΉμ λͺ¨λΈλ€μ΄
input: ["text"]λ‘λ§ νμλ¨. μ€μ λ‘λinput: ["text", "image"]μ¬μΌ ν¨.
Related Issues/PRs
- [Bug]: image tool not available when using provider aliases (e.g. opencode/xxx models)Β #61789 β image tool not available when using provider aliases (similar runtime issue)
- fix(image): keep tool available for vision-capable runtime modelsΒ #62266 β fix(image): keep tool available for vision-capable runtime models (Greptile review flagged the exact same missing provider gap for opencode-go)
- [Bug] Image tool broken in 2026.3.22 - No media-understanding provider registeredΒ #53093 β Image tool broken in 2026.3.22 (historical regression)
κ΄λ ¨ μ΄μ: #61789(μ μ¬ν λ°νμ μ΄μ), #62266(Greptileμ΄ opencode-goμ λμΌν provider λλ½ μ§μ ), #53093(κ³Όκ±° νκ·)
OpenClaw version
2026.4.21
Operating system
macOS (but affects all platforms)
Model
opencode-go/kimi-k2.6, opencode-go/minimax-m2.7, opencode-go/glm-5, opencode-go/mimo-v2-omni, opencode-go/qwen3.6-plus
Provider / routing chain
OpenClaw β opencode-go provider β OpenCode Go API
Suggested Fix
- Add
media-understanding-provider.tstoextensions/opencode-go/following the OpenAI-compatible pattern (OpenCode Go API is OpenAI-compatible) - Register it in
extensions/opencode-go/index.ts - Update opencode-go model catalog to mark vision-capable models with
input: ["text", "image"]
μ μνλ μμ :
extensions/opencode-go/μmedia-understanding-provider.tsμΆκ° (OpenAI-compatible ν¨ν΄ μ¬μ©, OpenCode Go APIλ OpenAI-compatible)extensions/opencode-go/index.tsμμ λ±λ‘- λΉμ λͺ¨λΈλ€μ μΉ΄νλ‘κ·Έλ₯Ό
input: ["text", "image"]λ‘ μ λ°μ΄νΈ
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Activity
fix(opencode-go): Add media-understanding provider for vision-capableβ¦
steipete commentedon Apr 25, 2026
Fixed on main in 7e52223.
What changed:
opencode-gonow registers a plugin-owned media-understanding image provider.opencode-gomanifest now declares media-understanding metadata, so image-tool resolution can find the Go catalog image default before runtime provider load.opencode-go/kimi-k2.5, which the current Pi catalog marks asinput: ["text", "image"].opencode, covering the older provider-alias image-tool gap.Verification:
pnpm test extensions/opencode/index.test.ts extensions/opencode/media-understanding-provider.test.ts extensions/opencode/plugin-registration.contract.test.ts extensions/opencode-go/index.test.ts extensions/opencode-go/media-understanding-provider.test.ts extensions/opencode-go/plugin-registration.contract.test.ts src/media-understanding/defaults.test.ts src/agents/tools/image-tool.test.tspnpm check:changed~/.profileOpenCode auth:opencode-go/kimi-k2.5accepted a generated PNG image payload through OpenCode Go and returned text (Red).One note: current Pi metadata already marks several Go models (
kimi-k2.5,kimi-k2.6,mimo-v2-omni,qwen3.5-plus,qwen3.6-plus) as image-capable.minimax-m2.7is still text-only in Pi metadata, so the image tool pairs Go sessions to the plugin default instead of assuming every Go model is vision-capable.