前言¶
DeepSeek Harness(DSH)支持通过用户消息里的 /技能名 手势加载技能:发送前写上 /kebab-case-name,框架在 agent/pre-step 阶段识别并注入对应技能内容。这条路径是官方原生能力,但 Web GUI 默认只有输入 / 后的前缀补全——你得先记得技能名,才能打出前缀过滤。
技能装得多了,名字和用途很容易对不上号。下面介绍社区插件 dsh-skill-picker(维护者 a735624258):在 composer 工具行右侧加一个按钮,把已安装技能列出来,支持搜索和点选,选中后把官方 /技能名 写进发送框,走 DSH 既有加载机制,不改 agent 侧逻辑。交互思路类似 WorkBuddy 的「把技能写进发送框」。
这是什么¶
dsh-skill-picker 是 DSH Web GUI 的客户端插件,分类为「客户端」。当前版本 0.2.0,许可证 MIT,GitHub 仓库 a735624258/dsh-skill-picker,社区目录页 SkillHub。
它只做 UI 一层:client 半注册到 conversation.input.right 插槽,host 半提供技能列表路由;点选后通过 inputActions.setDraft 插入 /技能名,后续加载与执行完全交给 DSH 原生 SKILL_GESTURE 机制。
与官方 / 补全的关系¶
DSH 内置技能补全:在输入框输入 / 会按前缀过滤。本插件不替代它,而是补上「忘了名字也能翻到」的场景。两者可同时使用。
官方 / 补全 |
dsh-skill-picker | |
|---|---|---|
| 触发 | 输入框打 / |
输入框旁按钮 |
| 查找 | 前缀记忆驱动 | 全列表浏览 + 关键字搜索 |
| 排序 | 固定 | 最近使用置顶、常用靠前(localStorage) |
| 描述 | 精简 | 完整描述可见 |
记得技能名时,官方补全足够快;名字记不清或想翻着选时,用本插件更顺手。
核心功能¶
以下能力均来自插件 README 与 package.json 声明,按 DSH 0.1.0-rc.6 API 编写。
可视化选择与搜索。 点击 composer 工具行右侧按钮,弹出已安装技能列表;可输入关键字,按技能名或描述实时过滤。v0.2.0 起,在输入框直接打 / 也会列出全部技能,并支持模糊搜索。
智能排序。 最近使用的技能置顶,常用项靠前,排序数据存于浏览器 localStorage。
官方数据源。 技能列表优先走宿主 connection.api.skills.list,与 DSH 内置 / 补全同一数据源,会话作用域内覆盖用户级 ~/.dsh/skills、项目级 <workspace>/.dsh/skills、<workspace>/.agents/skills 等官方目录。API 不可用时回退到 host 扫描路由。
零 agent 改动。 插入的是官方 /技能名 手势,加载路径与手写 /技能名 相同。
主题适配。 样式跟随 Web UI CSS 变量,浅色/深色自适应。
架构。 纯 client + host 双半插件,无第三方运行时依赖;client 通过 esbuild 构建为带 __ModuleLoader__ 握手的 bundle。
安装与启用¶
插件尚未发布到 npm(npm view dsh-skill-picker 会 404),请用 Git 克隆或 Git 依赖安装。
# 方式一:克隆 + link(推荐)
git clone https://github.com/a735624258/dsh-skill-picker.git
dsh plugin --profile web add link:/path/to/dsh-skill-picker
# 方式二:Git 依赖直装
dsh plugin --profile web add "github:a735624258/dsh-skill-picker"
若在 Windows PowerShell 下 dsh 因执行策略被拒,可改用:
powershell -ExecutionPolicy Bypass -Command "dsh plugin --profile web add link:C:\path\to\dsh-skill-picker"
安装后重启 dsh web,或刷新页面加载新 bundle。
卸载:
dsh plugin --profile web remove dsh-skill-picker
典型用法¶
- 打开任一会话,在输入框工具行右侧找到技能选择按钮。
- 点击弹出技能列表,可输入关键字过滤。
- 点选目标技能,发送框自动出现
/技能名(末尾带空格)。 - 继续输入你的话并发送;DSH 识别手势后自动加载该技能。
示例:点选 duo-xuan-pi-gai 后,发送框变为 /duo-xuan-pi-gai 帮我批改多选,发送后技能按指令执行。
工作原理(简述)¶
[client] 按钮 → fetch('/dsh-skill-picker/skills')
↓
[host] 扫描用户级与项目级技能目录 → 返回 name + description
↓
[client] 点选 → inputActions.setDraft(draft + '/技能名 ')
↓
[DSH] agent/pre-step 识别 SKILL_GESTURE → 注入 skill-invocation
host 半在 agent/pre-step 之外独立提供列表;真正加载技能仍由 DSH 的 dsh-tool-skill 在手势命中时完成。
适用场景与注意¶
适合谁。 本地或项目里装了多个 DSH 技能、经常记不清准确名字、希望在 Web 界面里浏览描述再选用的开发者。
技能来源边界。 当前优先官方 skills API,回退扫描覆盖用户级与项目级目录;README 注明暂不扫描 ~/.agents/skills 与 customSkillDirs 自定义目录。
失败保护。 client 在 conversation.input.right 插槽缺失时静默跳过;host 路由对不存在目录返回空列表,不拖垮启动。
版本与权限。 插件以当前 dsh 进程权限运行,安装前请查看仓库源码与 MIT 许可证。若 DSH 大版本更新导致 API 变化,以启动日志中的插件错误为准;需要回退时执行上述 remove 命令即可。
开发构建。 若自行改源码,需在仓库内执行 npm install 与 npm run build,lib/client.js 为构建产物,不可手改。
链接¶
- 社区目录:https://www.skillhub.cn/plugins/a735624258/dsh-skill-picker
- GitHub:https://github.com/a735624258/dsh-skill-picker
SkillHub 是独立社区目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态奉行「一切皆插件」,本插件是其中面向 Web 输入体验的一项补充。