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):
| 值 | 请求协议 | 适用场景 |
|---|---|---|
responses | OpenAI Responses API 风格 | OpenAI、Amazon Bedrock、Ollama、LM Studio,以及 Responses 兼容的自定义 provider |
chat | OpenAI 兼容 Chat Completions | 大多数 OpenAI 兼容托管/自建 chat-completions 供应商 |
messages | Anthropic 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-code、claude-code-bare;chat兼容 generic chat、claude-code、claude-code-bare、kimi-code、qwen-code、swe-agent、minimal等;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 后有两条检查路径:
- 看当前选择:
/model会展示 provider、model、harness 及模型级控制项,窗口 footer 会显示当前激活的选择(见 docs/models.md)。 - 看生效值与来源:在 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 = 300000request_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 = 300000experimental_bearer_token:直接把 token 写进配置。schema 明确说明出于安全原因不推荐,env_key是首选;仅在程序化嵌入无法读环境变量时使用。
还有http_headers、env_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.",即自定义表只能扩展,不能改写openai、amazon-bedrock、ollama、lmstudio等内置条目。 - 本地 Ollama / LM Studio 不走这条路:docs/models.md 明确说不要为了改这两个内置本地 provider 的地址而新建
model_providers条目,应使用CODEX_OSS_BASE_URL(或CODEX_OSS_PORT)覆盖。 wire_api与 harness 不匹配会被拒:messagesprovider 在 native 模式下直接被拒绝,必须配claude-code、claude-code-bare或zcode等 harness;自定义 chat 端点如果报错,先对照 docs/harness.md 的 Route Compatibility 表确认组合是否合法。- 字段全集以 schema 为唯一事实来源:文档多处强调
codex-rs/core/config.schema.json是 every field 的 source of truth,维护共享配置时可以直接用它做编辑器补全或 CI 校验。
完成上述配置并确认/debug-config中model_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),仅供参考