Open Interpreter 接入 DeepSeek:提供商配置、模型选择与 Harness 使用全指南
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-pro 与 deepseek-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-chat 与 deepseek-reasoner ID 已被 DeepSeek 宣布将于 2026 年 7 月 24 日停用,因此新配置应直接使用 V4 ID。目录中虽然仍保留了 deepseek-reasoner 与 deepseek-chat 条目(priority 2/3)以兼容旧工作流,但提交新负载时应避免硬编码这些旧 ID。具体可用性与计价请以 DeepSeek 官方 API 更新与定价页面为准;在仓库内部,模型的能力元数据由 model_compatibility_catalog.json 与 compatibility_enrichment.rs 做兼容性增强(如推理力度、并行工具调用支持),其测试用例也覆盖了 deepseek-reasoner 与 deepseek-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-tui 与 WireApi::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_000(DEEPSEEK_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" 即可命中内置提供商。只有以下两种场景才值得手工展开:
- 代理场景:你身处需要经本地代理转发请求的网络环境,需要改写
base_url; - 自定义/私有化部署:你把 DeepSeek 兼容端点部署在了自己的服务上,需要指向自定义地址。
如果你更改了端点,请务必保持 wire_api = "chat",因为 DeepSeek 提供的是兼容 OpenAI 的 Chat API;把它误改成 responses 或 messages 会导致请求结构不匹配。同理,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,不要假设每个兼容端点都采用相同的传输方式。
深入阅读
- 模型提供商总览与 Wire API 说明:docs/zh/providers.md
- Harness 标识、路由兼容矩阵与自动默认值:docs/zh/harness.md
- DeepSeek 提供商托管目录条目(模型、上下文窗口与优先级):provider_catalog.json
- deepseek-tui 装置请求构造实现:deepseek_tui.rs
- harness 路由与 wire API 兼容性校验:routing.rs
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0627
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00