Skip to main content
OpenCode 从 JSON 文件中读取提供商条目,无需更改源代码,也无需分叉。 OpenCode 可以在配置中设置 start_within,因此此处代理密钥是可选的。密钥仍然是更简单的路径,因为它无需重启即可更改。请参阅代理密钥

使用代理进行设置

打开下面的代码块并将其复制到任何编码代理中。此提示绝不会要求您的 API 密钥:代理会配置所有其他内容,然后打印一行导出命令供您自行运行。

配置 OpenCode

  1. 在启动 OpenCode 的 shell 中导出密钥。
  2. 将提供商条目写入 opencode.json
  3. 针对该文件启动 OpenCode。
四个字段用于集成。npm 选择与 OpenAI 兼容的包。options.baseURL 将请求发送到路由器。options.apiKey 从环境中读取密钥。models 下的每个键都是我们运行的 slug。 通过在 models 下添加一个键来添加模型。条目中的其他所有内容都是显示和限制。

全局或每个项目

根据您希望其应用的范围,将提供商条目放置在以下两个位置之一。 项目配置优先于全局配置。 OpenCode 会在工作目录中查找 opencode.json 并向上遍历到最近的 Git 目录,因此仓库可以覆盖您的机器范围提供商而无需修改它。 将提供商条目放入全局文件,截止时间在任何地方都保持不变。将其放入项目文件,则只有该仓库通过我们进行路由。 设置 OPENCODE_DISABLE_PROJECT_CONFIG 以停止向上搜索。 还有两个用于捆绑包和自动化的来源。OPENCODE_CONFIG_DIR 指定 OpenCode 读取配置的目录,而 OPENCODE_CONFIG_CONTENT 则内联保存 JSON。对于您每次运行都选择的文件,请使用 OPENCODE_CONFIG

改为在配置中设置截止时间

OpenCode 可以自行发送 start_within。这两个位置都是纯 JSON,并且都优先于密钥。 按模型设置。options 块会进入该模型的请求正文。
改为按变体设置,无需更改模型即可切换。在 opencode run 上使用 --variant 选择一个,或在 TUI 中使用 ctrl+t 循环切换它们。
此处设置的持续时间在无法竞争的模型上会失败。而密钥上设置的相同持续时间则会回退。这就是优先选择密钥的原因。

确认密钥已应用

每个响应都带有 x-flexinference-defaults-applied。OpenCode 不会在 TUI 中显示响应头,因此请改为在仪表板的“日志”下读取请求。

故障排除

请求从未到达我们。 顶层 model 字段是选择提供商的关键,因此如果定义了提供商但未在此处命名,OpenCode 将保持其内置默认设置。请设置 "model": "flexinference/<slug>" 401 invalid_api_key 启动 OpenCode 的 shell 中未设置 FLEXINFERENCE_API_KEY。由于 options.apiKey 从环境中读取它,请在启动前导出它。 400 unsupported_parameter 我们不支持的 Chat Completions 参数出现在模型的 options 中,例如 seedstop。请将其从条目中删除。 400 key_default_not_applicable 您的密钥包含持续时间,并且其中一个参数与其同时出现。请将密钥编辑为某个层级,或删除该参数。 400 flex_unsupported_for_anthropic options 中的持续时间到达了您自己的 Anthropic 密钥上的 claude-* 模型。Claude 持续时间运行的竞争需要托管密钥。请删除持续时间,让密钥持有截止时间,因为密钥持续时间会回退。 配置更改未生效。 后续的配置源覆盖了它。请检查上面的搜索顺序,并优先使用 OPENCODE_CONFIG 以选择每次运行一个文件。 请参阅错误以了解我们返回的所有拒绝信息,并参阅代理密钥以了解不特定于 OpenCode 的错误。OpenWorkOpenScience 读取相同的提供商条目。