夜雨聆风学习资料网

ARTICLE · 1288416

DeepSeek的插件,和扣子根本不是一回事

DeepSeek的插件,和扣子根本不是一回事

上周跟我一认识八年的兄弟吃饭,他去年从写 Java 转去做 AI 应用,聊到 DeepSeek 新出的 Harness 说"一切皆插件",他挠头:"这词我熟啊,WordPress 有插件、VS Code 有插件,怎么到了 AI 这儿又变成高大上的新概念了?跟以前 OpenAI 那个插件、扣子里的插件,到底是不是一回事?"

我告诉他:完全不是一回事。OpenAI 和扣子说的"插件",是给你的 Agent 装个功能模块;DeepSeek 说的"一切皆插件",是把 Agent 这台机器本身拆成了可热插拔的零件。前者是应用商店,后者是地基。

如果你也转 AI 时被这些词绕晕过,这篇就把它们拆到同一张图里,用你写代码的眼睛看个明白。

先说 OpenAI 和扣子的插件:给 Agent 装模块

2023 年 3 月,OpenAI 给 ChatGPT 加了插件系统,一个插件就是一份 ai-plugin.json 清单加一份 OpenAPI 描述,告诉模型"我有查天气、订机票的接口,你按需调用"。这套东西 2024 年 4 月就关停了,因为 OpenAI 自己转向了 GPTs 和 Actions,前后一年多,发了超过 1000 个插件。

扣子(字节的 Coze)里的插件也是一个意思:它是机器人连接外部工具和数据的接口,本质就是"帮 Agent 调用一个外部 API"。

在程序员眼里,这两者就是同一类东西:给宿主程序装一个能力扩展包。跟你在 VS Code 扩展市场装个插件、在 npm 里加个包没什么本质区别,只是这个包由平台审核、在平台商店分发、在对话里 enable 三个。它的粒度是"一块业务能力"。

再看 DeepSeek Harness:连模型都是插件

DeepSeek Harness 说的"一切皆插件",内核叫 Cordis,它脱胎于一个开源聊天机器人框架 Koishi。Cordis 这个内核只干一件事:管插件的加载、卸载和依赖关系。它自己不提供任何 Agent 能力。

真正的能力是谁提供的?是插件。而且是所有东西:模型适配器是一个插件,工具注册表是一个插件,会话管理是一个插件,沙箱是一个插件,存储、循环、调度、UI 全都是插件。你跑起来的 Harness 本身,就是一棵用插件拼出来的树。

这下区别就出来了。OpenAI 和扣子的插件只覆盖"外部能力接入"这一小块;DeepSeek 的插件覆盖的是 Agent 的五脏六腑。一个把"加功能"插件化了,一个把"整个系统"插件化了。

三个落地差异,程序员一眼就懂

第一,抽象层级不同。OpenAI/扣子插件在"业务能力"层,DeepSeek 插件在"系统架构"层。打个比方:前者是你在家里添了个扫地机器人,后者是把房子的水电、承重墙、门窗全做成了可替换模块,你拿一份图纸就能重新拼一栋。

第二,可逆副作用带来的热插拔。这是 Koishi/Cordis 的精髓。你在框架里注册一个服务,这个注册本身是一个"副作用";当插件卸载时,框架自动把注册撤销掉,不用重启、不留垃圾。传统应用里你 new 一个对象挂全局,关的时候得手动清理,漏一处就内存泄漏。Cordis 把这个生命周期管住了。

第三,能力接缝(seam)三层分离。Harness 里每个能力都分成接口定义、实现、消费方三块。为什么这厉害?因为文件系统和进程 provider 共用一个执行世界,你把这个 provider 指向一个远程沙箱,Bash、终端、代码补全一起被搬走了,一行业务代码都不用改。这就是六边形架构、SPI 机制在 Agent 运行时里的复刻。

再加上配置层自由组合:profile 列一套组合包、bundle 是分发单位、patch 层层覆盖,你不用动源码就能换掉任意一个能力。跑一条 dsh --profile web --dump-config,你机器上实际启动的整棵插件树都打印出来,想换哪个就 patch 哪个。

它是新概念吗?

插件当然不新。WordPress 插件、浏览器扩展、VS Code 插件都活了十几年。AI 插件也不新,OpenAI 2023 年就玩过了。

真正较新的,是"把 Agent 的一切都插件化、做成可声明式组装的微内核"这个架构范式。但你要说这是 DeepSeek 凭空发明的全新概念,也不对——它的内核思想(可逆副作用、插件树)直接来自 Koishi 这个聊天机器人框架,那套东西在机器人圈早就成熟了。

说白了,它更像是把微服务、依赖注入、可插拔内核这些老思想,搬到了 Agent 运行时上。它跟 MCP 的精神接近(标准化能力接入),但比 MCP 走得更远:MCP 只标准化"工具/资源/提示"的接入,DeepSeek 连 harness 自己的内核能力都插件化了。

OpenAI 的插件是应用商店,扣子的插件是积木,DeepSeek 的插件是地基——它们是三个不同抽象层级的东西,硬放一起比,就像拿螺丝刀比发动机。

对你写 Agent 的启发

下次再有人跟你吹"一切皆插件"这种 buzzword,先别慌,也别盲目跟风,先问一句:它说的是哪个抽象层级的东西?是给你加能力的扩展包,还是把系统骨架都做成了可替换零件?看清楚层级,一半的焦虑就消失了。

对自己做项目也是:别把 Agent 的逻辑一股脑写死在主程序里。学 Cordis 那套思路,把模型、工具、存储、调度做成可替换的接口,用配置决定装配哪些、换掉哪个实现。哪天要接另一个模型、换一套工具,改配置就行,不用重构。

我那兄弟听完拍了下桌子:"合着我又绕回 Spring 的 bean 装配了。" 没错,你写了那么多年代码攒下的直觉,到 AI 这儿一样管用,只是换了个名字。

转给那个还在纠结该用 LangChain 还是扣子的同事,省得他也绕进 buzzword 的坑里。

想一起转型 AI,加入程序员转型陪伴群,公众号回复「转型」了解。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料