Repository navigation
Releases: KERBALMans/dsh-plugin-studio
Release list
v1.0.1 — AI 讲解与工具输出修复
插件工坊 1.0.1
修掉三个 AI 功能上的缺陷,都是用户直接撞得到的。
修复
- 单行「AI 讲解」讲错行数 —— 点 1 行实际讲了 8 行,耗时约 11 秒,还把 8 条讲解写进缓存。原因是字符串 key 被当成数组发出去,服务端
Array.isArray为 false 后退化成「全部未讲解的行」。 - 三个 Agent 工具返回非法输出 ——
output.render返回的是完整 ToolResult 形状而不是ContentBlock[],宿主以INVALID_TOOL_OUTPUT拒绝,studio_list/studio_explain/studio_remove从未可用。 - token 统计恒为 0 —— 读错了 usage chunk 的字段路径。
改进
- 模型漏答会补问:24 行只回来 23 行时不再静默丢一条。
/explain对非数组keys返回 400,而不是静默讲解全部积压。- 界面显示 AI 统计(模型名、读了几条、回来几条、token 用量),部分成功时明说缺几条。
安装
plugin_manager action: install_bundle
target: github:KERBALMans/dsh-plugin-studio#v1.0.1
或下载下方 dsh-plugin-studio-1.0.1.tgz 后从本地安装。
node scripts/all.mjs --offline 10/10 通过。
v1.0.0 — 插件工坊首个正式版
插件工坊 v1.0.0
一个设置页,管好 DeepSeek Harness 里的全部插件和全部技能。
这是
dsh-modpack(插件整合包)的正式继任者。整合包解决"把配置带走",工坊解决"平时怎么管"。
这版解决了什么
装到十几个插件以后,Harness 的设置页会变成一长串平铺列表。你想删掉几个不用的,但——
- 看不出哪个是干什么的:名字叫
dsh-plugin-rea,描述一句英文,删了怕坏; - 不敢删:不知道删了会不会影响正在用的东西;
- 不知道哪个真的没用:"我好像三个月没碰它了"是感觉,不是证据;
- 插件和技能是两套地方:管了插件还得另外管技能。
工坊把这四件事合到一个页面:分类 → 看懂 → 看使用记录 → 批量删。
六个功能
1. 三级自动分类,不留"无法判断"
插件按 大类 → 能力域 → 插件本身 三级排列。分类器不是靠关键词硬猜,而是收集证据:
| 证据来源 | 举例 |
|---|---|
| 包名与描述 | dsh-plugin-wallpaper-engine → 界面 |
| 代码里注册了什么 | settings.section → 界面;tools.register → 工具 |
| 依赖了哪个宿主服务 | 依赖 llm → 模型;依赖 skills → 技能 |
| 实际调用了什么 | theme.overrideTokens → 主题 |
| 文件与目录结构 | 有 client.js → 有前端 |
每一行都能展开看判定依据——具体是哪条规则命中的。置信度低的时候会标出来,不会假装确定。
关键点:每个插件都有分类。 分类器有一条兜底规则:所有证据都不匹配时,按名字和依赖归到最接近的域,而不是丢进"未分类"。实测 31 个插件、8 个技能,other 组恒为 0。
2. 复选框批量删除 + 重启提示
每个插件前面有复选框,可以单选也可以多选。二级分类标题右边还有「全选本组」。
勾选后底部浮出操作栏,点删除弹确认框,明确列出哪几个会被删。
如果某个包删除后需要重启才能完全卸载,会额外提示原因:
- 「这个包没有热重载,改完得重启才能换掉正在跑的代码」
- 「改的是宿主侧模块,只有重启才重新加载」
保护措施:官方底座、只读包、来源不明的包不可删,复选框是灰的,鼠标悬停显示原因。
3. AI 大白话分析
点「讲解」,AI 会结合代码实际做了什么 + 作者写的简介 + GitHub 上的项目说明,给出三段话:
- 它帮你做什么 —— "会在设置里加一个页面,让你给对话窗口换动态壁纸"
- 删了会怎样 —— "删掉之后壁纸变回纯色,不影响聊天"
- 依据是什么 —— "代码里注册了
settings.section,并且调用了theme.overrideTokens"
不用看懂代码,看完就知道该不该留。
4. 最后使用时间
每行显示这个插件最后一次被真正使用是什么时候。
这里有个容易做错的地方:"被提到"不等于"被使用"。你在对话里说"这个插件不错",不代表它工作了。如果混在一起,讨论插件的时候所有插件都会显示"刚刚使用",这一列就废了。
所以工坊区分两种显示:
| 显示 | 含义 |
|---|---|
最后使用:2 小时前(工具调用) |
真的用过 —— 会话日志里有工具调用命中它注册的工具 |
最后使用:— + 灰字 5 天前提到过 |
只是被提到 —— 名字在对话里出现过,但没有实际调用 |
配合「90 天未用」筛选,长期不用的插件一目了然。
5. 技能管理页(和插件页功能对等)
技能 tab 有和插件 tab 完全一样的能力:三级分类、搜索、筛选、批量删除、打包、AI 讲解、最后使用时间。
内置的 8 个技能会被分成「文档处理技能」(office 系列 7 个)和「开发与诊断技能」(1 个),而不是挤在一个组里。
6. 重命名 + 重新设计的界面
从 dsh-modpack(插件整合包)改名为 dsh-plugin-studio(插件工坊),因为它的职责从"打包"扩展到了"管理"。
界面完全重做,跟着客户端的设计语言走:
- 只用客户端声明的 13 个主题 token,自动跟随深色/浅色主题
- 三级缩进用
padding-left而不是位移,视觉层次清楚 - 工具栏、筛选 chips、底部操作栏,符合现代列表管理器的习惯
安装
从 GitHub 安装(推荐)
plugin_manager action: install_bundle
target: github:KERBALMans/dsh-plugin-studio
装特定版本:
plugin_manager action: install_bundle
target: github:KERBALMans/dsh-plugin-studio#v1.0.0
从本页附件安装
下载下面的 dsh-plugin-studio-1.0.0.tgz,然后:
plugin_manager action: install_bundle
target: E:\下载路径\dsh-plugin-studio-1.0.0.tgz
安装完成后打开 设置 → 插件工坊(在「插件」下面、「智能体预设」上面)。
装完看不到? 重启一次客户端。运行中的 Host 会缓存已加载的 ES 模块,
plugin_manager报告application: "applied"只说明依赖装好了,不说明新代码已经在跑。
兼容性
| 客户端版本 | 状态 | 说明 |
|---|---|---|
| 0.2.1-rc.3 | ✅ 完整支持 | 全部功能可用 |
| 0.2.1-rc.2 | ✅ 支持 | 无 inspect/skills 服务时,AI 分析改用文件扫描,技能页改用目录扫描 |
| 0.2.1-rc.1 | ✅ 支持 | 无 removeBundle 时,删除按钮会说明原因而不是静默失败 |
| 未来版本 | ✅ 设计上向前兼容 | 多出来的新方法会被忽略,不会误认;必需方法消失时回落到读 profile 文件 |
怎么做到跨版本不崩的:能力探测不看版本号,而是检查方法是否存在(typeof svc.removeBundle === 'function')。版本号会撒谎(rc.2 打了补丁可能比 rc.3 功能多),方法在不在不会。
降级时不是"功能消失",而是"换一条路":
- 没有
pluginManager.inspect()→ 直接读 profile 的package.json和node_modules - 没有
skills服务 → 扫描~/.dsh/skills和~/.dsh/agents/skills目录 - 没有
llm服务 → 讲解按钮显示"当前没有可用的模型",不卡住
验证情况
发布前跑了 9 个测试套件,全部通过:
| 套件 | 测什么 |
|---|---|
smoke |
核心函数不崩、分类结果自洽、最后使用时间规则 |
analyse |
三级树结构、每个插件都有分类、无 other |
routes |
每个 HTTP 路由的返回结构 |
actions |
删除、打包、分类写入的副作用与回滚 |
ai |
提示词构造、模型返回解析、非法项丢弃 |
style |
只用合法主题 token、无硬编码颜色、无危险 DOM 操作 |
render |
用真实数据把面板渲染成 HTML,检查结构和类名 |
measure |
在真实浏览器里量布局:缩进逐级成立、无横向溢出、token 有值 |
compat |
5 种服务契约(rc.1 / rc.2 / rc.3 / 未来新增 / 未来重命名)下都能工作 |
其中 compat 专门测跨版本:给插件喂一套"缺方法的服务",确认它降级而不是崩溃。
数据存在哪
| 内容 | 位置 |
|---|---|
| 分类结果 | ~/.dsh/storages/dsh-plugin-studio/categories.json |
| AI 讲解缓存 | ~/.dsh/storages/dsh-plugin-studio/explanations.json |
| 整合包 | ~/.dsh/storages/dsh-plugin-studio/packs/ |
删掉这些文件不会影响插件本身,只会丢掉分类和缓存。
许可
MIT
