DeepSeek Harness(dsh)是 DeepSeek AI 在 2026 年 8 月发布到 GitHub 的 agent harness,基于 Cordis 的「一切皆插件」架构,把模型适配器、工具注册表、会话日志和 agent loop 都做成可替换插件。MCP 则是连接 AI 应用与外部工具、数据的开放协议,解决的是能力接入,不负责 harness 的组装与生命周期。两者不在同一层:MCP 可以作为一种能力被 DSH 的插件系统接入,而 Cordis 插件还能替换核心组件、注入策略和扩展 UI。本文用架构分层、对比表和决策清单,说明什么时候该写 MCP Server,什么时候该写 DSH 插件,以及两者如何组合。

发布日期:2026-10-30 | 话题:DeepSeek Harness、Cordis、MCP | 约 2,000 字

DeepSeek Harness 的 Cordis 插件架构和 MCP 不在同一层:Cordis 解决 harness 如何组装、替换和卸载组件,MCP 解决 agent 如何以标准协议连接外部工具与数据。把两者当成竞品,是选型中最常见的误判。

一、先给结论:一个是装配层,一个是能力协议

截至 2026-10-30,DeepSeek Harness 在 GitHub 上有 265,807 stars、32,216 forks,许可证为 MIT,仍处于 developer preview。它的卖点不是「又做了一个 Agent」,而是把 Agent 的运行方式拆成可替换的插件树。

MCP 是 Model Context Protocol 的缩写,2026-07-28 是当前规范版本。它定义 AI 应用如何连接外部数据源、工具和工作流,不定义 Agent 内部怎么组织循环、怎么加载插件。

一句话:Cordis 管「Harness 由什么组成」,MCP 管「Agent 能调用什么」。

二、Cordis 把 Harness 的每一层都变成了插件

DeepSeek Harness 官方架构文档写得很直接:Cordis 是 dsh 底层的插件框架,插件向共享上下文贡献服务、类型化事件和可逆副作用;产品的每一部分都是插件,包括模型适配器、工具注册表、会话日志和 agent loop 本身。

这意味着没有「必须改源码」的特权内核。要换模型,注册一个新的 ctx.llm 适配器;要加工具,注册到 ctx.tools;要改提示词、会话记录、甚至 Agent 循环,都可以通过插件和事件完成。

Cordis 的两个设计点值得记住:

  • 时间可组合性:每个注册都是可逆副作用,插件卸载时自动撤销,不会留下半截状态。

  • 空间可组合性:插件用 inject 声明依赖,服务就绪才加载,服务消失就卸载。

这也是 DSH 敢说「Everything is a Plugin」的原因:不是把工具叫插件,而是把生命周期、依赖和撤销都做进了运行时。模型适配器就是一个具体例子:把它指向一个 OpenAI 兼容端点,就能换模型而不改 agent loop;例如,七牛云AI 提供 https://api.qnaigc.com/v1 这类兼容端点,配置时只需替换 baseURL、模型 ID 和 Key。

三、MCP 只解决「如何接外部能力」

MCP 的官方定义是:一个连接 AI 应用与外部系统的开放标准,让 AI 应用连接数据源、工具和工作流。它采用 host/client/server 架构:Host 是 AI 应用,Client 与每个 Server 保持 1:1 连接,Server 暴露 tools、resources、prompts 三类能力。

协议层基于 JSON-RPC 2.0,支持 stdio 和 Streamable HTTP 两种传输;2026-07-28 规范把 MCP 描述为无状态协议,每个请求自带协议版本和能力信息。

关键是它的边界:MCP 官方明确说,MCP 只关注上下文交换协议,不规定 AI 应用如何使用 LLM,也不管理应用提供的上下文。换句话说,MCP 管「能力怎么暴露、怎么调用」,不管「Harness 怎么组装、插件怎么卸载、UI 怎么渲染」。

所以 MCP 不是插件系统,插件系统也不是 MCP 的替代品。

四、一张表看清差异

维度

Cordis / DSH 插件

MCP

所在层

Harness 装配层

能力接入协议

扩展单位

插件(服务、事件、UI、适配器)

Server(tools/resources/prompts)

能否替换核心

能:模型适配器、工具注册表、会话日志、agent loop

不能:Host 决定如何使用能力

跨客户端复用

主要服务 DSH

可被多个 MCP Host 复用

生命周期

依赖注入、卸载、HMR、profile/bundle

连接、发现、调用、取消;无插件生命周期

权限位置

在 Harness 进程内,权限更高

在 Host 之外,Host 控制授权与隔离

分发方式

npm、Git、DSH 插件索引

MCP Registry、npm、远程端点

这张表的核心不是谁更强,而是谁负责哪一层。用 MCP 去替代 Cordis,会得到一个「只有工具、没有装配」的 Harness;用插件去替代 MCP,会失去跨客户端复用和标准协议带来的生态。

五、在 DSH 里,MCP 客户端本身就是插件

最有说服力的证据是 DSH 自己的实现:MCP 客户端在 DSH 里就是一条插件配置。官方 dsh-mcp-client 为每台服务器配置一条记录,把发现的工具注册进 ctx.tools,并以 mcp__<serverName>__<tool> 的稳定名称暴露给模型。

- id: mcp-web
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: web
    transport: streamable-http
    url: http://localhost:3000/mcp

这段配置说明了两件事:

  1. 在 DSH 的配置里,MCP Server 是外部能力,不是 DSH 插件;

  2. 把 MCP 接进 DSH 的桥接器,是一个 DSH 插件。

DSH 的 MCP 支持也不是「全协议照单全收」:官方文档列出,它支持 stdio 和 Streamable HTTP、工具调用、资源读取和服务器指令,但当前不支持 MCP 提示词模板、人工输入征询、基于任务的执行和资源订阅。

这恰好说明插件层的价值:协议没覆盖的部分,可以由插件补策略、补 UI、补生命周期;协议覆盖的部分,没必要重新发明。

六、什么时候写 MCP Server,什么时候写 DSH 插件

用四个问题就能判断:

  1. 这个能力要给 Claude Code、Codex、其他 MCP Host 复用吗?是 → 写 MCP Server。

  2. 你要替换的是模型适配器、工具注册表、会话日志、agent loop 或 UI 吗?是 → 写 DSH 插件。

  3. 你要在工具调用前后加审批、审计、权限或 UI 卡片吗?是 → 写 DSH 插件,包住 MCP 工具或原生工具。

  4. 只是给 DSH 加一个内部小工具,不需要跨客户端?→ 先写插件工具;以后要复用,再抽成 MCP Server。

需求

首选

跨客户端复用数据库、搜索、文件能力

MCP Server

替换模型适配器或 Agent Loop

DSH 插件

给 MCP 工具加审批、审计、UI

DSH 插件 + MCP

只服务 DSH 的轻量工具

DSH 插件工具

分发给非 DSH 用户

MCP Server + MCP Registry

一个常见的组合是:把「能做什么」放在 MCP Server,把「在 DSH 里怎么做、什么时候允许做、做完怎么展示」放在插件。这样能力可复用,策略也可控。

安全边界也要按这个分层理解。DSH 官方安全说明明确写着:项目仍是实验性开发者预览,未经过安全审计,DSH 可以执行模型生成的代码、加载第三方插件,并访问网络、进程和凭据;沙箱和审批只能降低风险,不能保证隔离。MCP 的边界则在 Host 与 Server 之间,Host 负责连接权限、授权和隔离。

换句话说,在信任边界上,插件在门内,MCP Server 在门外。装一个 DSH 插件,通常比接一个远程 MCP Server 拥有更高的信任要求;反过来说,MCP Server 也不是天然安全,仍要审查来源、权限和数据范围。2026 年 9 月披露的 CVE-2026-82533 已经提醒过一次:默认沙箱不能当作唯一安全控制,该漏洞已在 0.1.2-alpha.1 修复。

七、常见问题

Q1:DeepSeek Harness 的插件和 MCP 是竞争关系吗?

不是。Cordis 插件是 Harness 的装配机制,MCP 是外部能力协议。DSH 里的 MCP 客户端本身就是插件,两者是组合关系,不是替代关系。

Q2:只写一个 MCP Server,还需要写 DSH 插件吗?

如果你只需要把工具或数据接给现有 MCP Host,不需要。若还要在 DSH 里加设置页、审批策略、审计日志、UI 卡片,或替换核心组件,就需要插件;插件可以把 MCP 能力包起来。

Q3:MCP 能替代 Cordis 吗?

不能。MCP 不提供插件依赖注入、生命周期、卸载回滚、HMR、profile/bundle,也不负责替换 agent loop 或 UI。它能让 Agent 调用更多能力,但不会改变 Harness 的组装方式。

Q4:MCP Server 和 DSH 插件哪个更安全?

不能简单比较。MCP Server 在 Host 之外,Host 可以控制授权和隔离,但远程 Server 仍可能返回恶意内容;DSH 插件在 Harness 进程内,权限更高,也可能直接接触文件和凭据。两者都要审查来源、最小权限、固定版本。

八、结语

DeepSeek Harness 的「Everything is a Plugin」不是一句生态口号,而是把模型适配器、工具注册表、会话日志和 agent loop 都放进了可撤销、可依赖、可热替换的运行时。MCP 的价值则在另一层:用一套开放协议,把外部工具和数据接给任何支持它的 Host。

选型时先问「我要改的是能力,还是 Harness 本身」:能力用 MCP,装配用插件;两者都要,就让插件包住 MCP。本文内容基于 2026-10-30 前的 DeepSeek Harness 官方文档、Cordis 论文与 MCP 2026-07-28 规范;DSH 仍处于开发者预览,具体接口可能变化,落地前请以对应版本文档为准。

参考资料

  1. DeepSeek Harness GitHub 仓库:https://github.com/deepseek-ai/deepseek-harness

  2. DeepSeek Harness 架构文档:https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/architecture.zh.md

  3. Cordis 入门:https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/cordis-primer.zh.md

  4. Cordis 论文《A Programming Paradigm for Spatiotemporal Composability》:https://arxiv.org/abs/2608.25512

  5. MCP 架构说明(2026-07-28):https://modelcontextprotocol.io/docs/2026-07-28/learn/architecture

  6. DeepSeek Harness MCP 子系统文档:https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/subsystems/mcp.zh.md

  7. 七牛云AI:DeepSeek Harness 配置接入 AI:https://developer.qiniu.com/aitokenapi/13550/deepseek-harness-configuration-access-ai

七牛云产品