前段时间,我在《这次真不慌了,Claude随时可以取消订阅》里写过一个判断:随着 DeepSeek、Kimi、GLM 这些国产模型的 Coding 能力越来越强,国产 AI Coding 与 Claude Code 之间最明显的差距,正在从模型本身转移到 Harness。
当时很多人讨论 AI Coding,仍然习惯把 Claude Code 的优势简单归结为 Claude 模型更强。但实际使用过不同 Coding Agent 就会发现,同一个模型放进不同的工具里,最后表现出来的能力可能有很大差别。模型当然重要,但模型怎么读取代码、怎么规划任务、什么时候搜索、什么时候调用工具、如何管理上下文、失败后怎么恢复、修改以后是否主动运行测试,这些并不完全由模型决定。
8 月 13 日,DeepSeek 发布了 DeepSeek Harness 开发者预览版,并以 MIT License 开源。更有意思的是,DeepSeek 在产品首页直接写出了一个公式:
Agent = Model + Harness。
这句话其实把过去半年 AI Coding 市场正在发生的变化说得很清楚。模型仍然决定智能的上限,但当模型能力越来越接近之后,谁能把这些智能稳定地组织起来完成工作,正在变得越来越重要。
所以我觉得,DeepSeek Harness 真正值得关注的,并不是 DeepSeek 终于也做出了一个“国产 Claude Code”,现在显然还远没有到这一步;真正重要的是,DeepSeek 已经开始补国产 AI Coding 最短的那块板了。
一、Harness到底是什么,为什么突然变重要了?
Harness 这个词最近在 AI Coding 圈越来越常见,但它其实很难用一个对应的中文词准确翻译。你可以把它理解成模型之外的那套“执行系统”:模型负责思考,Harness 负责把模型连接到文件系统、终端、搜索、工具、权限、上下文以及其他 Agent,让模型能够真正进入一个软件项目持续完成工作。
DeepSeek 自己的定义也差不多。它说模型是 Agent 的“灵魂”,而 Harness 让 Agent 理解环境、使用工具,并持续在现实环境中工作。DeepSeek Harness 的 Standard Mode 已经包括文件编辑、Shell、文件和网页搜索、Skills、Planning、Goals、Subagents 和 Workflows;另外还有用代码编排多步工具调用的 Code Mode,以及为了模型 Benchmark 尽可能减少环境干扰、只保留 Bash 和文件编辑器的 Minimal Mode。
这些功能单独拿出来,其实都不新鲜。Claude Code 有 Skills、Subagents、Hooks、MCP 和一整套权限机制,今天甚至可以根据任务主动调用不同的子 Agent;Codex 也已经有 Skills、Subagents、Sandbox、Approval 等完整机制。真正重要的不是“有没有一个 Subagent 按钮”,而是这些能力如何组合起来。
比如一个 Agent 接到“给这个项目增加用户登录”的任务以后,它首先需要判断代码结构,搜索相关文件,理解已有认证方式,再决定修改哪些模块;中间可能要安装依赖、执行数据库迁移、运行测试,测试失败以后继续读取日志并修改代码。任务足够复杂时,它还可能需要把前端、后端和测试拆给不同的 Subagent,又不能让大量日志和中间信息把主 Agent 的上下文塞满。
模型负责一次次做判断,但把这些判断组织成一条可靠执行链的,就是 Harness。
模型能力还很弱的时候,这件事没有那么重要,因为模型连代码都看不明白,外面的执行系统做得再漂亮也没有用。但当主流模型进入“代码基本都会写”的阶段以后,差距就开始出现在另一层:为什么一个 Agent 做到一半经常停下来?为什么另一个能自己跑完测试继续修?为什么同一个模型,在不同工具里的效果会完全不同?
这就是 Harness 开始变得重要的原因。
二、DeepSeek其实早就在用Harness了
DeepSeek Harness 这次虽然刚刚公开,但它显然并不是昨天才突然想出来的东西。
7 月 31 日 DeepSeek V4 Flash 正式版发布时,DeepSeek公布了一组 Agent Benchmark:Terminal Bench 2.1 为 82.7,NL2Repo 为 54.2,DeepSWE 为 54.4。官方当时特意在测试说明里写了一句话:公开基准中的 Code Agent 任务,使用了“即将发布”的 DeepSeek Harness Minimal Mode。
到了 8 月 13 日 V4 Pro 正式版发布,Terminal Bench 2.1 又提高到 87.9,NL2Repo 达到 61.5,DeepSWE 达到 62.7,而 DeepSeek 再次明确说明,Code Agent 的公开 Benchmark 使用 DeepSeek Harness 极简模式完成测试,并提醒不同 Harness 下的结果可能略有不同。
我觉得后面这句话甚至比那些 Benchmark 数字更值得注意。
因为它实际上承认了一件过去经常被模型排行榜忽略的事情:Agent Benchmark 测出来的,从来不完全是模型。
模型和 Harness 很难彻底分开。
同样一个模型,如果 Harness 更善于搜索代码、更合理地控制上下文、更准确地选择工具,在需要时把任务交给子 Agent,并且在失败以后能够继续恢复,最后测试出来的 Agent 能力自然可能不同。
所以 DeepSeek Harness 并不是模型发布以后的附属产品。从 V4 Flash 到 V4 Pro,它已经进入 DeepSeek 的模型评测体系。现在再回头看“Agent = Model + Harness”这句话,就不只是市场宣传,而更像是 DeepSeek 对 Agent 产品路线的一次明确表态。
三、DeepSeek现在的策略很有意思:先开别人的车,再开始造自己的车
还有一个很容易被忽略的细节。
DeepSeek 并没有因为自己开始做 Harness,就把模型关在 DeepSeek Harness 里面。恰恰相反,它现在正在非常积极地进入别人已经建立起来的 Agent 生态。
DeepSeek 官方已经提供 Claude Code 的接入方案,只需要修改 Anthropic API 地址和模型配置,就可以把 Claude Code 后面的 Claude 换成 DeepSeek V4 Pro 或 V4 Flash;V4 Pro 正式版又原生支持 OpenAI Responses API,并针对 Codex 做了适配。DeepSeek 的官方文档里,现在还能找到 OpenCode、GitHub Copilot 等一系列 Agent 工具的接入方式。
这其实是一种很现实的策略。
Claude Code、Codex 已经有大量用户,也积累了成熟的工具调用、权限、上下文管理和软件工程流程。DeepSeek 模型既然已经能够在这些 Harness 里工作,就没有理由等自己的产品成熟以后再进入市场。先把模型放进去,让用户今天就能用起来。
但是另一方面,如果 DeepSeek 永远只是 Claude Code 或 Codex 里的一个 Model Provider,那么它掌握的是模型能力,却并不完整掌握这些能力最后如何被使用。
这也是为什么我觉得 DeepSeek Harness 的意义,比“再做一个 Coding Agent”更大一些。
它采用的甚至不是简单复制 Claude Code 的思路,而是把整个系统做成“Everything is a plugin”。模型适配器、Tools、Skills、Session、Sandbox、Storage、Agent Loop、Scheduling,甚至 UI 都可以作为插件替换;它还把模型看到的 System Prompt、工具调用、Subagent 调度和上下文注入记录在 Session Event Log 里,用同一条事件流实现 Resume、Fork、Search 和 Replay。
这更像一套 Agent Runtime,而不只是一个固定的编程客户端。
当然,今天讨论它最终能不能形成生态还太早,但方向已经很明确:DeepSeek 不只是希望自己的模型能够运行在别人的 Harness 里,它也开始建立一套自己能够参与定义的 Agent 基础设施。
别人已经修好的高速公路先开上去,同时开始自己修路。
四、但知道该追什么,和真正追上,是两回事
写到这里,很容易得出一个过于乐观的结论:既然国产模型已经越来越强,现在 Harness 也有了,那 Claude Code 很快是不是就没有优势了?
我觉得还没有这么简单。
DeepSeek 自己也非常克制地把这次发布定义为 Developer Preview,而且明确提醒开发者,核心插件和 API 还会持续变化,甚至会出现破坏兼容性的更新。它虽然已经有可以直接运行的 Web UI,也已经能够读写文件、执行命令、维护 Plan 和调用 Subagent,但从一个能够运行的 Agent Runtime,变成开发者每天敢把真实项目交给它的生产工具,中间还有很长的一段路。
因为 Harness 最难的地方,从来不是把功能列表补齐。
Skills、Subagents、Sandbox、Planning、Memory,这些能力最终大家都会有。真正决定体验的是大量细节:模型什么时候应该搜索而不是猜,什么时候应该拆任务而不是自己硬做,多少日志应该进入上下文,什么时候应该压缩历史,执行失败以后能不能恢复,权限询问会不会频繁打断用户,一个任务连续跑几十分钟以后还能不能保持目标不漂移。
OpenAI 甚至专门公开过 Codex Agent Loop 的工程细节,例如为了保持 Prompt Cache 命中率,要控制工具列表、Sandbox 配置和上下文变化;当上下文增长到一定程度以后,又需要 Compact 会话,让 Agent 能继续完成长任务。这样的工程优化并不醒目,却会直接影响成本、速度和稳定性。
Claude Code 今天的优势也不只是 Claude 模型本身,而是 Anthropic 已经围绕真实开发流程迭代了很长时间。DeepSeek Harness 发布以后,我们只是第一次比较清楚地看到 DeepSeek 准备从哪里追赶。
所以与其说“Harness 做出来了,剩下的就是奋力追赶”,我现在更愿意把它改成另一句话:
Harness 做出来以后,真正的追赶才开始。
五、国产AI Coding下一场竞争,可能已经不只是模型了
过去一年,我们判断一家 AI Coding 产品有没有竞争力,最先看的通常是它后面用了什么模型。Claude Opus、GPT、Gemini,或者 DeepSeek、Kimi、GLM,模型名称几乎等于产品能力。
这种判断方式以后可能越来越不够用了。
当模型之间仍然存在巨大能力差距时,当然应该优先选择最强模型。但如果几家模型都已经进入“能够完成大多数常规开发任务”的区间,那么速度、价格和 Harness 就开始共同决定最终体验。模型决定这个 Agent 大概能做到什么,而 Harness 越来越决定它能不能稳定地把事情做完。
这也是为什么我看到 DeepSeek Harness,比看到又一个 Benchmark 提高几分更感兴趣。
它现在还只是 Developer Preview,离 Claude Code、Codex 这样的成熟产品还有明显距离,甚至 DeepSeek 自己目前仍在积极借助这些成熟 Harness 来让 V4 Pro 和 V4 Flash 更快进入开发者工作流。但至少,国产 AI Coding 已经不再只是不断训练一个更强的模型,然后等待别人替它做最后一公里。
DeepSeek 已经开始往模型外面走了。
我之前说,国产 AI Coding 最需要补的已经不是“会不会写代码”,而是如何把模型变成一个真正可靠的开发 Agent。现在 DeepSeek 给出了自己的答案:Agent = Model + Harness。
这不意味着 Claude Code 今天就可以取消订阅,也不意味着 DeepSeek Harness 已经追上了谁。
但至少从现在开始,大家终于开始解决同一个问题了。
而当中国公司既有越来越接近前沿能力、成本又足够低的模型,又开始认真补 Harness、工具和 Agent Runtime 这一层时,国产 AI Coding 接下来真正值得看的,可能已经不再是哪一张 Benchmark 表格上又多了几分,而是谁能最先把这些越来越强的模型,变成一个开发者真正愿意每天使用、可以放心把工作交出去的 Agent。
这才是 DeepSeek Harness 最值得关注的地方。