乐于分享
好东西不私藏

一切皆插件:DeepSeek 开源 Harness,自由度有多高?

一切皆插件:DeepSeek 开源 Harness,自由度有多高?

一切皆插件:DeepSeek 开源 Harness,自由度有多高?

8 月 13 日晚,DeepSeek 在放出 V4 Pro 之后,又甩出一个"组合拳"——DeepSeek Harness v0.1 开发者预览版,MIT 协议完全开源。发布当天 GitHub Star 就冲到 3 万+。它最出圈的一句话是:一切皆插件(Everything is a Plugin)。今天我们就把它拆开,看看"自由度"到底高在哪、又能怎么用。

01 它是什么:模型 + Harness = Agent

先说定位。DeepSeek Harness(命令行叫 dsh不是一个新模型,而是一套让模型能"动手干活"的基础设施。

官方给了一个很清晰的公式:

Model + Harness = Agent

模型负责思考和推理,Harness 负责模型之外的一切工程化工作:工具调用、任务规划、执行调度、记忆、沙箱、会话、UI……换句话说,模型是大脑,Harness 是身体和工作台。

它的核心设计原则只有六个字:一切皆插件。这不是口号——模型适配器是插件,工具注册是插件,会话日志是插件,Agent 循环本身是插件,沙箱、存储、调度、UI 也都是插件。这些组件通过 Cordis 服务与事件彼此协作,在配置层自由组合。开发者不需要改 Harness 的源码,就能以插件方式替换或扩展任何能力。

02 架构:把"可替换"做成了形式保证

为什么"一切皆插件"值得认真对待?因为 DeepSeek 同步发了一篇论文《A Programming Paradigm for Spatiotemporal Composability》(时空可组合性的编程范式),把插件系统的两个老大难问题形式化了:

  • 时间可组合性:插件被卸载时,它做过的所有事(注册的事件、分配的资源、改过的状态)必须被完全回滚。解法是"可逆副作用"——每个操作自动记录逆操作,框架负责恢复。类似 C++ 的 RAII、React 的 useEffect cleanup,但被提升成通用运行时机制。
  • 空间可组合性:插件之间的依赖必须被结构化声明和动态解析。解法是"响应式协效应"——你依赖的服务出现、消失或变化时,框架主动通知你,并把变化分类为"激活/去激活/中性"。你不用轮询,也不用处理"依赖突然没了"的边界情况。

论文还给出了形式化证明:插件可以在运行时任意加载/卸载,系统始终保持一致。底层 Cordis 元框架最早从拥有 4000+ 社区插件的 Koishi 聊天机器人生态里孵化出来,属于"先在小生态验证,再推向大场景"。

三种"接缝":换后端,不动产品

Harness 把"可替换能力"叫做一个 seam(接缝),通常分三部分:接口定义、具体实现、消费模块。最典型的例子是执行环境——本地文件系统、进程、Bash、PTY、LSP 共享一个执行世界;如果把文件系统/进程的实现换成远程沙箱,相关工具会跟着迁移,而不是为每个工具长出一套独立的远程分支。

03 四种模式:同一套插件,装出不同产品

Harness 预置了四种模式,每种只是加载了不同的插件集合:

模式 装了什么 适合谁
标准模式 完整工具组合 日常开发
PTC 模式(程序化工具调用) 模型生成一段 TypeScript 编排多轮工具调用,只有最终结果回上下文,省 Token 长链路任务
极简模式 仅一个 shell + 一个文件编辑工具 模型基准测试
创造模式 可检视运行时、在内存里试插 Cordis 插件,甚至让 Agent 改装自己 框架玩家

其中 PTC 模式很值得说:模型不再每轮只发一个工具调用,而是写一段代码把多轮工具调用编排起来,中间数据留在运行环境,只有最终结果进模型上下文——既能省 Token,又能减少来回轮次。

另外,模型看到的一切——系统提示词、思维链、工具调用与结果、子 Agent 调度、每一次上下文注入——都会写入一份仅追加(append-only)的会话日志。在 Trajectory 视图里,你可以按来源查看这些信息,还能恢复、分叉、检索与回放同一份事件流。做 Agent 行为回归测试时,这套"分叉+重放"非常实用。

04 和其他 harness 差在哪:它是元框架,不是产品

Claude Code、Codex、OpenClaw 是产品——你按它的规则用。Harness 更像一套元框架——你用它来组装自己的 Agent 产品:模型能换、工具能换、循环逻辑能换、安全策略能换、UI 能换。

大多数 harness 允许你加工具、换模型;但几乎没有一个允许你不改源码就替换编排逻辑本身。Harness 连 Agent Loop 都是插件,这是它和同类最大的不同。

配置通过一份 cordis.yml 落到你手里:列出插件名、稳定 ID 和参数,就决定了当前 Agent 拥有哪一组能力。加入 DeepSeek LLM 适配器 + 文件系统 + Bash + TUI,得到终端编程智能体;把界面换成 Web 插件,得到浏览器应用;换成 Headless 入口,它接受一个任务、跑完、打印答案就退出;换成 ACP / JSON-RPC 前门,它又成了别的服务可以驱动的自动化引擎。

05 一行命令上手

已装 Node.js 的开发者,一行命令就能跑起来:

npx @deepseek-ai/dsh web

Web UI 默认在 http://127.0.0.1:3080。想从源码跑:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

MIT 协议,完全开源;支持 MCP 协议与 OpenAI 兼容端点,并附带 Python SDK 驱动的 JSON-RPC 运行时,Python 应用也能启动会话、发任务、收通知。

06 客观提醒:还是开发者预览

说几点公允的话,避免一上头就当生产框架用:

  • v0.1 是早期预览:官方 README 用大写警告会有破坏性变更,插件 API 跨版本不保证稳定,谨慎锁定版本。
  • 插件生态治理是长期挑战:Hacker News 上就有开发者质疑——"靠社区插件提供功能的产品,头半年都好,之后就是不兼容、过时、缺一致性的噩梦"。DeepSeek 的回应是 Cordis 的形式化保证,但量级从 4000 个 Koishi 插件到全球开发者社区,难度不在同一个台阶。
  • 它争的是入口,不是模型:V4 Pro 与 Harness 同天发布不是巧合——DeepSeek 不再只卖可被调用的模型,而是开始争夺模型之上的开发者生态入口。

结语

如果用一个词概括 DeepSeek Harness:可拆解、可重组。它把"运行时、状态、权限、执行环境、回放、部署组合"这些 Agent 产品里最容易烂掉的部分,直接做进了架构本身。它现在还不成熟,但方向很清楚——模型、工具、会话、沙箱、UI、乃至 Agent Loop,都应该是可以替换的组件。

想先跑一次?npx @deepseek-ai/dsh web,十分钟就能感受到"一切皆插件"是什么意思。


参考资料:DeepSeek 官方 GitHub(deepseek-ai/deepseek-harness)、DeepSeek Harness v0.1 发布公告、论文《A Programming Paradigm for Spatiotemporal Composability》(2026-08-13 预印本)。
发布日期:2026-08-14