DeepSeek Harness 蓝皮书
开发者指南

Cordis、MCP 与 Skills

三个概念的定位对比,以及 DeepSeek Harness 对 MCP、Skills 与 Plugins 的支持矩阵

经常有人把 Cordis、MCP 与 Skills 放在一起比较。它们其实是三个不同层次的概念,在 DeepSeek Harness 中各有明确的角色。本页先对比概念,再给出 DSH 的支持矩阵。

一句话定位

概念是什么解决什么问题
Cordis插件框架(元框架)如何把软件拆成可组合、可替换的插件,并管理生命周期
MCP开放协议标准(Model Context Protocol)模型应用如何以统一协议对接外部工具/数据源
Skills可复用的指令与能力包如何把领域最佳实践封装成按需加载的「技能」

打个比方

Cordis 是「插座与电路标准」——决定每个部件怎么装上、怎么拆下;MCP 是「USB 协议」——规定外设用什么接口通信;Skills 是「工具包」——把一套做法打包好,需要时取用。三者不互斥:Skills 与 MCP 桥接都以插件(Cordis)的形式装进 DSH。

详细对比

维度CordisMCPSkills
本质组合模型 + 运行时通信协议规范指令/能力包
粒度插件、服务、事件服务器、工具、资源单个技能(SKILL.md + 资源)
谁实现DSH 内置(vendored)各厂商的 server/client社区与官方维护
语言相关TypeScript 生态语言无关(JSON-RPC)与 agent 运行时相关
在 DSH 中的角色承载一切能力的底座通过桥接插件接入外部工具内置注册表 + 按需加载

DSH 支持矩阵

Cordis:原生内置

DSH 以 vendored 形式内置 Cordis,模型适配器、工具注册表、会话日志、agent loop(智能体循环)都是插件。见 Cordis 入门

MCP:支持(客户端桥接)

DSH 通过 @deepseek-ai/dsh-mcp-client 桥接插件接入外部 MCP 服务器:连接服务器并把其工具注册到 ctx.tools,模型以 mcp__<serverName>__<rawName> 形式调用——与 Claude Code、Codex 相同的服务器限定命名。

支持范围

  • 传输:stdio(本地子进程)与 streamable-http(远程 URL)两种;
  • 每个 MCP 服务器对应一个插件实例,在 cordis.yml 中配置;
  • 支持 HMR 热切换、断线自动重连(指数退避);
  • 当前文档化的桥接是 MCP client 角色(把外部服务器的工具接进来);把 DSH 自身作为 MCP server 暴露的能力未在上游文档中出现。

配置示例:

- id: mcp-github
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: github
    transport: stdio
    command: npx
    args: ['-y', '@modelcontextprotocol/server-github']
    env:
      GITHUB_TOKEN: !!js process.env.GITHUB_TOKEN

Skills:原生支持

DSH 内置 skill(技能)注册表与加载器,agent 可按需加载专项技能(如 code-reviewastro),技能以 SKILL.md + 资源目录的形式组织。见技能与目标

Plugins:原生支持

  • 第三方插件通过 dsh plugin 安装进 profile,见插件生态
  • 运行时动态插件可在不改源码、不重启的情况下挂载新能力,见动态插件

三者关系图

怎么选

  • 想扩展 agent 的能力:优先写 Skills(封装做法)或插件(封装能力);
  • 想接入已有的 MCP 生态工具:用 dsh-mcp-client 桥接,不必重写;
  • 想理解/改造 DSH 本身:从 Cordis 组合模型入手。

相关页面

本页目录