2300 个插件没人把关:我装上 DSH 插件市场逛了一整天
发布时间:2026/9/11 18:07:51
分类:文化教育
浏览:1234

前两篇我干了两件事把 DeepSeek Harness下称 DSH拆开看了个遍又亲手写了插件。这一篇收尾回答三部曲的最后一个问题插件从哪来答案是刚冒出来二十来天的 dsh-market——DSH 的应用内插件市场。装上它之前我先看到了三条新闻排成一排9 月 1 日AIR 融了 5,000 万美元业务是帮企业盘点 agent 实际装了哪些 skills 和插件、持续审计并拦截未授权行为9 月 2 日HiddenLayer 融了 1 个亿干的是 AI 安全市场同一天GitHub 上一个叫 dsh-market 的仓库涨到了三千星README 第一行写着“2300 plugins, growing daily”。这行 README 还没来得及更新——我当天从市场数据源实拉数字已经是 2,937。一边是投资人真金白银押注“agent 供应链需要有人把关”一边是一个没人把关的市场光 8 月就以日均 150 的速度灌进了 2,840 个插件。这个剪刀差就是我今天要实测的东西。先说结论市场本身做得意外地规矩但“规矩的市场”和“有人把关的市场”是两回事。2,937 个插件一半以上下载量为零上架零门槛审核这个词在整条链路上不存在。逛完这一天我觉得 AIR 这类公司融的钱至少在 DSH 这个生态里一时半会儿还花不出去——因为这里压根没有“审”的对象和标准。一、装市场的三堵墙老读者知道我上一篇装 DSH 本体时被 npm 坑了大半个小时。这次装市场官方 README 给的姿势是一行命令dsh plugin--profilewebadddshmarket我在 Git Bash 里敲下去报错pnpm 不是内部或外部命令。这个dsh plugin子命令在 Windows 上内部会经 cmd 子进程转发给 pnpmGit Bash 里看到的就是 cmd 风格的报错文案而我机器上的 pnpm 是 corepack 按需拉起的没有全局驻留——dsh 找不到它直接躺平。绕过的方式不体面但有效自己进 profile 目录装。cd~/.dsh/profiles/webcorepackpnpmadddshmarket装完第二堵墙来了。重启 dsh市场没出现——因为装上的是个 npm 包不是挂载的插件。回想上一篇的知识DSH 没有独立的配置语言一个 profile 的能力就是它组合树里的那几行插件行。npm 装包只是把货搬进了仓库要让它在组合树里占一行得往cordis.patch.yml里写三条这个写法不是我发明的dshmarket 包里自带一份一模一样的 cordis.patch.yml照抄即可-insert:-id:dsh-marketname:dshmarket写的时候还栽了个跟头patch 文件里原来躺着一个空数组[]我在后面追加插入段启动直接报解析错误——YAML 里数组就是数组不能一半是[]一半是列表项。把[]删掉才通。这种小坑写出来不值钱但不写下一个照抄的人得再踩一遍。第三堵墙最隐蔽。市场重启后端点全 404查了半天发现是 peer 依赖缺失web profile 的 pnpm-workspace.yaml 里写着autoInstallPeers: false而 dshmarket 的三个 peer宿主 cordis 框架、settings、schema 库一个都没装上。这个坑最隐蔽的地方在于插件加载失败没有任何报错日志它就是安安静静地不在——你是去调/dsh-market/status端点、发现连路由都不存在才倒推回去查依赖的。同一条根上还长着另一颗雷。我这天重装了一次 DSH 本体上一篇的临时目录被清理了新装完直接抛 ERR_MODULE_NOT_FOUND——主包同样把核心依赖全声明成 peer一样指望宿主替它装齐。一个 rc 阶段的项目依赖声明策略激进到“默认假定宿主会替我装齐一切”装的时候翻车点全在你这边。这个观察先记下第四节聊市场本体工程质量时还会回来。三堵墙过完市场起来了。浏览器里多了一个“插件市场”入口卡片流、搜索框、分类筛选、双语描述、截图轮播、评论区——像模像样App Store 的皮相是学到了。接下来看里子。二、2,937 个插件的结构拉出来算账市场的数据源不是它自己而是 awesome-dsh-plugin 这个精选仓库——每天由 CI 刷新星数和 npm 映射市场每次打开都实时拉取故意不留本地缓存理由写在文档里一个每天生长的目录过期答案不是降级答案而是错误答案。这意味着我可以直接从数据源拉全量清单来算账。当天实拉2,937 个插件。几个我认为值得记下的数字分类结构23 个类目。ui476、tools379、dev239、session185、workflow173、usage163、memory136、skill125、notify122、model120、theme105、security100……往下还有 vision、git、browser、voice、wsl。最扎眼的是那个孤零零的 agi 类只有一个插件dsh-memory自称“白箱 AGI 架构探索元认知自我认知循环、知识飞轮、世界模型、自举纪律”。分类体系很健康健康到能容下一个连它自己都不知道该归哪的插件。供给的头部集中1,920 个 owner 贡献了 2,937 个插件头部是 omdsh-dev37 个、JohnXu2278635 个、一串纯数字 ID 的账号17378724730 个。下载量榜首是市场自己约 30 万次然后是 DSH-better-sidebar、task-board、remote-web-ui 这些 UI 件。而星数榜首很有意思archify4.2 万星、OpenViking3.5 万星、hindsight2.2 万星、腾讯 WeKnora2.1 万星——全是大厂主项目“顺手”在 DSH 上开了个插件入口卡片星数同步自主仓。真正的“原生插件”星数中位数是3。一半是零蛋2,937 个插件里1,588 个54%下载量为零238 个连星都是零。8 月 25 日之后上架、至今零下载零星的插件有 152 个——摊到 8/26 至 9/3 这 9 天里平均每天十六七个新插件上架即沉底。速率对比更直观整个 8 月市场上架了 2,840 个插件按 8 月 14 日建仓算 18 天日均约 158 个9 月 1 日到今天只新增了 97 个2,937 − 2,840日均 32 个。爆发期已经过去但库里 97% 的存货就是那时候灌进来的。这组数字指向同一个结论一个典型的供给先于需求的市场。作者端上架热情高涨门槛为零提个 PR 就进精选清单用户端的注意力根本来不及分配。54% 零下载不是失败指标——它就是长尾的本来面目只是这个长尾长在了 agent 插件这种用户本该极度谨慎的品类上。三、抽三个插件连代码带账一起审数字看完我挑了三个插件做源码抽检。挑法一个头部modlens星数最高的原生插件之一3,829 星14.5 万下载、一个腰部dsh-context1,235 星5.3 万下载、一个长尾零蛋dsh-keep-awake0 星 0 下载上架五天。先说长尾那个反转了。dsh-keep-awake功能是“agent 运行时防止系统休眠”——Windows 上调 SetThreadExecutionStatemacOS 上 caffeinateLinux 上 systemd-inhibit。999 行代码零依赖我逐行扫过去零网络调用。整个插件就是盯着 DSH 的 agent 状态该锁就锁该放就放外加一个本地设置页。它 0 星 0 下载不是因为做得差是因为上架五天没人看见。这种插件躺在 54% 的零蛋堆里是市场的损失不是它的。腰部的 dsh-context做上下文仪表盘上下文构成、趋势、事件、/context 命令35 个源文件 5,659 行。生产代码的外联 URL 我全扫了一遍指向 DeepSeek 官方文档的四条算 token 价格用的npm 镜像两条查自己版本号没了。不碰你的 key不回传任何东西。头部的 modlens 最值得细说。它是给纯文本模型装眼睛的DeepSeek-V4 旗舰对话模型和 GLM-5.3 完整版都不带视觉——视觉能力分别在 V4-Vision 和 GLM-5.3-Flash 上后者还是 GLM 系列第一个原生多模态模型完整版权重里根本没有视觉模块。modlens 把粘贴进对话的图片 base64 之后发给一个 vision provider再把返回的 JSON 结构化描述喂给模型。这个设计本身没什么可挑的细看它的工程反而有点感动key 轮换认证失败、限流、配额用尽自动切下一个、provider 级故障转移、图片拉进内存前有大小上限。它甚至会在文档里提醒你“每一跳都会把你粘贴的图片上传给你配置的 vision provider”。但请注意这个架构的含义你粘贴的每一张图都会离开你的机器。发给谁取决于你配了哪个 provider——官方推荐的是“免费无 key 通道”Antigravity CLI装它的方式是往 shell 里 pipe 一个安装脚本或者一个免费 Gemini key。这两个“免费”选项对一个要读你屏幕截图的插件来说信任模型完全不同后者是 Google 的 API 条款前者是一个我没有任何理由信任的第三方 CLI 的登录态。modlens 自己没有恶意但“我该把这个插件放进我的 agent”和“我该让图片流经这个通道”是两个独立的信任决策市场把它们打包成了一个“安装”按钮。三个抽检零恶意。但样本量 3/2,937而且是我挑着看的——我天然会跳过描述含糊的、名字奇怪的。这个“挑”的动作就是审核本身而它现在只发生在用户这一侧。四、市场自己做得怎么样公平起见得说市场本体是我这一天里见过的工程质量最高的 DSH 社区项目。它不是套壳商店31 个文件、41 个 lib 模块翻它的源码能看到一整套防御性设计安装源白名单只装 awesome 精选清单里列的别的来源一律拒绝构建脚本默认封锁pnpm 10 的机制要放开得你逐包手动批准装 UI 插件前会弹提示告诉你这东西跑在浏览器侧备份导出前警告“里面可能有你 profile 配置里的凭据”网络模块专门处理了“Node 的 fetch 不理会 HTTP_PROXY 环境变量”这种坑注释里写了他们在 Node 25 上实测的过程——undici 包的 fetch 和 globalThis.fetch 是两个 undici 实例只有前者能走代理。这段注释我看了三遍教科书级的日志导出会脱敏家目录路径和凭据形状都打码“never sent anywhere”——我 grep 了全部 lib确实没有遥测甚至有个设计细节让我笑了它有个“AI 修复”按钮把诊断信息拼成 prompt 复制到剪贴板让你发给一个新会话并且 prompt 的第一句话是让 agent 先自检“你是不是正在跑这个 profile 的 harness 本身”——如果是就禁止它改动活着的组合、禁止升级重启只能写一对幂等的 apply/rollback 脚本让你自己在外部终端跑。一个插件市场给“用 AI 修 AI 工具”这件事设计了防爆仓机制。不过第一节那笔账得在这里结。市场本体的防御性设计讲究到这个程度它自己的 npm 包却照样踩在同一颗雷上dshmarket 把宿主 cordis、settings、schema 库三个依赖全声明成 peer指望宿主的 autoInstallPeers 替它装齐——我装市场时撞上的“静默 404”就是市场自己埋的。它防得住来源、防得住构建脚本、防得住凭据泄露唯独防不住这个生态自己的打包约定。但是——绕回主题——这一切防的都是“市场这个中介作恶或犯错”没有一条防的是“插件本体作恶”。白名单清单的准入标准是“有人提了 PR、被合并了”不是“有人审了代码”。README 自己把话说得很直白Listing ≠ endorsement收录不等于背书。这句诚实的话和 AIR 融的 5,000 万美元正好是同一件事的两面。五、三部曲收官把三篇的观察拼起来第一篇我说“Everything is a Plugin”一半是新范式一半是新命名第二篇跑完插件开发我把判断往“新范式”挪了一格。今天逛完市场我想把拼图的最后一块放上这个架构的真正赌注不在技术在分发。DSH 把 agent 的每个能力做成独立 npm 包意味着插件可以像 npm 包一样海量供给——这解释了为什么一个建仓二十天的市场能有近三千个插件npm 在 2010 年代早期也是这么爆发的。但 npm 的教训也是现成的供应链攻击的第一站永远是那个没人仔细看的包。DSH 生态现在有三个层次的保护——市场本体的白名单和封锁机制、DSH 官方 cordis 预设那句“把这个预设下的会话当作 shell 访问来对待”的信任边界声明、以及……然后就没了。第三层本来应该是某种社区审核或签名体系它还不存在供给在 8 月以日均 150 的速度涌进来9 月虽然回落到日均 30 个上下但零门槛的口子一直开着。我在第一篇埋过一个问题20 万星里有多少会转化为长期贡献者要看半年后。今天补一个更近的2,937 个插件里有多少会在 DSH 的第一个破坏性版本变更官方预警过的那种之后还能活下来到那天零下载的长尾会成批变成死代码而市场对“死插件”同样没有任何标记机制。我猜 AIR 们等的其实就是这个时刻。给后来者的实操建议一句话版装之前把插件当 npm 依赖审别当 App Store 的应用装。market 的“安装源白名单”挡得住野鸡来源挡不住白名单里的坏蛋它贴心地给每个插件卡片放了源码链接用不用在你。至于我三个抽检插件里 keep-awake 和 context 我留下了——一个防休眠一个看上下文都是纯本地、零外联、真解决问题。modlens 我犹豫了它做得真好但我贴进对话的截图会流经一个我不认识的免费通道。这个犹豫本身就是答案先不装了。下一篇如果 DSH 出了那个预告中的破坏性版本我会回来做个插件生态死亡率统计。那篇文章的数据今天已经埋好了。数据核验说明本文全部数字来自 2026-09-03 当日实跑实抓插件总数 2,937、分类分布、星数/下载量/owner 统计从市场运行实例的/dsh-market/registry端点实拉当日全量 JSON数据源为 awesome-dsh-plugin 每日 CI 刷新本地 Python 统计。全量 JSON 当日统计后未存档但 registry 端点可重拉下列口径均可复算“原生插件”口径剔除卡片星数明确继承自外部主仓的插件入口大厂主项目“顺手”开设、星数与主仓同源者余下独立插件仓库按星数取中位数 3archify/OpenViking/hindsight/WeKnora 四个主仓星数为卡片同步值当日未逐家复核速率口径8 月上架 2,840 个按建仓日 8/14 起 18 天均摊 ≈ 158 个/天9 月新增 97 个2,937 − 2,840按 3 天均摊 ≈ 32 个/天“上架即沉底”152 个为 8/26–9/3 共 9 天窗口均摊 ≈ 17 个/天三个抽检插件的源码审计从 GitHub codeload 拉取三仓库当日 main 分支 tarball 解包生产代码逐文件 grep 外联 URL 与进程/网络调用keep-awake 999 行、context 5,659 行35 文件、modlens 9,730 行45 文件市场本体工程观察dshmarket npm 包 1.39.0当日 registry 版本 1.40.0实装为 1.39.0lib 41 个模块源码实读dsh-market 仓库数据3,062 星9/3 实抓值9/2 归档为 3,006日增 56/MIT/最近提交 09-02api.github.com 实抓AIR$50M9/1、HiddenLayer$100M9/2融资信源为当日 TechCrunch安装过程三堵墙pnpm 不在 PATH、patch 层 YAML、peer 依赖静默缺失本人机器实录Win11 DSH 0.1.1-rc.2 pnpm 11.25.0零下载口径54% 1,588/2,937“上架即沉底”152 个 8 月 25 日后上架且当前星数 0 且下载量 0关联三部曲前篇《DSH 上手实录》《DSH 插件开发实录》同系列CSDN 站内搜标题可见