Open Interpreter 如何配置自定义 OpenAI 兼容模型供应商(model_providers 与 wire_api)?
2026/9/9 18:58:35 网站建设 项目流程

Open Interpreter 如何配置自定义 OpenAI 兼容模型供应商(model_providers 与 wire_api)?

【免费下载链接】openinterpreterA coding agent for open models like Kimi K3 and GLM 5.3项目地址: https://gitcode.com/GitHub_Trending/op/openinterpreter

如果你的模型服务不是 Open Interpreter 内置的供应商(例如自建网关、公司内部代理或第三方兼容端点),就需要在配置文件中注册一个自定义 provider,告诉 Open Interpreter 请求发到哪里、用什么凭据、走哪种请求协议。完成配置后,interpreter启动时就会把你指定的model发往这个自定义端点,而不是默认的 OpenAI。

整个过程只改一个 TOML 配置文件和一个环境变量,核心就是model_providers表里的几个字段,尤其是wire_api

配置文件放在哪里

Open Interpreter 从 TOML 文件读取持久化设置(见 docs/config.md):

  • 用户级配置:~/.openinterpreter/config.toml
  • 受信任项目内配置:.openinterpreter/config.toml(相对于项目根目录)

两者的优先级低于内置默认值之上的配置层;完整优先级顺序是:内置默认值 → 系统/托管配置 → 用户配置 → 受信任项目配置 → 选中的 profile →-c等命令行覆盖。只对某一次运行生效时,也可以用-c key=value传 TOML 值,例如interpreter -c model_provider='"acme"'

wire_api 怎么选

wire_api控制 HTTP 请求的形状(见 docs/providers.md):

请求协议适用场景
responsesOpenAI Responses API 风格OpenAI、Amazon Bedrock、Ollama、LM Studio,以及 Responses 兼容的自定义 provider
chatOpenAI 兼容 Chat Completions大多数 OpenAI 兼容托管/自建 chat-completions 供应商
messagesAnthropic Messages仅用于 Anthropic Messages 兼容供应商

选择规则按文档给出的口径:OpenAI Responses 兼容端点用wire_api = "responses",OpenAI 兼容 chat-completions 端点用wire_api = "chat",只有 Anthropic Messages 兼容端点才用wire_api = "messages"。配置 schema(codex-rs/core/config.schema.json)中该字段的默认值是responses,所以如果你的端点是 chat-completions 风格,必须显式写成chat,否则请求形态不匹配。

注意:wire_api还必须与所选 harness 兼容。例如responses只兼容 native Responses、claude-codeclaude-code-barechat兼容 generic chat、claude-codeclaude-code-barekimi-codeqwen-codeswe-agentminimal等;messages下 native 模式会被拒绝(详见 docs/harness.md 的 Route Compatibility 表)。如果你不设置harness,Open Interpreter 会按 provider/model 家族自动推断,通常不需要额外处理。

主路径:添加自定义 provider 并启用

以文档中的 Acme 示例为例(见 docs/authentication.md 的 "Compatible Providers" 一节和 docs/config.md),在~/.openinterpreter/config.toml中写入:

model_provider = "acme" model = "acme-coder" [model_providers.acme] name = "Acme" base_url = "https://api.acme.example/v1" env_key = "ACME_API_KEY" wire_api = "responses"

字段含义以配置 schema 为准:

  • model_provider = "acme":指向刚注册的 provider 表名([model_providers.acme]),顶层model是实际发给端点的模型 ID。
  • base_url:该 provider 的 OpenAI 兼容 API 基地址。
  • env_key:存放 API key 的环境变量名;凭据应从环境变量或 credential store 读取,而不是写死在配置里。
  • wire_api:见上一节的三种取值。
  • name:展示名称,可选。

然后设置环境变量并启动:

export ACME_API_KEY=... interpreter

文档给出的真实托管示例是 app.nz 网关——一个 OpenAI 兼容 chat-completions provider,其app/auto模型会在上游多个 provider 间自动路由(见 docs/config.md 的 "app.nz" 一节)。如果你的端点属于这类,配置形态是:

model_provider = "appnz" model = "app/auto" [model_providers.appnz] name = "app.nz" base_url = "https://app.nz/v1" env_key = "APPNZ_API_KEY" wire_api = "chat"

对应地export APPNZ_API_KEY=...后再启动interpreter

验证配置是否生效

启动 TUI 后有两条检查路径:

  1. 看当前选择/model会展示 provider、model、harness 及模型级控制项,窗口 footer 会显示当前激活的选择(见 docs/models.md)。
  2. 看生效值与来源:在 TUI 内执行/debug-config,可以检查最终生效的配置值以及它们来自哪一层配置(内置默认、用户配置、CLI 覆盖等),用来确认你的[model_providers.acme]确实被加载且没有被上层覆盖。

模型选择器还会优先尝试访问当前 provider 的/models端点获取实时模型 ID;当端点不可用时,会回落到内置的 provider catalog 种子数据(docs/models.md 的 "Where Model Metadata Comes From")。如果你的自定义端点没有/models,选择器会按 catalog 匹配逻辑展示模型列表,这不代表连接失败。

可选的进阶字段

[model_providers.<id>]支持的完整字段列表以 codex-rs/core/config.schema.json 的ModelProviderInfo为准(docs/config-reference.md 也列了常用项)。与自定义 OpenAI 兼容端点直接相关的有:

[model_providers.example] name = "Example" base_url = "https://api.example.com/v1" env_key = "EXAMPLE_API_KEY" wire_api = "responses" request_max_retries = 4 stream_max_retries = 5 stream_idle_timeout_ms = 300000
  • request_max_retries:单个 HTTP 请求失败后的最大重试次数。
  • stream_max_retries:流式响应断流后的重连重试次数。
  • stream_idle_timeout_ms:流式响应无活动的空闲超时(毫秒),超过即视为连接丢失。

另外两个鉴权相关选项:

  • command-backed auth:token 需要动态获取时,可以配置一个本地命令来产出 bearer token 并缓存(docs/providers.md):
[model_providers.example.auth] command = "example-token" args = ["print"] timeout_ms = 5000 refresh_interval_ms = 300000
  • experimental_bearer_token:直接把 token 写进配置。schema 明确说明出于安全原因不推荐,env_key是首选;仅在程序化嵌入无法读环境变量时使用。

还有http_headersenv_http_headers(后者取值为"环境变量的名字",变量未设置或为空时该 header 不发送)、query_params等字段,用于给请求附加固定 header 或查询参数,按需查阅 schema。

限制与常见边界

  • 内置 provider ID 不能被覆盖:schema 对model_providers的说明是"User-defined provider entries that extend the built-in list. Built-in IDs cannot be overridden.",即自定义表只能扩展,不能改写openaiamazon-bedrockollamalmstudio等内置条目。
  • 本地 Ollama / LM Studio 不走这条路:docs/models.md 明确说不要为了改这两个内置本地 provider 的地址而新建model_providers条目,应使用CODEX_OSS_BASE_URL(或CODEX_OSS_PORT)覆盖。
  • wire_api与 harness 不匹配会被拒messagesprovider 在 native 模式下直接被拒绝,必须配claude-codeclaude-code-barezcode等 harness;自定义 chat 端点如果报错,先对照 docs/harness.md 的 Route Compatibility 表确认组合是否合法。
  • 字段全集以 schema 为唯一事实来源:文档多处强调codex-rs/core/config.schema.json是 every field 的 source of truth,维护共享配置时可以直接用它做编辑器补全或 CI 校验。

完成上述配置并确认/debug-configmodel_provider指向你的自定义条目后,任务即告完成;后续如需调整模型或 harness,用/model/harness在 TUI 内操作即可。

【免费下载链接】openinterpreterA coding agent for open models like Kimi K3 and GLM 5.3项目地址: https://gitcode.com/GitHub_Trending/op/openinterpreter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询