首页
/ Open Interpreter 接入 DeepSeek:提供商配置、模型选择与 Harness 使用全指南

Open Interpreter 接入 DeepSeek:提供商配置、模型选择与 Harness 使用全指南

2026-09-06 19:14:46作者:魏献源Searcher

Open Interpreter(本仓库即其开源实现)内置了 deepseek 模型提供商,让你通过 DEEPSEEK_API_KEY 直接调用 DeepSeek 兼容 OpenAI 的 Chat API,并在交互式 TUI、一次性 CLI 任务、ACP 编辑器与 SDK 等场景中统一使用。读完本文,你将掌握从获取密钥、选择模型到调整 harness 装置行为、乃至排查 401/403 等常见问题的完整实操路径。

DeepSeek 内置提供商是如何工作的

DeepSeek 接入并不需要任何额外插件。Open Interpreter 内置的 deepseek 提供商直接连接到 DeepSeek API,从 DEEPSEEK_API_KEY 环境变量中读取密钥,并使用 DeepSeek 兼容 OpenAI 的 Chat Completions 端点完成请求。

该提供商的“身份档案”可以在仓库维护的托管提供商目录中找到,见 provider_catalog.json

{
  "id": "deepseek",
  "name": "DeepSeek",
  "env_key": "DEEPSEEK_API_KEY",
  "base_url": "https://api.deepseek.com",
  "wire_api": "chat",
  "sort_priority": 32
}

其中 wire_api = "chat" 表示它走的是兼容 OpenAI 的 Chat Completions 传输格式;sort_priority 控制其在 /model 选择器中的排序权重。该目录由 bundled_provider_catalog.rs 等源码加载并在测试中校验(例如断言内置提供商集合中包含 deepseek),因此它与运行时实际行为保持一致。三层概念可以这样拆分:

层级 示例 它控制的内容
提供商 deepseek 端点(https://api.deepseek.com)、凭证(DEEPSEEK_API_KEY)与 wire API
模型 deepseek-v4-pro 发送到该端点的具体模型 ID
Harness claude-code-bare 面向模型的提示、工具集与请求格式

快速开始:交互式会话中使用 DeepSeek

先到 DeepSeek 平台创建 API 密钥,然后将其导出并启动 Open Interpreter:

export DEEPSEEK_API_KEY="..."
interpreter

启动后在打开的 /model 界面中选择 DeepSeek 提供商,再选择你想要的模型即可开始对话。

直接以 CLI 指定提供商与模型

不想在交互界面里手动选择时,可以一次性传参启动,将提供商固定为 deepseek、模型指定为 deepseek-v4-pro

DEEPSEEK_API_KEY="..." interpreter \
  -c 'model_provider="deepseek"' \
  -m deepseek-v4-pro

-c 传入的是与 TOML 配置等价的临时配置覆盖,-m 指定模型。执行单个非交互式任务则使用 interpreter exec

DEEPSEEK_API_KEY="..." interpreter exec \
  -c 'model_provider="deepseek"' \
  -m deepseek-v4-pro \
  "Review this repository and fix the highest-impact bug."

exec 模式适合 CI、脚本或一次性批量任务,任务完成后进程即退出。

选择模型:V4 与旧 ID 的取舍

/model 选择器由维护的提供商目录与当前模型的元数据共同生成,因此它是你所安装版本可用模型的唯一可信来源,不必在文档或网络上猜测模型拼写。

DeepSeek 当前的 API 模型 ID 为 deepseek-v4-prodeepseek-v4-flash。两者取舍如下:

  • deepseek-v4-pro:需要更高容量、更强推理时使用,是文档示例与自动默认场景中的主力模型;
  • deepseek-v4-flash:成本或并发更重要时使用,同时它也被 deepseek-tui 装置内部用作上下文压缩(compaction)模型。

提供商目录中记录的 V4 家族元数据如下(来源:provider_catalog.json):

模型 ID 展示名 能力描述 上下文窗口 优先级
deepseek-v4-flash DeepSeek V4 Flash Reasoning + Tool calling 1,000,000 0
deepseek-v4-pro DeepSeek V4 Pro Reasoning + Tool calling 1,000,000 1

需要注意,旧的 deepseek-chatdeepseek-reasoner ID 已被 DeepSeek 宣布将于 2026 年 7 月 24 日停用,因此新配置应直接使用 V4 ID。目录中虽然仍保留了 deepseek-reasonerdeepseek-chat 条目(priority 2/3)以兼容旧工作流,但提交新负载时应避免硬编码这些旧 ID。具体可用性与计价请以 DeepSeek 官方 API 更新与定价页面为准;在仓库内部,模型的能力元数据由 model_compatibility_catalog.jsoncompatibility_enrichment.rs 做兼容性增强(如推理力度、并行工具调用支持),其测试用例也覆盖了 deepseek-reasonerdeepseek-chat 的 enrichment 行为。

装置(Harness)行为:默认与可选模式

当你在配置中未显式设置 harness 时,DeepSeek 模型会自动使用 claude-code-bare。从源码结构看,harness 自动推断会依据“提供商 ID、名称、基础 URL 或模型 ID 家族”来匹配默认值(相关规则汇总见 docs/zh/harness.md),其中 DeepSeek 家族被映射到 claude-code-bare

需要强调的是:Open Interpreter 是在 DeepSeek 的 Chat Completions 端点之上提供更小型的 Claude Code 形态代理界面,它并不会去运行真实的外部 CLI,工具调用仍由 Open Interpreter 的原生 Rust 运行时执行。

要检查或更改当前装置,在交互界面运行 /harness。当你特别想要 DeepSeek TUI/CodeWhale 形态的提示与工具时,可显式启用可选的 deepseek-tui 模式:

model_provider = "deepseek"
model = "deepseek-v4-pro"
harness = "deepseek-tui"

删除显式的 harness 行,即可恢复推荐使用的自动默认装置(即 claude-code-bare)。

deepseek-tui 装置在源码中的实现

routing.rs 中,deepseek-tuiWireApi::Chat 组合会被路由到 ChatHarnessRoute::DeepSeekTui,而与 messages wire API 组合则会直接返回错误(如 wire_api = "messages" is not supported by harness = "deepseek-tui"),这说明该装置强依赖 Chat Completions 传输格式

其请求构造实现在 deepseek_tui.rs,从中可以看出若干有价值的细节:

  • 系统提示、个性/模式/审批文案通过 include_str! 内嵌(如 deepseek_tui_prompts/base.md),并携带版本号常量 CODEWHALE_VERSION
  • 请求体设置 max_tokens = 64_000DEEPSEEK_TUI_DEFAULT_MAX_TOKENS),并以 stream: true 流式返回;
  • 当检测到需要上下文压缩时,会改用 deepseek-v4-flash 作为压缩模型并附带一轮 4096 tokens 的交接简报请求;
  • 工具列表由 create_deepseek_tui_chat_tools_json() 生成(工具描述 JSON 见 deepseek_tui_tools.json),涵盖 shell、apply patch、edit/write/read file、list directory、grep/file search、git status/diff、diagnostics、checklist、plan 与 tool search 等能力,同时为最近一条用户消息附加回合元数据与仓库上下文。

配置 DeepSeek 提供商

内置的 deepseek 提供商,等价于下面的完整 TOML 声明:

model_provider = "deepseek"
model = "deepseek-v4-pro"

[model_providers.deepseek]
name = "DeepSeek"
base_url = "https://api.deepseek.com"
env_key = "DEEPSEEK_API_KEY"
wire_api = "chat"

在多数情况下你不需要复制这个 [model_providers.deepseek] 块,直接写 model_provider = "deepseek" 即可命中内置提供商。只有以下两种场景才值得手工展开:

  1. 代理场景:你身处需要经本地代理转发请求的网络环境,需要改写 base_url
  2. 自定义/私有化部署:你把 DeepSeek 兼容端点部署在了自己的服务上,需要指向自定义地址。

如果你更改了端点,请务必保持 wire_api = "chat",因为 DeepSeek 提供的是兼容 OpenAI 的 Chat API;把它误改成 responsesmessages 会导致请求结构不匹配。同理,env_key 指定了读取密钥的环境变量名,保持默认即为 DEEPSEEK_API_KEY

该配置块的各字段作用还可以在 docs/zh/providers.md 中横向比对:env_key 从环境变量读取 Bearer 令牌并以 Authorization: Bearer ... 附加到请求头。

在 ACP 编辑器与 SDK 中复用同一套配置

相同的提供商配置并不局限于终端。deepseek 提供商同样适用于两类集成场景:

  • ACP 兼容编辑器:通过 interpreter acp 启动 ACP 服务后,即可在支持 ACP(Agent Client Protocol)的编辑器中使用 DeepSeek,配置方式与 docs/zh/acp.md 中描述的一致;
  • Codex SDK 兼容性:Open Interpreter 提供 Codex SDK 兼容层,便于在脚本与程序中编程式驱动同一个 DeepSeek 提供商,用法见 docs/zh/sdk.md

也就是说,只要在配置文件里把 DeepSeek 提供商设置好,交互 TUI、一次性 exec、ACP 编辑器与 SDK 会共享同一套端点、凭证与模型选择。

故障排查

  • 401 或 403:通常表示 DEEPSEEK_API_KEY 缺失、已过期,或者密钥属于不同的端点。请先确认环境变量已正确导出且密钥有效,再确认请求确实发往 https://api.deepseek.com
  • 旧模型 ID 停止工作:不要硬编码被替代的模型 ID,打开 /model 选择当前的 V4 模型即可,或把 -m 参数换成 deepseek-v4-pro / deepseek-v4-flash
  • 代理界面出现异常:运行 /harness 检查当前装置,并删除 ~/.openinterpreter/config.toml 中任何旧的显式 harness 值,让自动默认装置(claude-code-bare)重新生效。配置文件的详细参考见 docs/zh/config-reference.md
  • 协议不匹配:如果使用的是第三方“DeepSeek 兼容”端点,请匹配其 wire_api,不要假设每个兼容端点都采用相同的传输方式。

深入阅读

登录后查看全文
热门项目推荐
相关项目推荐