两个月、12293 个提交,DeepSeek Harness 开源的不是另一个 Claude Code
从 6 月 10 日第一笔提交,到 8 月 13 日晚正式宣布开源,DeepSeek Harness 只用了 64 天。
截至 8 月 14 日上午,GitHub 仓库首页显示 19 位贡献者、12,293 个提交。这个数字很容易把讨论带向“DeepSeek 两个月写了多少代码”,或者把它直接叫作又一个 Claude Code。
我的判断是:12,293 个提交首先说明这套系统经历了极高频的内部迭代,不等于 12,293 个独立功能。DeepSeek Harness 真正重要的地方,是把模型之外那层决定 Agent 如何工作、如何调用工具、如何保存状态、如何被约束的运行时公开了。
这不是单纯多了一个 Coding Agent 客户端,而是模型公司开始争夺 Agent 的“操作系统层”。
64 天和 12,293 个提交,应该怎样读
仓库的首次提交发生在 2026 年 6 月 10 日 22:58,没有父提交,只加入了 5 个基础文件。最初的 AGENTS.md 还把项目描述为承载 DeepSeek Code 的 monorepo,并明确写出底层基于 Cordis。
8 月 13 日 21:02,DeepSeek 在官方 X 账号宣布 DeepSeek Harness v0.1 进入 Developer Preview,完整代码以 MIT License 开放。到了 8 月 14 日上午,仓库已经显示 12,293 个提交。
GitHub Contributors 页面还给出了更细的节奏:
- 6 月 7 日所在周只有 37 个提交;
- 7 月 12 日所在周上升到 1,422 个;
- 7 月 19 日所在周是 2,169 个;
- 7 月 26 日所在周达到 3,646 个峰值;
- 提交最多的一位贡献者累计 5,235 个提交。
GitHub 甚至因为提交数超过 10,000,停止在 Contributors 图表中展示增删行数。
但这里必须加一个边界:commit 不是功能、不是 Pull Request,也不是质量单位。 仓库历史里同时存在功能开发、合并提交、文档同步、命名重构、测试调整、依赖与 vendored 源码维护,以及开源前密集的发布准备。把 12,293 直接翻译成“做了 12,293 件事”,和把代码行数当作生产力一样不可靠。
这个数字真正能证明的是迭代方式:少量贡献者把变更拆得很细,并在 7 月下旬进入极高频的集成阶段。它能说明工程节奏,不能替代架构审查、安全测试和真实任务评测。
DeepSeek 开源的是模型外面的那一层
DeepSeek 官方页面用一句话定义 Harness:
Agent = Model + Harness
模型负责理解和推理,Harness 负责让模型看见环境、调用工具、维持状态,并把一次回答变成可以持续工作的过程。
传统 Coding Agent 往往把这些能力包在一个产品里。用户可以更换模型或添加少量工具,却很难替换会话存储、Agent Loop、权限策略和 UI。DeepSeek Harness 采用了更激进的设计:Everything is a Plugin,一切皆插件。
它底层使用 Cordis。Cordis 内核只处理插件的加载、卸载和依赖关系,不承载某个不可替换的 Agent 核心。按照官方架构文档,下面这些部分都可以从配置层组合或替换:
| Agent 能力 | 在 DeepSeek Harness 中的角色 | 替换后可能改变什么 |
|---|---|---|
| 模型适配器 | 把不同模型协议接入统一运行时 | 模型、推理协议、流式响应 |
| 工具注册表 | 提供工具描述与受控执行管线 | Shell、文件、检索、MCP 等能力 |
| Session Log | 保存仅追加的会话事件 | 恢复、分叉、检索、回放和审计 |
| Agent Loop | 驱动模型请求、工具调用和下一步 | 任务循环、错误恢复、停止条件 |
| 文件系统与沙箱 | 定义 Agent 能访问和执行的环境 | 本机、远程沙箱、权限隔离 |
| 调度与子 Agent | 组织并行或委派任务 | 工作拆分、后台任务、协作方式 |
| UI 与 Profile | 组合具体产品形态 | Web、Headless 或自定义工作台 |
这套设计的关键不是“插件数量多”,而是没有一个必须修改的特权核心。要接入新的模型、工具或沙箱,目标不是给主循环不断增加条件分支,而是在现有能力接缝旁挂载新的插件。
如果它能保持这一边界,DeepSeek Harness 更像一个 Agent 运行时发行版,而不是一款只能按官方方式使用的编程助手。
“每次运行都有迹可循”比界面更重要
在所有插件中,最值得关注的不是模型适配器,而是 Session Log。
DeepSeek Harness 使用仅追加的事件日志。系统提示词、模型可见上下文、模型输出、工具调用与结果、子 Agent 调度和上下文注入都会写入同一条事件流。架构文档把规则写得很直接:Model-visible means logged,模型能看到的内容必须可以从日志重建。
因此,恢复会话、创建分叉、生成 transcript、回放过程、统计 telemetry 和渲染 Web UI,不需要分别维护几套状态,而是从同一份日志派生。
这解决了 Agent 系统一个很现实的问题:失败通常不是出现在最终答案,而是发生在中间某一步。模型为什么看到了这段上下文?哪个工具返回了错误结果?权限批准发生在第几轮?如果运行过程无法重建,团队就只能根据最后一句“任务已完成”猜测。
不过,可观测性也有代价。系统提示词、工具结果、文件内容和上下文注入都可能包含敏感信息。仅追加日志让审计更可靠,也扩大了需要定义保存期限、访问权限、脱敏和删除流程的数据面。能回放不是天然安全,日志本身就是需要保护的生产数据。
四种模式,其实是四套 Harness 实验条件
官方预览版提供四种模式:
| 模式 | 工具和执行方式 | 适合观察什么 |
|---|---|---|
| 标准模式 | 文件、Shell、检索、Skills、计划、子 Agent 等完整能力 | 日常 Coding Agent 工作流 |
| PTC 模式 | 让模型生成 TypeScript 程序,组合多轮工具调用 | 减少工具往返并测试程序化编排 |
| 极简模式 | 只保留 Bash 和 str_replace_editor |
在统一、最小 Harness 下比较模型 |
| 创造模式 | 增加运行时检查、插件实验与 Preset 创作能力 | 组合新的 Agent 形态 |
这里最容易被低估的是极简模式。公开模型评测经常把“模型能力”和“Agent Harness 能力”混在一起。只提供 Bash 与文件编辑工具,可以把更多变量固定下来;标准模式则更接近真实生产,但结果也会受到工具、Skills、子 Agent 和权限策略影响。
这正好延续了我在 Coding Agent 评测文章 中的判断:榜单测量的从来不只是模型,而是模型、Harness、工具、指令、环境和评分器组成的完整系统。
DeepSeek 把几套运行模式放在同一框架里,意味着开发者可以更清楚地回答一个问题:这次成功究竟来自模型变强,还是 Harness 给了它更多能力?
它并不要求你只用 DeepSeek 模型
虽然项目叫 DeepSeek Harness,但模型适配层不是 DeepSeek 专用接口。
官方模型配置指南列出了 DeepSeek、Anthropic、OpenAI、Bedrock、Vertex、Azure 与 Codex 等认证路径,也允许配置企业网关、自建服务和其他 OpenAI 兼容端点。模型切换会在下一次请求生效,不需要重启服务。
快速体验只需要安装 Node.js,然后执行:
1 | npx @deepseek-ai/dsh web |
Web UI 默认启动在 http://127.0.0.1:3080。选择工作区、配置模型后,Agent 可以读取和修改文件、运行命令、委派任务和维护计划;遇到权限策略要求审批的操作,Web UI 会先询问用户。
这进一步说明 DeepSeek 争夺的不是某个模型入口,而是模型进入真实工作环境之后的控制层。如果开发者能在同一 Harness 下替换模型、工具和沙箱,模型提供方之间的比较会更透明,团队也更容易建立自己的路由与回归评测。
MIT 开源,不等于已经进入稳定期
“正式开源”和“正式可用于生产”是两件事。
仓库 README 明确标记为 Developer Preview,并用大写警告后续会出现破坏兼容性的改动。8 月 14 日查询时,GitHub 仍显示 0 个 Tags;开源前最后的发布准备提交使用的是 0.1.0-rc.5。这不是语义稳定、升级路径清楚的长期支持版本。
开源治理也还没有完全开放。CONTRIBUTING.md写明,项目当前暂不接受外部 Pull Request。社区可以在 Discussions 报告问题、编写文档和开发带有 dsh-plugin topic 的插件,但官方仓库的代码合入仍由内部团队控制。
所以目前更准确的状态是:
| 维度 | 8 月 14 日的状态 |
|---|---|
| 源码许可 | MIT,可查看、修改、分发和派生 |
| 产品阶段 | v0.1 Developer Preview |
| API 稳定性 | 官方明确可能出现破坏性变更 |
| 外部代码贡献 | 暂不接受官方仓库 Pull Request |
| 社区参与 | Discussions、文档、教程和独立插件 |
这不削弱开源本身的价值,但它决定了采用方式:可以研究、试用、Fork 和做插件,暂时不应该把 master 或浮动的 npx 版本直接当作稳定生产依赖。
源码开放回答“能不能看、能不能改”,开放治理回答“社区怎样共同决定下一版”。DeepSeek Harness 已经完成前者,后者还在起步。
团队现在最值得做的不是迁移,而是拆开看
如果团队已经在使用 Claude Code、Codex、OpenCode 或自研 Agent,没有必要因为 12,293 个提交就立刻迁移。更有价值的做法是把 DeepSeek Harness 当作一份可执行的架构样本。
可以先验证五件事:
- 固定版本:记录测试使用的 commit SHA,不让浮动依赖在不同时间自动改变实验条件;
- 重放真实任务:使用同一个模型、仓库和验收脚本,对比现有 Harness 与 DeepSeek Harness 的成功率、耗时、工具轮数和人工接管;
- 检查权限边界:验证文件系统、Shell、网络、子 Agent 和审批策略是否符合自己的安全要求;
- 审查日志数据:确认模型可见内容写到哪里、保存多久、谁能读取,以及怎样脱敏和删除;
- 测试插件升级:挑一个模型适配器或工具插件,观察替换是否真的不需要修改 Agent Loop,并记录破坏性变更成本。
这五项比“它能不能生成一个小游戏”更接近生产选型。Demo 证明能力存在,回归测试和权限审计才证明能力可控。
12,293 个提交之后,竞争对象变了
DeepSeek Harness 的开源,把最近几天的两件事连到了一起:模型升级负责提高推理与代码能力,Harness 负责把这些能力变成可以调用工具、保持状态、接受约束和持续运行的系统。
模型像发动机,Harness 不是简单的车壳,而是变速箱、制动、仪表、行车记录和驾驶规则。发动机再强,如果周围系统无法替换、无法重建过程、无法限制权限,团队仍然不敢让它驶入生产。
因此,12,293 个提交不是 DeepSeek Harness 的质量证书。它更像一份公开的施工记录:告诉我们 19 位贡献者在两个月里怎样不断拆分、重组和收敛一套 Agent 运行时。
真正的里程碑是,DeepSeek 不再只开放模型和 API,而是把决定模型如何工作的 Harness 层也摆到了桌面上。
接下来要看的,不是谁能最快 Fork 仓库,而是谁能证明“一切皆插件”在经历外部扩展、版本升级和生产故障后,仍然保持可组合、可回放和可控制。
资料与口径
- DeepSeek:DeepSeek Harness 官方发布页,开发者预览与“一切皆插件”设计说明
- DeepSeek:官方 X 发布帖,2026-08-13 21:02(北京时间)
- GitHub:deepseek-ai/deepseek-harness,MIT License、Developer Preview、仓库与贡献者快照
- GitHub:首次提交 b67e81a,2026-06-10 22:58(北京时间)
- GitHub:Contributors,用于核对 19 位贡献者、提交总量与每周变化
- DeepSeek Harness:架构文档、快速开始、模型配置与贡献指南
- The New Stack:DeepSeek open sources an agent harness where everything is a plugin,2026-08-13,用于交叉核对开源阶段与架构解读
- 查询日期:2026-08-14。提交数、贡献者、Stars、包版本和社区规则会持续变化,引用时应重新核对仓库实时状态。