乐于分享
好东西不私藏

「一切皆插件」: 拆解 DeepSeek 首个开源智能体框架 Harness

「一切皆插件」: 拆解 DeepSeek 首个开源智能体框架 Harness

连 Agent 循环本身都是插件——这可能是今年最有野心的一次 Agent 开源。

一、黑色鲸鱼浮出水面

8 月 13 日晚,DeepSeek 连放两记重磅:

  • 先是官方宣布 DeepSeek-V4-Pro 正式版上线,并同步预告 API 即将大幅涨价;
  • 仅仅两小时后,DeepSeek Harness(dsh)开发者预览版 v0.1 面向全球开放测试,并以 MIT 协议完整开源。

这套"闪电二连击"瞬间引爆海内外开发者社区:项目上线半小时 GitHub 星标破万,当天突破 3.3 万,几天后逼近 4 万。参与内测的开发者纷纷晒出体验感言和大合影——这只 Logo 为黑色鲸鱼的开源项目,终于游到台前。

但真正让社区炸锅的,不是"DeepSeek 也做了一个 Claude Code",而是它的设计哲学——一切皆插件(Everything is a Plugin)

二、Harness 是什么?大厂为什么都在抢这个生态位

先理解概念。DeepSeek 内部有一个公式:

Model + Harness = Agent

  • Model 是大脑,负责推理;
  • Harness 是身体,负责把大脑接到真实世界——文件系统、Shell、浏览器、其他 Agent,同时记录模型做了什么、限制它不能做什么、出错时决定重试、取消还是压缩上下文。

"Harness"本义是"马具/线束/约束装置",在 AI 语境里,它特指夹在模型与工具之间的那一整层工程系统。OpenAI 自己现在也明确把 Codex 的核心称为 agent loop / harness:负责把用户输入、模型推理、工具调用、执行结果不断循环起来,直到任务完成。

这一层决定了模型能发挥几成功力——所以大厂都在抢。

今年,DeepSeek 专门组建了 Harness 团队,资深研究员陈德里说过一句大白话:"简单来说,就是对标 Claude Code,做 DeepSeek Code Harness。"团队负责人崔添翼此前在顶级量化机构 Jane Street 有九年系统开发经验——这个背景,解释了为什么这套框架对执行细节、可观测性、工程化如此较真。

三、先看全景:它和 Claude Code、Codex 到底差别在哪

在拆开技术细节之前,先用一张表建立整体印象——看看 dsh 站在今天主流 Agent 方案的哪个位置。表里一些概念后面会逐节展开,这里先抓个轮廓:

维度

LangChain / AutoGPT

Claude Code

OpenAI Codex

DeepSeek Harness

本质

编排库/框架

闭源商业产品

闭源商业产品(CLI 开源)

开源平台/框架

核心循环

内置,框架定义

内置,不可动

内置,不可动

插件,可整体替换

模型适配器

可配置

锁定 Anthropic

主要是 OpenAI

插件,数十家+自定义

"插件"的含义

工具/链节点

打包层(Skills/Hooks/MCP)

Skills/MCP

一切组件

热插拔

不支持

不支持

不支持

支持(卸载即回滚)

会话日志

简单存储

内部实现

内部实现

事件溯源,可回放/分叉

定位

帮开发者调模型

开箱即用的产品

开箱即用的产品

让开发者造产品

区别可以浓缩成三句话:

  • LangChain 系
    解决的是"怎么编排模型与工具",但 agent loop、会话、沙箱这些底座,依然是框架替你定死的;
  • Claude Code / Codex
     解决的是"开箱即用",核心逻辑是死的,只能向外扩展(装 MCP、装 Skills);
  • DeepSeek Harness
 解决的是"底座本身可重构":它不是产品,是平台。你不满意任何一层,换掉它。

这也是为什么有人评价:这是 Agent 领域的"Linux 时刻"——内核可模块化、按需组合,而不是只有一个发行版。

下面几节,我们就把这些差异逐项拆开。

四、"一切皆插件":不是给 Agent 加插件,而是用插件拼出 Agent 本身

回到开头那张表最关键的一行——dsh 的核心循环"可整体替换"。这正是"一切皆插件"的起点,也是全篇最需要掰开揉碎的一点。

我们平时说的"给 Agent 装插件",是给一个已经造好的产品加功能——给 Claude Code 加个浏览器工具、给 Codex 配个 MCP Server。产品本体是固定的,插件只是附件。

DeepSeek Harness 的"插件"完全是另一个量级:模型适配器、工具注册表、技能、会话、沙箱、存储、调度、UI……甚至 Agent 循环(agent loop)本身,全部都是插件。

DeepSeek公开文档里有一处措辞极其关键:agent-loop 这个包,被定义为"Agent 公开接口的一个具体实现"(one concrete implementation)——注意,是"一个",不是"那个"。所有扩展插件依赖的是接口包,从不直接依赖 agent-loop,所以这个循环随时可以被整体换掉

文档还强调:"没有特权核心可以修补"(no privileged core to patch)。扩展 Harness 的方式不是改源码,而是在它旁边挂一个插件,然后在配置层组合。

做一个不恰当的比喻:普通工具开源的是一份"坐诊医生名单";DeepSeek Harness 连挂号、门诊、收费、取药的流程,都开放给你打乱、取消、重构。

五、技术底座:Cordis 元框架与"时空可组合性"

把一切做成插件,第一个要回答的问题是:插件怎么拼、怎么拆、拆了之后会不会留下一地鸡毛?

dsh 没有从零造轮子,而是把 Cordis 的源码整个拷进了自己的仓库、锁定版本、可以按需改。。Cordis 是国内聊天机器人框架 Koishi 的新一代内核——在机器人圈子里,Koishi 处理了多年"插件热插拔、运行时组合"的难题,沉淀出 Cordis,还配套写了一篇论文:

《A Programming Paradigm for Spatiotemporal Composability》(一套处理时空可组合性的编程范式),由北京大学与 DeepSeek 研究人员联合署名。

Cordis 元框架只负责三件事:插件的加载、卸载、依赖关系。它本身不承载任何业务功能,Agent Harness 的所有具体组件都是不同的 Cordis 插件,通过 Cordis 的服务(Service)与事件(Event)彼此协作,在配置层自由组合。

论文的核心,是把"插件系统为什么难做"提炼成两个正交维度:

  1. 时间可组合性(Temporal Composability)
    :组件被卸载后,它对共享环境做过的每一次修改都必须可以完全撤销。
  1. 空间可组合性(Spatial Composability)
    :组件必须能声明、发现、校验依赖;当某个依赖出现、消失或被替换时,系统自动激活或停用相关组件。

论文证明了五条元定理,其中最关键的是一条 汇合性(Confluence):无论插件以什么顺序插入、移除、替换,最终系统状态与"一次性静态组装出最终配置"的结果同构。翻译成人话——你完全不用操心调度顺序,系统怎么折腾,最后都收敛到同一个正确状态

论文还拿 VSCode 开刀:截至 2026 年 6 月,Marketplace 前 100 的扩展中,87 个包含可执行代码,但一旦激活就无法在运行时单独卸载,禁用或删除必须重启整个扩展宿主。几乎所有主流插件系统都有这个毛病,只是程度不同——普通软件里重启一下还能忍;而在 Agent 语境下,一个 harness 里塞着工具集、执行环境、权限控制、沙箱、会话状态、记忆系统,任何组件都要重启才能换,根本没法忍。

更关键的是,这不是实验室玩具:Cordis 的前身 Koishi 已在生产环境跑了四年,拥有 4000+ 社区插件。DeepSeek 不是从零发明,而是把一套"踩过坑的地基"搬过来当 Agent 的脊柱,还动手改造过。

六、四个模式:同一套积木,四种官方装法

针对不同场景,dsh 默认提供四种运行模式,每种模式就是一套默认加载的插件集合:

模式

默认插件组合

适用场景

标准模式

功能全开的编码 Agent:文件编辑、Shell、检索、Skills、计划、子代理、工作流

对标 Claude Code / Codex 的日常开发

PTC 模式

程序化工具调用(Programmatic Tool Calling):模型生成一段 TypeScript 程序,把十几步操作一次性串起来跑完,只返回最终结果

重度自动化、在意 token 成本的批处理

极简模式

只留两个工具:持久 bash + 文件编辑工具

最小环境下的模型基准测试(如 SWE-bench)

创造模式

标准模式全部能力 + 运行时检查、内存中试验插件、创作新模式的引导

插件开发者"做模式的模式"

切换模式不是切换模型能力,而是切换"这个 agent 手上有哪些工具、按什么规则跑"。换句话:同一套积木,官方给了四种默认装法,你也可以自己装出第五种、第五十种。

(有媒体实测:极简模式下写一个贪吃蛇游戏只用了 50 多秒;标准模式下翻译 88 页论文耗时 22 分钟、派发 10 个子代理、缓存命中率 98%。)

七、每一次运行都有迹可循:事件溯源式会话日志

对应开头那张表里的"会话日志:事件溯源,可回放/分叉"——这是 dsh 的另一个硬核设计:会话是一份仅追加(append-only)的事件日志

系统提示词、思维链、工具调用与结果、子 Agent 调度、每一次上下文注入——模型看到的一切,都必须能从日志里重建出来。文档把这条不变量写得很直白:

Model-visible means logged(对模型可见,即已记录)。

而且这不是写给人看的约束,是代码里有运行时断言在检查的。消息历史是从日志"投影"出来的,从不单独存储,连流式分片的原始 chunk 都保留。于是恢复、分叉(fork)、检索、回放全部共享同一份事件流——Trajectory 视图让你按来源回放一次运行的完整轨迹,报错信息也一目了然。

有开发者评价:事件溯源(event sourcing)在后端圈被讲烂了,但真正把它彻底用在 Agent 会话上、并且用运行时断言保证"可见即已记录"的,dsh 是目前见过最彻底的一个。

八、能力接缝:换一个 provider,整个产品都变

对应开头那张表里"热插拔:支持(卸载即回滚)"的工程落点——capability seam(能力接缝)

"全插件"如果只是抽象洁癖,那没有意义。一个 seam 由三个角色组成:

  • Service Definition(接口声明):定义"什么是执行命令";
  • Service Provider(实现):本地真正去创建进程;
  • Consumer(消费者):面向模型的工具,把能力翻译成模型能理解的 schema 和结果。

好处是立竿见影的:文件系统和子进程共享同一个"执行世界",你把它们的 provider 指向远程沙箱,Bash、PTY、LSP 会跟着一起搬到远程,不需要为每个工具单独 fork 一套。文档原话:seams are why one provider swap changes the whole product——接缝,就是为什么换一个 provider 能改变整个产品。

安全方面也做得很实:本地后端用 Linux Landlock(DeepSeek 自己写了一个 Node addon)、macOS SeatbeltWindows ACL 受限令牌包裹子进程,默认工作区只读,权限可配置。

九、不绑定自家模型,甚至能指挥 Claude Code

对应开头那张表里"模型适配器:插件,数十家+自定义"——dsh 在设计上并不绑定 DeepSeek 模型,模型适配器就是插件,provider 目录覆盖 DeepSeek、Anthropic、OpenAI、AWS Bedrock、Azure、Google Gemini 企业平台,以及自定义 OpenAI 兼容网关,合计支持数十家。

更有意思的是,它还内置两个子代理 provider,可以把任务直接委托给 Anthropic Claude Code 和 OpenAI Codex 的本机二进制(默认关闭),还提供桥接层,能兼容运行用户在 Claude Code / Codex 里写好的 hooks.json——官方坦言这只是"兼容路径,不是更好的设计",但诚意拉满。

MCP 客户端、Agent Client Protocol 也都在支持列表里,还能读 AGENTS.md 和 CLAUDE.md。

十、自进化的伏笔:cordis_* 工具族

最容易被忽略、也最野的设计,是 cordis_* 工具族cordis_definecordis_runcordis_stopcordis_undefinecordis_inspect_query

这意味着什么?Agent 可以在会话中途,自己写一个插件包、激活它、用完后拆掉,全程不用重启——模型在运行中扩展自己的运行时。官方对这块相当谨慎(执行动态代码会弹审批),但把它和"社区插件生态+海量 Agent 实例"放在一起看,自进化的拼图就完整了:从成百上千万个 Agent 实例里,筛出魔改得好的插件,再融回主线。

配合今年 Anthropic 那篇 self-improvement 博客引发的讨论,DeepSeek 这套"模型自己给自己造工具"的路线,被不少人认为是目前看到的最可落地的自进化实现路径之一。

十一、为什么讨论这么热烈?

1. 反预期
发布前社区普遍猜测会采用 PiAgent 架构、或搭载缓存命中率超高的 Reasonix 组件,结果全猜错——DeepSeek 走了一条完全独立的技术路线,还掏出一篇与北大联合署名的正经论文垫底。
2. 定位之辩
很多人拿着"Claude Code 竞品"的期待去试,结果发现是个"毛坯房":UI 极简、功能克制、面向开发者而非 C 端用户。有人觉得"就这?",有人觉得这才是真开源。也有内测工程师感叹:难怪团队要在开源社区专门招做 Agent 的人——普通工程师在毛坯房里玩不转。
3. 架构门槛 vs 乐高自由度
极端自由换来的是架构理解成本,这是社区最集中的吐槽点。但另一边,官方内置插件上百个,社区插件发布次日已接近 300 个,皮肤、TUI、功能扩展层出不穷——对喜欢折腾的人,这就是一盒乐高。
4. 成本叙事
有实测数据显示,dsh 搭配 V4 模型的三层缓存,任务级缓存命中率可达 95% 以上,单次复杂编程任务的成本可被压低到几毛钱量级,而同类产品可能高出数十倍甚至上百倍。叠加当天涨价公告,"模型+框架"的组合拳被解读为:DeepSeek 要从卖 token,转向卖"执行层"——也就是决定模型怎么用工具的那一层。
5. 生态战略
MIT 协议+暂时不收外部 PR(只收插件和讨论)+"官方包不比社区包更权威"的表态,摆明了要赌一个社区驱动的插件生态。一天 3 万多星的开局,给了这场赌局一个梦幻开局。

当然,冷水也不少:官方自己用大写字母警告"未来会有破坏兼容性的变更";v0.1 还很粗糙,插件 API 尚未稳定;企业生产落地为时尚早。有人把它吹成"Agent 时代的安卓",也有人提醒它目前更像一张精心绘制的图纸,而不是一栋盖好的楼。

十二、结语

DeepSeek Harness 真正有意思的地方,不是"DeepSeek 也做了个 Claude Code",而是它对"Agent 应该是什么"给出了一个很不一样的答案:

Agent 不是一个做好的产品,而是一堆可以自由拼装、替换的组件。

模型是大脑,harness 是身体。当"大脑与身体之间的接口"变成一套开源标准,模型竞争就会从"谁的智商高"延伸到"谁的生态大"。

也许过几年回看,8 月 13 日晚上这只黑色鲸鱼浮出水面的时刻,会是 Agent 领域的一个分水岭。