乐于分享
好东西不私藏

一切皆插件,DeepSeek 把 Agent 的底盘打开了

一切皆插件,DeepSeek 把 Agent 的底盘打开了

昨天晚上,DeepSeek 开源了一个叫 DeepSeek Harness 的新项目。

仓库首页最显眼的位置,写着一句很直接的话,Everything is a Plugin,一切皆插件

我刚看到这句话的时候,其实有点警惕。现在只要是 Agent 项目,几乎都喜欢给自己套一个很大的概念。有人讲工作流,有人讲多智能体,也有人讲记忆、工具调用和自主执行。很多项目打开之后,最后还是一个模型加几个工具,再配上一套聊天界面。

DeepSeek Harness 往下拆了一层。它把模型、工具、文件系统、终端、会话记录、权限确认、子智能体,连最核心的 Agent Loop 都拆成了插件。我们拿到一套可以自由更换零件的 Agent 底盘,这也是「一切皆插件」最值得聊的地方。

SECTION 01

Harness 到底是什么

先把 Harness 这个词讲明白。单独调用大模型时,我们给它一段提示词,它返回一段文字,这件事很简单。想让模型真正做事,周围还要补上一大圈能力。它得知道自己能用哪些工具,要能读取文件、执行命令、保存会话,还要在做危险操作前征求用户确认。任务稍微复杂一点,它还得反复观察结果、调整计划,再决定下一步做什么。

负责把这些东西组织起来的那一层,就可以理解成 Agent Harness。

我们平时看到的 Claude Code、Codex、OpenClaw,各自都有自己的 Harness。模型像大脑,工具像手脚,文件和长期记忆负责保存信息,Agent Loop 决定它接下来思考还是行动。缺少这层组织,再强的模型也只能坐在那里聊天。

DeepSeek Harness 做的事情,是把这一整套组织方式开源出来。它并没有只留几个接口给开发者调用,而是把组成 Agent 的各个部分都放进了同一套插件系统。今天使用 DeepSeek 模型,明天可以换另一个模型。现在让命令在本机执行,后面也能换到远程沙箱。工具、存储、会话、权限策略都可以沿着同一思路替换。

所以它更像一台允许更换发动机、轮胎、刹车和驾驶系统的车。我们可以先开官方装好的版本,也可以只改其中一个零件,还可以重新拼出一辆用途完全不同的车。

SECTION 02

「一切皆插件」到底开放了什么

很多人听到插件,第一反应可能是浏览器插件,或者 ChatGPT 里额外安装的小工具。那种插件主要负责增加功能,主体系统通常动不了。DeepSeek Harness 里的插件要深入得多,它可以增加一只手,也可以把原来的手整个换掉,甚至可以修改 Agent 怎样思考和怎样推进任务。

它底下使用了一套叫 Cordis 的插件运行时。每个插件都会接入一个共享的运行环境,官方把它叫作 Context。模型服务、工具注册表、会话系统和事件系统都挂在这里,插件通过公开的服务互相协作,不需要直接伸手去改别人的内部代码。

最小的插件结构其实很短。

TS

export const name = 'hello-plugin'

export function apply(ctx) {

console.log('plugin loaded')

}

这里真正重要的是apply(ctx)。插件被加载时,Harness 会把整个运行环境交给它。插件可以从中找到自己需要的服务,也可以向系统注册新的能力。卸载插件时,它还可以清理定时器、连接和临时资源,修改代码后也支持热重载。

如果想给 Agent 增加一个工具,思路也很直白。

TS

export const inject = ['tools']

export function apply(ctx) {

ctx.tools.register(myTool)

}

第一行是在声明「我需要工具系统」,后面把myTool注册进去。工具叫什么、接收哪些参数、执行什么动作、结果怎样返回给模型,都放在这个插件里完成。天气查询、飞书文档、网页搜索、图片生成和数据库读取,都可以沿着这套结构接进去。

这里有个很关键的细节。Harness 里的插件并不局限于给模型加工具。它把能力定义、具体实现和模型调用入口分开了

TEXT

能力定义  →  具体实现  →  模型调用入口

Service      Provider      Consumer / Tool

官方文档里拿 Bash 举过例子。系统先定义一套 Shell 能力,再用本地 Bash 提供具体实现,最后由工具插件把它交给模型调用。以后想把本地执行换成云端沙箱,只需要替换中间的实现,上层工具和 Agent 不必跟着重写。

这看起来只是工程结构上的调整,实际影响很大。以前我们做一个 Agent,经常把模型、工具和运行环境绑在一起。换模型要改一遍,换沙箱又要改一遍,最后每个项目都长出一套自己的接口。Harness 把这些连接关系公开出来之后,开发者可以专门做好其中一个零件,其他人直接拿来组合。

SECTION 03

它能把 Agent 改到什么程度

按照官方教程往下走,最简单的一层是增加工具。写一个插件,让 Agent 查询某个网站、读取一种特殊格式的文件,或者调用自己公司的接口,这些都属于「给它加一只手」。有一点 TypeScript 基础的人,照着工具模板就可以开始做。

再往下一层,可以替换能力的具体实现。比如同样是执行命令,个人电脑上用本地终端,团队环境里换成隔离沙箱。文件系统也可以从本地目录换到云盘,模型服务可以从一个供应商切到另一个供应商。上层任务不用知道底下究竟是谁在干活,只要接口保持一致就行。

第三层是事件拦截。Harness 提供了完整的事件系统,插件可以在工具调用前后、模型请求前后和会话变化时加入自己的逻辑。企业可以用它做权限检查、操作审计和敏感信息过滤。普通用户也能用它加一层确认,比如发送消息、删除文件、花钱调用服务之前,必须先弹出确认。

再往后还有会话、记忆和子智能体。一次任务的过程可以被保存、恢复和分叉。研究 Agent 找到的资料,可以交给写作 Agent;写作 Agent 产出的初稿,再交给校对 Agent。每个角色使用不同的工具和权限,最后仍然运行在同一套 Harness 里。

官方又提供了 Bundle、Profile 和 Patch 三种组织方式。名字听起来有点技术,理解起来并不复杂。Bundle 像一个零件包,把一组相关插件放在一起。Profile 像整机配置,决定这次启动时要装哪些零件。Patch 则是一层局部调整,不动原来的配置,只修改当前环境需要变化的部分。

走到这里,Harness 已经从单个插件开发推进到了完整的 Agent 组合。我们可以用一份配置拼出一个 Agent 产品,再按使用场景切换不同版本。

SECTION 04

我最先想到的几个方向

讲到这里,很多人可能会问,这套东西听起来还是开发者在玩的,和普通人有什么关系?

现阶段的 DeepSeek Harness 确实需要一定的开发能力,普通用户没必要都去学 TypeScript。它真正可能带来的变化,是以后有人把插件和配置做好,我们只需要安装一套现成组合,再把自己的账号、资料库和使用习惯接进去。就像大部分人不会自己开发浏览器插件,照样可以直接安装使用。Harness 提供的是底层结构,最终面对普通人的,完全可以是一套开箱即用的 Agent。

1. 给自己做一个真正能办事的个人助手

普通人最容易感受到的,是把每天重复出现的小事接起来。比如从几个固定网站收集资料,筛掉重复内容,整理成文档,再按照指定格式存进自己的知识库。也可以让它管理下载文件、整理照片、生成旅行计划、汇总账单,或者定期检查自己关注的信息有没有更新。

这些任务单独看都不大,过去却散落在浏览器、文件夹、日历、笔记软件和聊天工具里。Harness 可以把对应能力装进同一个 Agent,让它连续完成查询、判断、整理和交付。用户不需要每一步都换一个应用,也不用反复复制粘贴。真正有价值的地方,是最后能在指定位置看到一份整理好的结果

再往前走一点,还可以给个人助手装上不同权限。查询资料和整理文件可以自动完成,发消息、删除文件、付款和公开发布必须先经过本人确认。它能做的事情变多了,控制权依然留在用户手里

2. 拼出一套属于自己的内容生产线

我自己最先想到的是自媒体 Agent。它可以挂上网页检索、资料收藏、公众号写作、图片生成和排版工具。研究插件负责寻找来源,写作插件读取个人风格,图片插件根据正文生成配图,排版插件输出可以上传到公众号的 HTML。发布之前保留人工确认,前面的重复劳动可以在同一个任务里接起来。

它还能继续往外拓展。做视频的人可以加入脚本拆分、分镜、字幕和素材管理插件;做播客的人可以加入录音转写、提纲整理和节目简介;做知识付费的人可以把长文进一步拆成课程大纲、演示文稿和练习题。同一份核心资料经过不同插件处理,最后变成适合多个渠道的内容。

这类组合的价值远不止一次生成十篇文章。更重要的是,它能保存创作者自己的规则。选题范围、常用资料源、语言习惯、排版主题和审核要求,都可以放进对应服务里。以后更换模型,这套工作方式仍然能够继续使用,不用把所有习惯重新教一遍。

3. 把自己的专业经验做成可复用的插件

很多普通开发者和独立创作者手里都有一套长期积累的方法,只是过去很难把它变成产品。有人擅长分析财报,有人熟悉跨境电商选品,有人能快速整理招投标文件,也有人掌握某个行业的数据来源。Harness 给了他们一个更小的切入口,不必先造完整的 Agent 应用,可以先把最熟悉的那一步做成插件。

比如做一个「合同风险检查」工具,负责读取文档并标记需要人工确认的条款;做一个「选题雷达」,固定追踪几个信息源并按照个人标准打分;做一个「商品资料整理器」,把供应商发来的图片、表格和参数统一整理成上架信息。插件稳定之后,可以继续加入记忆、审批和交付能力,慢慢组合成完整产品。

谁手里有垂直数据、内部系统或者成熟工作流,谁就有机会做好一个真正有用的零件。它不一定要面向所有人,只要能解决一类人的具体问题,就有继续扩展的空间。

4. 让企业内部的系统真正连起来

企业内部的想象空间会更大。很多公司已经有飞书、知识库、工单、CRM、数据库和审批系统,问题在于这些东西彼此分散。员工为了完成一件事,可能要在五六个页面之间来回切换,再把同一份信息填上好几遍。

Harness 可以把每套系统的查询和操作能力做成插件,再由一个 Agent 负责理解员工的目标。新人入职时,它可以读取岗位资料,创建培训清单,预约介绍会议,并把需要签署的文件送进审批。销售拜访结束后,它可以整理会议记录,更新客户状态,生成跟进邮件,再创建下一次联系任务。客服收到复杂问题时,它可以查询历史工单和产品知识库,先准备处理建议,得到确认后再回复客户。

这类 Agent 的核心能力,是跨系统完成交付。聊天只是入口,查到资料也只是开始,后面还要更新记录、创建任务、通知相关人员,并把整个过程留档。Harness 允许这些能力分开建设,CRM 团队维护客户插件,知识库团队维护检索服务,安全团队负责权限和审计,最终装进同一套企业 Profile。

5. 给企业加上权限、审计和安全边界

企业不会因为 Agent 很方便,就把所有权限一次性交给它。不同员工能访问哪些资料,哪些操作可以自动执行,哪些必须由负责人批准,都需要明确规则。这正好对应 Harness 的事件拦截和服务替换能力。

公司可以增加一套权限插件,在 Agent 调用工具前检查用户身份、数据范围和操作等级。读取公开资料可以直接通过,导出客户名单、修改财务数据和向外部发送文件则进入审批。审计插件记录 Agent 调用了什么工具、读取了哪些数据、由谁确认,出了问题也能回头追溯。

敏感信息过滤也可以放在这一层。文档交给外部模型之前,先把身份证号、手机号和客户名称替换掉;模型返回结果之后,再在内部环境恢复。企业不必要求每个业务插件各写一套安全规则,统一的拦截层就能覆盖整个系统

6. 替换 Agent 的执行环境和记忆系统

还有一个很实际的方向,是为现有 Agent 提供更可靠的执行环境。现在很多 Agent 能写代码,真正执行时却直接接触本机文件和终端,安全边界很难控制。开发者可以专门做沙箱 Provider,把命令执行、浏览器操作和文件读写放进隔离环境。个人版本可以在本机运行,企业版本可以切换到受控的远程环境,上层工具不需要重新开发。

记忆系统也值得单独做。个人用户可能只希望 Agent 记住自己的写作习惯、常用软件和关注方向;企业需要保存项目进度、客户服务记录和团队知识。它们可以使用不同的存储方式和保留周期,再由工具按权限调用。这样一来,记忆不会和某个聊天页面锁死,更换模型或界面时,长期积累的资料仍然能够留下来

再把这些方向合在一起,研究员、程序员、自媒体作者、电商运营和客服团队,都可以拥有一套预先组装好的 Bundle 与 Profile。普通用户安装成品,开发者制作插件,企业根据自己的系统和权限重新组合。大家面对的是同一套底盘,却可以拼出完全不同的 Agent。

SECTION 05

为什么这个概念很厉害

过去几年,Agent 项目最常见的问题之一,就是每个人都在重复造整台机器。一个团队为了接工具,要写自己的注册方式;为了保存会话,又做一套存储;想加审批和多智能体,还得继续往原来的代码里塞。项目越来越大,每换一个模型或执行环境都要牵动很多地方。

DeepSeek Harness 给出的方向很清楚。Agent 可以由一组能够声明依赖、自由装卸和互相替换的部件组成。开发者之间交换的不再只是一段提示词或一个孤立工具,也可以是一套模型适配器、一种沙箱实现、一个记忆服务,甚至是一整套行业 Agent 配置。

这种开放方式对模型厂商也很有意思。DeepSeek 没有把 Harness 做成只能服务自家模型的封闭外壳。官方架构里,模型本身同样处于可替换的位置。真正想推动的,是一套大家都能往里装东西的 Agent 运行结构。

一旦插件足够多,做 Agent 的门槛会发生变化。以前需要先搭起整套系统,后面可能只需要选模型、选工具、选执行环境,再加上自己的业务逻辑。擅长安全的人做权限插件,擅长浏览器自动化的人做操作插件,掌握行业数据的人做数据服务。每个人都能从自己熟悉的那一小块开始

SECTION 06

现在还不能吹得太早

DeepSeek 在仓库里明确写了Developer Preview。这个项目还处在快速开发阶段,接口和配置都有可能发生不兼容调整。现在适合研究、试做和验证方向,直接拿去承载重要生产任务,还需要更谨慎的测试。

它也没有把开发难度彻底抹掉。想做一个简单工具插件,照着模板很快就能跑起来。想替换底层服务、设计事件拦截,或者做一套可维护的 Bundle,仍然需要理解 TypeScript、依赖注入和 Agent 的运行过程。「一切皆插件」让结构更清楚,并不会自动替我们解决业务逻辑。

插件安全同样不能忽略。官方文档提醒,从 GitHub 安装插件时,插件可能在安装阶段执行构建脚本,这一步发生在 Agent 沙箱之外。来源不明的插件不能随手安装。检查代码、固定版本、查看安装脚本和限制权限,后面都会成为这套生态能否健康发展的关键。

还有一点需要分清。把所有代码都塞进一个插件文件,并不叫插件化。真正需要独立演进、可能被替换、会被多处复用的能力,才值得拆成服务和 Provider。一个只有几行的小工具,直接注册就够了。结构服务于实际需求,拆得越碎并不会越高级。

SECTION 07

写在最后

DeepSeek Harness 目前还很早,距离成熟的插件市场和开箱即用的行业方案,还有不少路要走。它已经把一个很有价值的问题摆到了台面上。下一代 Agent 应该怎样开放自己的模型、工具、记忆、执行环境和控制逻辑,让不同开发者真正参与进来?

一切皆插件」给出了一种相当彻底的回答。Agent 不会是一团焊死的代码,它可以是一套能不断换零件、加能力和重新组装的系统。

对于普通用户,现在可以先用官方 Web 版本体验。电脑里有 Node.js 的话,运行下面这条命令即可启动,浏览器会打开本地界面。

BASH

npx @deepseek-ai/dsh web

对于开发者,最合适的起点也不用太大。先找一个自己每天都在重复使用的工具,把它接成第一个插件。等这只手能稳定工作,再考虑服务替换、事件拦截和完整的 Agent 组合

DeepSeek 这次开源的东西,可能暂时还不够成熟,却很适合拿来拆、拿来改、拿来想象。Agent 到底应该长成什么样,终于不再只有平台自己说了算