MORE WORK / DSH-PLUGIN HUB · 个人开源探索
DeepSeek Harness 插件发现站(dsh-plugin hub)
DeepSeek Harness 开源数日,GitHub topic「dsh-plugin」的仓库数量快速涨到 9,252(8.20 峰值快照)。发现通道却停在列表与 star 排序:只回答「有什么」,不回答「哪个才是合适的」。这个项目补上了缺失的一层——质量分层与可解释推荐。
输入一句话需求,即可获得可解释的插件推荐;数据来自每日更新的全量普查,站点与插件仓库均为公开。
01 / 问题
生态爆发了,发现通道没跟上
DeepSeek Harness 开源数日,GitHub topic「dsh-plugin」的仓库数量快速上涨:8.15 晨 3,351,8.15 晚 3,804,8.16 达到 4,770,8.19 全量普查快照 7,948,三天净增 3,178;8.20 冲到峰值 9,252,此后在 7,000–9,000 之间波动,8.28 快照为 7,120。
但发现通道还是三样老东西:静态精选列表(约 580 条、靠人工 PR 更新)、站内市场(目录式浏览)、按 star 排序的搜索。它们全部只回答「有什么」,没有一个回答「哪个才是合适的」。
8.15 晨 3,351 → 8.20 峰值 9,252 → 8.28 快照 7,120;8.22 抓取不完整,未计入。
两个 awesome 列表并存(8.4 与 8.13 各一个),topic 还自发裂出 dsh-plugins 变体(427 个仓库)。
发现入口本身是分散的,新用户不知道该看哪一份。
星标榜里混着 2021 年创建的 yao、GPT 生图导航站等只迁移了 tag 标签的项目,合计带入约 2.3 万星,对生态没有贡献。
按 star 排序会奖励只是贴了 topic 标签的老项目,而不是生态贡献。
92% 仓库不足 10 星,而真空区里认真做工程的项目(轨迹治理、审批门控记忆、插件评测)只有 2–18 星。
认真做基建的项目被淹没在长尾里。
拥挤功能位重复造轮子,关键功能位没有人做。
02 / 判断
缺的不是更多列表,是「质量分层 + 可解释推荐」
用户的真实问题不是「找不到插件」,而是「不敢装」:安装插件等于在本机以自己的权限运行第三方代码,而 8.19 普查显示,15.5% 仓库没有许可证、4% 是 NOASSERTION。
推荐系统必须自带信任信号,同时说明「为什么推荐它」。纯 star 排序方案(包括已有的 dsh-find-plugin)没有这一层。
中间一层是这个项目补上的:把信任信号变成推荐前的质量分层。
所以最终选择做「质量分层 + 可解释推荐」,而不是第 N 个列表或市场。
03 / 方案取舍
五个关键决策
下面五个决策决定了产品形态、检索方式、数据新鲜度、质量口径和排序公式。
插件形态 vs 独立网站
网站每次推荐都要调用模型接口、消耗个人额度,用户还要离开 DSH;插件形态下,推荐就是 Agent 自己那一轮思考,不额外消耗额度,还能直接给出 dsh plugin add 命令。所以插件作为主形态,网站保留为可访问的产品演示。
规则引擎 vs embedding
插件语料是开发者的功能描述,字面直白,关键词聚类 1 秒内就能完成可解释的分组;向量检索需要 1GB 以上的模型或接口费用,结果也不可解释。所以先用规则引擎,把 embedding 留作升级路径。
每日索引 + 实时合并 vs 纯实时
GitHub Search 限流 10–30 次/分,单查询上限 1000 条,纯实时必然撞上限。所以每天离线构建全量索引(包含开销最大的 dsh.bundle 探测与评分),查询时再叠加一次 gh 实时搜索兜底;没有 gh CLI 时自动降级到纯索引。
质量分(0–100)
精选收录 +30;声明 dsh.bundle +25;宽松许可证 +15(NOASSERTION 记 0 并标红、没有许可证扣 10);星标按对数折算最高 +20;7 天内活跃 +10。每个低质量信号转成风险徽章,而不是默默扣分。
排名公式与中文查询的坑
第一版把中文查询当成整串 token,整句匹配必然落空,推荐退化成全站高分榜。实测发现后改为 CJK 二元组切分 + 20 条同义别名映射(手机→移动、图片→视觉)。第一版的问题与修复对照完整保留在仓库里。
对应决策 04:每一项都写进推荐结果,低质量信号以徽章显示。
04 / 证据
全量数据,不是抽样印象
三次递进的数据工作:top20 深析回答「头部是谁」,595 条精选列表去重地图回答「拥挤与真空」,3,804 仓库全量普查回答「真实结构与错配」。普查用「日期桶 + 星标区间」两个维度切片,绕过 API 单查询 1000 条的上限。
从头部深析扩大到全量普查,每一步回答不同的问题。
05 / 验证与结果
功能位命中实测与工程验证
功能位命中实测(2026-08-16,索引 4,770 仓库):六组自然语言查询,Top3 全部命中正确功能簇。
每日索引 CI 上线
每天自动重新抓取、评分、生成索引,并提交回插件仓库(首日自动提交 chore: refresh plugin index (2026-08-16))。
精选列表 PR 已合并
向 awesome-dsh-plugin 提交 PR #1051,已经合并(维护者按列表新的 data/plugins yml 格式收录)。这个列表由社区维护,不是官方发布渠道;官方至今没有 registry,发现入口只有 topic 约定。
站点每日自动部署
GitHub Actions 每天抓取、评分、构建并部署到 Cloudflare Pages,线上数据每日更新(8.28 快照 7,120 个仓库)。配置过程排错三次 API token 权限:Cloudflare 权限列表里的 Pages 权限就叫「Pages」,不叫「Cloudflare Pages」,而且必须选择 Edit 级别。
质量问题的发现与修复
并行 AI 会话实测时通过会话轨迹定位「工具执行成功但返回 INVALID_TOOL_OUTPUT」:根因是输出 schema 把可空字段声明成普通 string,代码对缺失值返回 null,DSH 落库校验拒绝。修复为 DSH 官方的可空写法 oneOf: [string, null],同时修复质量分等于 0 时被误判为缺失的边界问题。
embedding 语义检索
插件语料目前以开发者的功能描述为主,字面直白,规则匹配足够覆盖;等语料的口语化程度上升后,再启用向量检索。
推荐反馈回路
把用户「有用/没用」的信号回流进质量分,需要足够的真实查询量才有统计意义;目前先基于公开信号迭代。
与社区项目协作
等工具和站点稳定运行一段时间,再与 dsh-find-plugin 等社区项目协作,把质量分层做成生态公共能力。
每一项都先想清楚现在不做的原因,再决定什么时候启动。