一招解决opus接入opencode无法上传图片的问题!

2026-04-11 13:551阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

如果你想把opus 接入到opencode,你会发现它不能直接支持上传图片了,通过摸索,发现需要修改配置文件增加相关字段,以下是我让ai整理的教程,你把下面的内容直接发给你的ai,让它阅读并给你配置就可以了。

注意!
1、此方法只适合于使用第三方中转站提供的opus接入opencode后无法发图片的问题。
2、官方opus接入opencode需要做桥接,不在本帖讨论范围。

============================================

OpenCode Opus 图片支持配置教程

说明

文中的占位写法都可以按你自己的实际环境替换。

核心结论

如果你想让 OpenCode 里的某个 Claude 模型支持图片输入,关键不是只把模型名写进去,而是要在模型定义里显式声明:

"attachment": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }

其中:

  • attachment: true 表示允许附件输入
  • modalities.input 里包含 "image" 表示支持图片输入
  • modalities.input 里包含 "pdf" 表示顺手也支持 PDF 输入
  • modalities.output 一般保持 ["text"]

推荐配置模板

下面是一版适合公开分享的通用模板,你只需要把占位内容替换成自己的值:

{ "$schema": "https://opencode.ai/config.json", "model": "你的主provider/你的稳定模型", "provider": { "你的主provider": { "name": "你的主provider", "npm": "@ai-sdk/openai-compatible", "models": { "你的稳定模型": { "name": "你的稳定模型显示名", "attachment": true, "reasoning": true, "tool_call": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "你的目标模型": { "name": "你的目标模型显示名", "attachment": true, "reasoning": true, "tool_call": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } } }, "options": { "baseURL": "你的兼容接口地址/v1" } } } }

这份模板解决的是什么问题

它主要解决两类问题:

  1. OpenCode 不认为你的模型支持图片输入。
  2. 你的模型实际上支持图片,但 OpenCode 因为缺少能力声明,不让你上传图片。

最容易漏掉的 3 个点

1. baseURL 要写到正确接口层级

如果你用的是 OpenAI 兼容接口,通常不要只写根域名,往往要写到类似下面这种层级:

"baseURL": "你的兼容接口地址/v1"

如果少了 /v1,有时会出现模型列表能通、实际调用不稳定,或者能力识别异常。

2. provider ID 和认证配置必须完全一致

这是很容易翻车的一点。

如果你的配置文件里写的是:

"provider": { "主线路": { ... } }

那么认证文件里也必须是:

{ "主线路": { "type": "api", "key": "你的密钥" } }

不能配置里叫一个名字,认证里又叫另一个名字。
OpenCode 是按 provider ID 精确取认证的,不会自动帮你猜。

3. 不要给同一个后端配太多重复别名

如果同一个后端被你配成两三个 provider 名称,表面看起来灵活,实际上很容易出现:

  • 模型选择串台
  • 认证取错
  • 某个会话走 A,另一个会话走 B
  • 你以为改的是同一个配置,实际上改的是两套

公开教程里更推荐:

  • 一个后端只保留一个主 provider
  • 先把图片能力跑通
  • 再考虑要不要做多别名或多线路

如果你想让 Opus 成为默认模型

把这行:

"model": "你的主provider/你的稳定模型"

改成:

"model": "你的主provider/你的目标模型"

然后完全重启 OpenCode。

推荐排查顺序

如果你既想支持图片,又想保证模型回复稳定,建议按下面顺序排查:

  1. 先挑一个你已经确认文本对话稳定的模型。
  2. 给这个模型补上 attachmentmodalities.input
  3. 先测试图片能不能上传。
  4. 图片上传正常后,再切换到你真正想用的目标模型。
  5. 如果目标模型能收图,但回复为空,那通常已经不是图片能力配置问题,而是上游接口兼容或流式返回问题。

一句话总结

要让 OpenCode 里的 Opus 支持图片,最关键的不是“模型本身支不支持”,而是“你有没有在配置里把它声明成支持图片输入的模型”。

方法很简单:

  • 给模型加 attachment: true
  • modalities.input 加上 "image"
  • 保证 baseURL 正确
  • 保证 provider ID 和认证配置完全一致

把这几步整明白,基本就八九不离十了。

网友解答:
--【壹】--:

如果你想把opus 接入到opencode,你会发现它不能直接支持上传图片了,通过摸索,发现需要修改配置文件增加相关字段,以下是我让ai整理的教程,你把下面的内容直接发给你的ai,让它阅读并给你配置就可以了。

注意!
1、此方法只适合于使用第三方中转站提供的opus接入opencode后无法发图片的问题。
2、官方opus接入opencode需要做桥接,不在本帖讨论范围。

============================================

OpenCode Opus 图片支持配置教程

说明

文中的占位写法都可以按你自己的实际环境替换。

核心结论

如果你想让 OpenCode 里的某个 Claude 模型支持图片输入,关键不是只把模型名写进去,而是要在模型定义里显式声明:

"attachment": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }

其中:

  • attachment: true 表示允许附件输入
  • modalities.input 里包含 "image" 表示支持图片输入
  • modalities.input 里包含 "pdf" 表示顺手也支持 PDF 输入
  • modalities.output 一般保持 ["text"]

推荐配置模板

下面是一版适合公开分享的通用模板,你只需要把占位内容替换成自己的值:

{ "$schema": "https://opencode.ai/config.json", "model": "你的主provider/你的稳定模型", "provider": { "你的主provider": { "name": "你的主provider", "npm": "@ai-sdk/openai-compatible", "models": { "你的稳定模型": { "name": "你的稳定模型显示名", "attachment": true, "reasoning": true, "tool_call": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "你的目标模型": { "name": "你的目标模型显示名", "attachment": true, "reasoning": true, "tool_call": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } } }, "options": { "baseURL": "你的兼容接口地址/v1" } } } }

这份模板解决的是什么问题

它主要解决两类问题:

  1. OpenCode 不认为你的模型支持图片输入。
  2. 你的模型实际上支持图片,但 OpenCode 因为缺少能力声明,不让你上传图片。

最容易漏掉的 3 个点

1. baseURL 要写到正确接口层级

如果你用的是 OpenAI 兼容接口,通常不要只写根域名,往往要写到类似下面这种层级:

"baseURL": "你的兼容接口地址/v1"

如果少了 /v1,有时会出现模型列表能通、实际调用不稳定,或者能力识别异常。

2. provider ID 和认证配置必须完全一致

这是很容易翻车的一点。

如果你的配置文件里写的是:

"provider": { "主线路": { ... } }

那么认证文件里也必须是:

{ "主线路": { "type": "api", "key": "你的密钥" } }

不能配置里叫一个名字,认证里又叫另一个名字。
OpenCode 是按 provider ID 精确取认证的,不会自动帮你猜。

3. 不要给同一个后端配太多重复别名

如果同一个后端被你配成两三个 provider 名称,表面看起来灵活,实际上很容易出现:

  • 模型选择串台
  • 认证取错
  • 某个会话走 A,另一个会话走 B
  • 你以为改的是同一个配置,实际上改的是两套

公开教程里更推荐:

  • 一个后端只保留一个主 provider
  • 先把图片能力跑通
  • 再考虑要不要做多别名或多线路

如果你想让 Opus 成为默认模型

把这行:

"model": "你的主provider/你的稳定模型"

改成:

"model": "你的主provider/你的目标模型"

然后完全重启 OpenCode。

推荐排查顺序

如果你既想支持图片,又想保证模型回复稳定,建议按下面顺序排查:

  1. 先挑一个你已经确认文本对话稳定的模型。
  2. 给这个模型补上 attachmentmodalities.input
  3. 先测试图片能不能上传。
  4. 图片上传正常后,再切换到你真正想用的目标模型。
  5. 如果目标模型能收图,但回复为空,那通常已经不是图片能力配置问题,而是上游接口兼容或流式返回问题。

一句话总结

要让 OpenCode 里的 Opus 支持图片,最关键的不是“模型本身支不支持”,而是“你有没有在配置里把它声明成支持图片输入的模型”。

方法很简单:

  • 给模型加 attachment: true
  • modalities.input 加上 "image"
  • 保证 baseURL 正确
  • 保证 provider ID 和认证配置完全一致

把这几步整明白,基本就八九不离十了。

问题描述:

如果你想把opus 接入到opencode,你会发现它不能直接支持上传图片了,通过摸索,发现需要修改配置文件增加相关字段,以下是我让ai整理的教程,你把下面的内容直接发给你的ai,让它阅读并给你配置就可以了。

注意!
1、此方法只适合于使用第三方中转站提供的opus接入opencode后无法发图片的问题。
2、官方opus接入opencode需要做桥接,不在本帖讨论范围。

============================================

OpenCode Opus 图片支持配置教程

说明

文中的占位写法都可以按你自己的实际环境替换。

核心结论

如果你想让 OpenCode 里的某个 Claude 模型支持图片输入,关键不是只把模型名写进去,而是要在模型定义里显式声明:

"attachment": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }

其中:

  • attachment: true 表示允许附件输入
  • modalities.input 里包含 "image" 表示支持图片输入
  • modalities.input 里包含 "pdf" 表示顺手也支持 PDF 输入
  • modalities.output 一般保持 ["text"]

推荐配置模板

下面是一版适合公开分享的通用模板,你只需要把占位内容替换成自己的值:

{ "$schema": "https://opencode.ai/config.json", "model": "你的主provider/你的稳定模型", "provider": { "你的主provider": { "name": "你的主provider", "npm": "@ai-sdk/openai-compatible", "models": { "你的稳定模型": { "name": "你的稳定模型显示名", "attachment": true, "reasoning": true, "tool_call": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "你的目标模型": { "name": "你的目标模型显示名", "attachment": true, "reasoning": true, "tool_call": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } } }, "options": { "baseURL": "你的兼容接口地址/v1" } } } }

这份模板解决的是什么问题

它主要解决两类问题:

  1. OpenCode 不认为你的模型支持图片输入。
  2. 你的模型实际上支持图片,但 OpenCode 因为缺少能力声明,不让你上传图片。

最容易漏掉的 3 个点

1. baseURL 要写到正确接口层级

如果你用的是 OpenAI 兼容接口,通常不要只写根域名,往往要写到类似下面这种层级:

"baseURL": "你的兼容接口地址/v1"

如果少了 /v1,有时会出现模型列表能通、实际调用不稳定,或者能力识别异常。

2. provider ID 和认证配置必须完全一致

这是很容易翻车的一点。

如果你的配置文件里写的是:

"provider": { "主线路": { ... } }

那么认证文件里也必须是:

{ "主线路": { "type": "api", "key": "你的密钥" } }

不能配置里叫一个名字,认证里又叫另一个名字。
OpenCode 是按 provider ID 精确取认证的,不会自动帮你猜。

3. 不要给同一个后端配太多重复别名

如果同一个后端被你配成两三个 provider 名称,表面看起来灵活,实际上很容易出现:

  • 模型选择串台
  • 认证取错
  • 某个会话走 A,另一个会话走 B
  • 你以为改的是同一个配置,实际上改的是两套

公开教程里更推荐:

  • 一个后端只保留一个主 provider
  • 先把图片能力跑通
  • 再考虑要不要做多别名或多线路

如果你想让 Opus 成为默认模型

把这行:

"model": "你的主provider/你的稳定模型"

改成:

"model": "你的主provider/你的目标模型"

然后完全重启 OpenCode。

推荐排查顺序

如果你既想支持图片,又想保证模型回复稳定,建议按下面顺序排查:

  1. 先挑一个你已经确认文本对话稳定的模型。
  2. 给这个模型补上 attachmentmodalities.input
  3. 先测试图片能不能上传。
  4. 图片上传正常后,再切换到你真正想用的目标模型。
  5. 如果目标模型能收图,但回复为空,那通常已经不是图片能力配置问题,而是上游接口兼容或流式返回问题。

一句话总结

要让 OpenCode 里的 Opus 支持图片,最关键的不是“模型本身支不支持”,而是“你有没有在配置里把它声明成支持图片输入的模型”。

方法很简单:

  • 给模型加 attachment: true
  • modalities.input 加上 "image"
  • 保证 baseURL 正确
  • 保证 provider ID 和认证配置完全一致

把这几步整明白,基本就八九不离十了。

网友解答:
--【壹】--:

如果你想把opus 接入到opencode,你会发现它不能直接支持上传图片了,通过摸索,发现需要修改配置文件增加相关字段,以下是我让ai整理的教程,你把下面的内容直接发给你的ai,让它阅读并给你配置就可以了。

注意!
1、此方法只适合于使用第三方中转站提供的opus接入opencode后无法发图片的问题。
2、官方opus接入opencode需要做桥接,不在本帖讨论范围。

============================================

OpenCode Opus 图片支持配置教程

说明

文中的占位写法都可以按你自己的实际环境替换。

核心结论

如果你想让 OpenCode 里的某个 Claude 模型支持图片输入,关键不是只把模型名写进去,而是要在模型定义里显式声明:

"attachment": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }

其中:

  • attachment: true 表示允许附件输入
  • modalities.input 里包含 "image" 表示支持图片输入
  • modalities.input 里包含 "pdf" 表示顺手也支持 PDF 输入
  • modalities.output 一般保持 ["text"]

推荐配置模板

下面是一版适合公开分享的通用模板,你只需要把占位内容替换成自己的值:

{ "$schema": "https://opencode.ai/config.json", "model": "你的主provider/你的稳定模型", "provider": { "你的主provider": { "name": "你的主provider", "npm": "@ai-sdk/openai-compatible", "models": { "你的稳定模型": { "name": "你的稳定模型显示名", "attachment": true, "reasoning": true, "tool_call": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } }, "你的目标模型": { "name": "你的目标模型显示名", "attachment": true, "reasoning": true, "tool_call": true, "modalities": { "input": ["text", "image", "pdf"], "output": ["text"] } } }, "options": { "baseURL": "你的兼容接口地址/v1" } } } }

这份模板解决的是什么问题

它主要解决两类问题:

  1. OpenCode 不认为你的模型支持图片输入。
  2. 你的模型实际上支持图片,但 OpenCode 因为缺少能力声明,不让你上传图片。

最容易漏掉的 3 个点

1. baseURL 要写到正确接口层级

如果你用的是 OpenAI 兼容接口,通常不要只写根域名,往往要写到类似下面这种层级:

"baseURL": "你的兼容接口地址/v1"

如果少了 /v1,有时会出现模型列表能通、实际调用不稳定,或者能力识别异常。

2. provider ID 和认证配置必须完全一致

这是很容易翻车的一点。

如果你的配置文件里写的是:

"provider": { "主线路": { ... } }

那么认证文件里也必须是:

{ "主线路": { "type": "api", "key": "你的密钥" } }

不能配置里叫一个名字,认证里又叫另一个名字。
OpenCode 是按 provider ID 精确取认证的,不会自动帮你猜。

3. 不要给同一个后端配太多重复别名

如果同一个后端被你配成两三个 provider 名称,表面看起来灵活,实际上很容易出现:

  • 模型选择串台
  • 认证取错
  • 某个会话走 A,另一个会话走 B
  • 你以为改的是同一个配置,实际上改的是两套

公开教程里更推荐:

  • 一个后端只保留一个主 provider
  • 先把图片能力跑通
  • 再考虑要不要做多别名或多线路

如果你想让 Opus 成为默认模型

把这行:

"model": "你的主provider/你的稳定模型"

改成:

"model": "你的主provider/你的目标模型"

然后完全重启 OpenCode。

推荐排查顺序

如果你既想支持图片,又想保证模型回复稳定,建议按下面顺序排查:

  1. 先挑一个你已经确认文本对话稳定的模型。
  2. 给这个模型补上 attachmentmodalities.input
  3. 先测试图片能不能上传。
  4. 图片上传正常后,再切换到你真正想用的目标模型。
  5. 如果目标模型能收图,但回复为空,那通常已经不是图片能力配置问题,而是上游接口兼容或流式返回问题。

一句话总结

要让 OpenCode 里的 Opus 支持图片,最关键的不是“模型本身支不支持”,而是“你有没有在配置里把它声明成支持图片输入的模型”。

方法很简单:

  • 给模型加 attachment: true
  • modalities.input 加上 "image"
  • 保证 baseURL 正确
  • 保证 provider ID 和认证配置完全一致

把这几步整明白,基本就八九不离十了。