ARTICLE · 1324648
当插件本身就是交付 · 「插件」还剩什么意义
当插件本身就是交付 · 「插件」还剩什么意义
从 7 套提示词说起,聊聊一个被用歪了的词
一个词当两个用,别扭就出在这儿:问它是什么,得先说清在哪根轴上——治理轴上它是插件,价值轴上它是应用
EDITOR NOTE
三轮追问一篇文章里给了 7 套提示词,一句话能搓出 3D 展厅、视频剪辑台、论文阅读器、界面换肤,还有一块 Token 计费板。我本来只想回答「这算不算 Harness」,结果被追着问了三次,一次比一次难答。到第三问,问的已经是:一个词连「补强」和「主体」都分不出来了,还留着它干嘛。
01
PART
一个词,两个身份
CONTEXT
那篇文章的判断是「DeepSeek 这次动的不是模型能力,而是把自己应用的扩展层开放了出来」。7 条提示词里最抓眼球的一条,能让 AI 现场搓出一套视频剪辑工作台:上传素材、拖动时间线、用大白话指挥剪辑、一键导出。看着就像AI 写了个软件。
第一问就是「这算不算 Harness」。这得先把两个同名的东西拆开。一个是概念,包在模型外的运行时管控层,管执行循环、上下文、工具供给、权限和沙箱;另一个是产品,DeepSeek Harness,口号「Everything is a Plugin」的开源 Agent 应用。产品名取自概念名,文章读着就像在说「插件就是 Harness」。
第一轮的答案:机制是 harness,产物是插件。创造模式开放的是插件开发规范、运行时检查、插件管理、安装前的权限确认——这些全在模型外面,按定义都归 harness。7 个例子,不过是这套机制跑出来的成品。
概念名和产品名撞了车。 后面三轮追问,拆的其实是同一件事——这个词到底该在哪根轴上用。
02
PART
按定义划线
DEFINITION
这两年圈里认一行式子:Agent = Model + Harness。窄定义里,harness 就是「调模型、处理工具调用、决定何时停」的那个循环,系统提示词和工具描述归 scaffold;宽定义把执行循环、上下文、工具、权限、沙箱、失败恢复、可观测,全算进去。
我自己拟了个笨办法:把某个组件卸掉,看「接收指令 → 调模型 → 执行工具 → 回填观察 → 判断终止」这条循环还转不转。转得起来,就是扩展,不是 harness。拿它一条条过,7 个例子大半是挂在 UI 插槽上的可视组件;只有「在对话里用大白话导入、剪辑视频」才算碰到工具供给层。
还有个更实在的反证:权限。 文章自己写了「安装前还有一次权限检查」。harness 的定义里,权限得留在模型指令之外,模型不能给自己授权。裁决权还在宿主手上,插件就还是被管着的那个。
插件不是 harness 内核判据改成「挂到哪个扩展点」文档:内核也是插件
插件开发文档里的说法,中文转述是「每一次注册都是副作用,插件卸载时自动撤销,因此没有一个特权内核可供打补丁」。工具注册表、agent 循环、会话存储、Web 服务,都在同一棵插件树上。这么一来,「插件」谈不上比 harness 低一层——它本来就是harness 的搭法。
03
PART
我看更像生成物
BOUNDARY
第二问就没那么客气:凭什么叫插件?跟一个能离开 AI 环境单跑的生成物,差在哪儿?问到点子上了——「运行时要不要 AI」和「能不能离开宿主」,一直被当成一回事。
「离开 AI 环境」得拆开说
离开模型,能。3D 渲染、时间线剪辑、海报排版、PDF 展示,都是本地算的,运行时不找模型;artifact 也一样。「运行时需不需要 AI」压根不是判据。离开宿主,不能——挂载点、数据源、权限、安装生命周期,全攥在宿主手里。
插件说白了是一份契约:一个模块导出 apply(ctx, config),能声明依赖服务;配置文件里的 dsh.bundle 指向一个 YAML 补丁,把这行插进正在跑的插件树;在 ctx 上注册的都算可逆副作用,一卸载全撤销。这类代码没有自己的入口、进程,也没有数据源。
差就差在最外面那几十行接入代码。 代码写得多完整都不耽误——插件里能装下一整个应用,独立应用包一层契约,也能变成插件。
把这 7 个例子导成独立应用,丢的全是宿主给的:侧边栏入口、从会话打开、提示词里那句「based on my actual conversation data」的数据源、论文阅读器划词回对话的通道、大白话指挥剪辑靠的工具回路,还有安装时的权限检查、跨会话留存。留下的是 3D 渲染、时间线、排版、PDF 阅读——「看着像生成物」,就是这部分太完整了。
04
PART
形如插件,本身就是交付
MEANING
第三问最不好接:插件是为了有效产出交付,是手段,不是目的。要是形如插件的东西本身就是交付,这词还剩什么解释力?翻翻经典定义,这一问站得住,不是理解出了偏差。
维基百科写得直白:插件得靠主程序才能干活,光有插件跑不起来,主程序反过来不依赖插件。插件和扩展怎么分?插件贴着宿主的界面走,行为不越出划好的边界;扩展才可能有自己的界面。Chrome 当年直接三分,Application 的判据就是有没有独立运行的界面。照这三条,带完整工作台的那几个该叫 app 或 extension。
宿主是主体,插件是手段现在反过来:用户要用的是插件里的那个工作台,宿主只负责把它装起来、管住它
但 plugin 这名字不是白叫的,它只是从价值轴挪到了治理轴。Eclipse RCP 教材讲 bundle 的定义,能直接搬过来:分组、交付、管理内容的机制。官方白皮书还说,有些插件一行代码都没有,只贡献一批帮助页。plugin 从来不问「是不是手段」,只说怎么装、归谁管。
名字是用来给人设定预期的。叫插件,就等于告诉人:能列出来、能启用停用、能删,装的时候要过一遍权限,卸的时候副作用全撤,跨会话留着,重启还在。换成「应用」,机制一样不少,可没人会往那儿想。
单个看像成品,多个才显出插件性——换肤改的是包括其它 6 个在内的整个应用,计费板统计的是所有会话,共享同一份上下文。再说,「本身就是最终交付」这前提也站不住:据文章介绍,演示插件是多轮对话磨出来的,上手三步里还写着「不满意就继续提修改要求」。能装能卸,还能让 Agent 接着改,说到底是个可装卸、可继续生成的中间态。
05
PART
历史早有更精确的词
PRECEDENT
这别扭早有人遇到过,软件史上就有更准的词。Eclipse给同一个东西挂两个身份:bundle 管分发和治理,application 是运行时主体;平台专门开了个 application 扩展点,启动时只激活声明它的那个插件,之后由它全权接管。Chrome 那边按价值轴三分,Plugin、Extension、Application,判据还是有没有独立界面、能不能脱离宿主跑。
DeepSeek 两条路都没走,挑了「Everything is a Plugin」这句口号。不算分错类,是选了个说法:要说的是架构平权——按这句口号,宿主不设特权内核,连 agent 循环也在可替换之列。讲的是「谁能改谁」,不讲「谁服务于谁」。
代价也真有:交付这一层,分不出东西了。 一整个剪辑工作台和一行滤镜归进同一个词,人容易低估自己拿到的是什么。不是读者没转过弯,词被借走以后,本来就会这样。
06
PART
三个轴,各归各的词
SUMMARY
先说清「轴」是什么:就是你在问哪一类问题。同一件东西,问法换了,该用的词也该换。把三根轴摆开——
要说得更准,它是以插件机制分发、还能接着生成的应用——借 Eclipse 的词,bundle 和 application 叠在一块儿。拿视频剪辑台走一遍:它怎么来的?AI 在对话里现搓的,生成物。用户用的是不是它?工作台。怎么装、谁批权限?插件。三个词,同一样东西的三个面。偏偏我们习惯拿「插件」去答第二问,它管的其实是第三问。别扭就出在这儿,谁也没搞错。
资料出处
证据等级事实依据:DeepSeek Harness 官方仓库 README 与 docs 目录(已直接核实)、插件开发文档站(非官方域,字段可能变动);harness 定义参照 Hugging Face agent 词汇表与 Google Cloud 词条,前者页面直连抓取失败,依据为检索摘要;经典插件定义取自维基百科插件词条与 Chrome 三分法的中文转述;Eclipse 部分引自官方平台技术白皮书与 Eclipse RCP 教材章节。引文有直引,也有中文转述,字段名以官方文档为准。7 套提示词与演示细节转述自原文;原文作者说了没在本机实测,我也没跑过任何一条提示词。
CLOSING NOTE
叫它插件,说的是谁装载、谁批权限、坏了怎么撤干净。至于用户手里用的是不是它,这个词从头到尾没管过。
看完要是也被这个词绊过,点个赞、转给朋友。
我想知道是不是只有我一个人绕了这么久😎
THANKS FOR READING















































































