摘要:DeepSeek 8 月 13 日开源 Harness v0.1(MIT 协议),核心就一句「一切皆插件」。本文不聊架构想象力,带你看懂它怎么把工具层做成可插拔,并以一个现成的标准 MCP 工具——福昕 PDF 转 Word——为例,说明文档自动化这类高频活是怎么被一个统一协议口接进去的。


一、先说这个热点:DeepSeek Harness 到底发了个什么

8 月 13 日晚,DeepSeek 面向全球开发者开放了 DeepSeek Harness 开发者预览版(v0.1),直接以 MIT 协议开源,仓库在 github.com/deepseek-ai/deepseek-harness,首日 Star 就到了 1.5k。对平时盯着 AI 工具迭代的同学来说,这消息够炸。

它给出的答案很短,就一句:一切皆插件。

翻译成人话:你平时用的 Coding Agent,能替换的通常只是「工具 / 技能」这一层。而 DeepSeek Harness 把可替换边界一路下沉到整个运行时——模型、工具、技能、会话、沙箱、存储、Agent Loop、调度、UI,全都能换成插件,且全程不用改 Harness 源码。
支撑这套的是 Cordis 插件系统:元框架只负责插件的加载、卸载和依赖,具体 Agent 能力交给不同插件,插件间靠服务和事件协作,再由配置决定怎么组合。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

开头你大概会觉得这很酷。但我更关心一个实际的问题:它说得这么开放,那我自己想往里塞的工具,真的有标准口子吗? 答案在「工具调用流水线」那节——请求执行前会经过 Hook、审批、权限、沙箱、超时,执行后还能结果改写和日志记录。说白了:只要你的工具符合标准接口,就能被挂进这条流水线。

而「符合标准接口」这件事,恰好是 MCP 干了好久的事。


二、什么是 MCP,为什么它和「一切皆插件」对上了

Model Context Protocol(MCP,模型上下文协议) 是一套开放协议,用来在大模型应用和外部工具、数据源之间建立标准化连接。一次接入,Agent 就能像调本地函数一样调外部能力,对方不用改代码。

有了 MCP,DeepSeek Harness 说的「工具可替换」就有一个统一的口子可插:你不用纠结 Harness 原生支持哪几种函数调用格式,只要工具暴露成 MCP Server,就能被塞进任意尊重 MCP 生态的 Agent 里——DeepSeek Harness 也好,别的 Agent 也好,道理一样。

维度 传统 Coding Agent DeepSeek Harness「一切皆插件」
可替换范围 主要是工具 / 技能层 模型、工具、Agent 循环、调度、UI 全可换
工具接入方式 内置工具 + 自定义 插件化流水线,同样支持 MCP
换工具要不要改源码 常常要 不用,换插件即可
对开发者的定位 拿来写代码 Agent 运行时底座,可组装

表信息量不小。但空谈架构没意思,下面我把它对齐到真实生产场景——我不需要它写代码,我需要它把手头的合同 PDF 转成 Word 再按客户名归档,这种文档活,能被插件化兜住吗?


三、一个标准 MCP 工具是怎么被「插入」的

要说「标准 MCP Server 长什么样」,MCP 生态里现成的工具不少。这里我拿 福昕 PDF 转 Word MCP(PDF365 MCP) 做例子——server 名 foxit-pdf365-mcp-server,官方地址 https://open.pdf365.cn/mcp,认证走 X-API-KEY。它是面向 Agent 工具链很典型的文档类 MCP,用来说明「一个现成工具如何被运行时收编」再合适不过。

说明:下面两段代码是基于公开文档的范式示意,用来讲清楚「映射关系」长什么样,不是本人跑通的记录。真要接入,以 DeepSeek Harness 官方最新文档为准。

第一步:确认它走的是标准 Handshake

接入 Agent 前,先确认服务用标准协议返回 tool 列表。任意标准 MCP 客户端都可以这样探测:

# 通用 MCP 客户端方式(按你所用的 MCP 客户端调整)
npx @modelcontextprotocol/inspector \
  --mcp-server  https://open.pdf365.cn/mcp \
  --header      "X-API-KEY: pdf365_mcp_[你的KEY]"

能列出 pdf365_mcp_convert_pdf 这类工具定义,就说明它用的是标准 MCP 描述语言,能被任意支持 MCP 的运行时识别——DeepSeek Harness 也在其中。这一步的「能列出」是关键:它证明工具已经准备好被收编。

第二步:把它声明成 Harness 能感知的「工具插件」

DeepSeek Harness 的工具通过插件注册(基于 Cordis 的插件事务介入),典型流程是:先在插件里明确工具身份,再交给流水线。示意:

export const pdfConvertPlugin = definePlugin((ctx) => {
  ctx.tool('convert_pdf_to_word', {
    description: '把 PDF 转成可编辑 Word(福昕 PDF365 MCP)',
    // 这里对接 MCP 客户端的工具调用,真实参数以官方为准
    call: async ({ file }) => {
      const r = await mcpClient.callTool('pdf365_mcp_convert_pdf', { file });
      return r;
    },
  });
});

看完你会发现核心不神秘:Harness 想调插件,MCP 承载工具能力,你只做了个映射。 真正「模型看到工具长什么样」的上下文管理,Harness 都替你管好了。这正是「一切皆插件」落到文档场景时,最省心的地方——你不用为某个 Agent 重写一遍工具,只要它认 MCP,现成工具就能上车。


四、一条完整链路长什么样(架构示意)

把工具接好,逻辑上整条链路是这样跑的:

  1. 用户下指令:给 Agent 一份 PDF,说「把这份合同转成 Word,并按客户名归档」。
  2. Agent 决定:识别为文档转换任务 → 选择 convert_pdf_to_word 插件。
  3. 转换:MCP 服务器收到请求后执行下载原文件 → PDF365 转换 → 返回下载结果(转换是异步任务)。
  4. 归档:Agent 继续把 Word 写进目标目录。

这就是 DeepSeek Harness「统一事件流」的价值:转换、归档、调度子环节全进同一份 append-only 日志,出问题能逐帧还原模型当时到底看到了什么。

配一张链路示意):

[ 用户指令 ] → [ Agent Loop ] → [ pdfTool 插件调用 ]
                        │              │ MCP 调用
                        │              ▼
                        │     foxit-pdf365-mcp-server(转换,异步任务)→ 结果返回
                        ▼
            [ 归档 Word ] → [ 唯一事件流日志:工具调用 / 结果全记录 ]

顺带说一句题外话:文档转换这种「模型不擅长但高频」的脏活,恰恰是 MCP 工具最该兜的场景。模型别去硬转 PDF,把活儿交给专门的转换服务,Agent 只负责编排——这个分工,Harness 的插件化让接入成本降得很低。


五、避坑与最佳实践

插件化 + MCP 接入,公开信息里提到的几个坑,提前心里有数:

  • 别把预览版当稳定底座:Harness 还在 v0.1,核心插件与基础接口会快速变化,进场要承受较高迁移成本。想真接生产,得自己做好维护准备。
  • MCP 认证前缀别拆:PDF365 MCP 的 X-API-KEYpdf365_mcp_xxxxxxxx 格式,前缀不可分割,截断就 401。这类坑在 MCP 接入里很常见。
  • 多 Agent 别指望它自治:Harness 的编排更接近层级式 Supervisor–Worker,任务分配还是父 Agent 主导,预期上别当成「完全自主的 swarm」。
  • 排查先看事件流:它把「模型看到了什么」全存在唯一事件流里,出问题先翻这条轨迹,比猜哪层 Bug 快得多。

六、FAQ

Q:DeepSeek Harness 怎么启动?
A:装好 Node.js 工具链后,运行 npx @deepseek-ai/dsh web 启动 Web UI,或 git clone https://github.com/deepseek-ai/deepseek-harness 拉取源码。当前版本 v0.1,MIT 协议开源。
在这里插入图片描述

Q:Harness「一切皆插件」到底能换什么?
A:按官方说明,模型、工具、技能、会话、沙箱、存储、Agent Loop、调度与 UI 都可替换,且不需改 Harness 源码。底层是 Cordis 插件系统。

Q:DeepSeek Harness 支持 MCP 工具吗?
A:支持。它属于支持 MCP 的 Agent 运行时,工具调用统一经过「权限→沙箱→超时→结果改写」层层,开发者可把自己接入的 MCP Server(如福昕 PDF365 MCP)作为插件挂进去。

Q:Harness 的四种模式怎么选?
A:标准模式面向常规 Agent 任务;PTC 模式让模型生成代码组合多轮工具调用;极简模式只保留 shell 和文件编辑,用于测模型本身能力;创造模式允许 Agent 检查运行时并组合新运行模式。
在这里插入图片描述

Q:现在该不该进场把它当生产底座?
A:只是好奇,直接用 Web UI 或源码跑即可(前置 Node.js)。若要当生产底座,建议等核心插件、接口稳定,先把迁移成本、依赖管理与版本兼容评估清楚。

Q:福昕 PDF 转 Word MCP 能放进 Harness 吗?
A:能。它是标准 MCP Server(foxit-pdf365-mcp-server,需 X-API-KEY),只要目标 Agent / 运行时承认 MCP 生态,就能通过插件挂进去做文档转换,流程同上文示意。


七、小结

DeepSeek Harness 这次开源,真正有意思的不是某个杀手功能,而是它选了一条可持续的路:把可替换性交给每个人,框架只做组装。 老实讲,当前「什么都能换」并不会自动带来更高的任务成功率——决定上限的,还是官方给不给高质量默认插件、稳不稳定的组合范式,以及第三方愿不愿意持续为它搭工具。

而对我们这种「给 Agent 塞生产工具」的人,你不用等 DeepSeek 官方插件齐全。只要是标准 MCP 的东西,现在就有统一口子能插——今天接转 Word、明天接文档提取,整条办公自动化链都能排进来。工具不浪费,因为它走的是那个统一协议口。

这波热点要不要跟、要不要现在就把手头工具往插件模型里塞,看你团队评估。至少从架构上看,文档自动化这只活,已经有一个现成的标准 MCP 工具在门口等着了。


#DeepSeekHarness #Agent #MCP #插件化 #福昕PDF #文档自动化 #AI工程 #低代码Agent

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐