dsh-skill-loader:DeepSeek Harness 的按对话技能清单选择器

前言

DeepSeek Harness(dsh)允许通过插件扩展智能体行为,也允许在会话中加载技能清单。默认情况下,没有做过选择的对话会保持 dsh 默认行为,即全部载入。如果一次只想让某些技能进入当前对话,就需要一个按对话控制的入口。

dsh-skill-loader 是 dsh 的一个插件。它在新建对话的开始页增加「技能清单」选择器,让你决定本次对话载入哪些技能的清单条目。未勾选的技能在该对话中不可用。

这是什么

dsh-skill-loader 的仓库位于 kezboardpj/dsh-skill-loader,许可证为 MIT。它解决的是 dsh 会话中技能可见性的问题:在开始对话前选择技能清单,而不是在对话开始后通过外部配置逐个排除。

核心功能

开始页增加「技能清单」chip

在新建对话的开始页,「工作目录」「agent 预设」chip 旁会出现「技能清单」chip。它只在当前会话处于 blank(未开始对话)时显示;对话开始后自动消失。

实现上,它不是声明一个新的内置槽位,而是在开始页该行内追加自己的 chip 节点,并用 react-dom 渲染。

按勾选载入技能

勾选某个 skill 后,该 skill 的清单条目会载入本对话;模型看到的 <available_skills> 只包含勾选的技能。

未勾选的 skill 在本对话不可用。模型目录、/名称 手势与 skill 工具都会拒绝调用未选中的技能。

没有做过选择的对话保持 dsh 默认行为,即全部载入。

选择状态持久化

选择状态写入 dsh settings 的 skill-loader 命名空间,文件为 $DSH_HOME/settings.yaml。刷新或重启后状态仍然准确。

命令

/skill-select <name1,name2,...>:将本对话的技能清单设为这些技能;逗号分隔。无参数时清空选择。

/skill-unarchive <sessionId1,...>:取消归档指定会话,使其重新出现在侧边栏。

接管与拦截

插件通过宿主 agent/pre-step 接管技能目录,并通过 tools/pre-execute 拦截未选技能的 skill 调用。

安装与启用

下面以 web profile 为例。如果你使用其他 profile,把命令中的 web 替换为对应 profile 名。

从 GitHub 安装:

dsh plugin --profile web add https://github.com/kezboardpj/dsh-skill-loader.git

从本地目录安装:

dsh plugin --profile web add ./dsh-skill-loader

安装后重启该 profile 的 dsh。已安装插件不做热加载。

注意:dsh plugin add 不能处理含空格的路径。如果本地路径包含空格,需要直接编辑 profile 的 package.json 依赖和 dsh.profile.bundles,然后运行:

pnpm install

典型用法

1、新建一个 dsh 对话。

2、在开始页点击「技能清单」chip。

3、勾选本次对话要载入的 skill。

4、开始对话。此时模型只能看到已勾选技能的清单条目。

5、如果运行中想调整清单,可以输入:

/skill-select <name1,name2>

6、如果要清空当前对话的技能选择:

/skill-select

7、如果要让某个已归档会话重新出现在侧边栏:

/skill-unarchive <sessionId1>

从 0.1 升级到 0.2

如果之前安装的是 0.1,升级时建议保持 dsh 停止,按下面步骤操作。

1、运行 scripts/repair-v01-logs.mjs,修复被 0.1 写坏的历史会话日志。

2、如果 0.1 时期使用本地目录 link 安装,请改为从 GitHub 安装。0.2 的宿主端有依赖,裸目录可能无法解析。

3、进入你的 profile 目录,执行:

pnpm update dsh-skill-loader

4、重启 dsh。

升级后,修复过的旧会话中 0.1 时期的选择不再生效,会回到默认的「全部载入」。需要重新勾选。

0.2 宿主端新增了 @deepseek-ai/dsh-settings@deepseek-ai/schemastery 依赖;package.json 中还声明 client 注入 @deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-connection

适用场景与注意

适合以下情况:

  • 你在 dsh 中维护了多个技能,但希望不同对话只载入相关技能。
  • 你希望在新建对话时快速选择清单,而不是进入全局配置。
  • 你需要通过 /skill-select 快速清空或切换当前对话技能。
  • 你需要恢复侧边栏中缺失的已归档会话。

使用前注意:

  • 插件以当前 dsh 进程权限运行,会接管技能目录、拦截 skill 调用,并写入 $DSH_HOME/settings.yaml。安装前建议检查源码、依赖与许可证。
  • 当前版本许可证为 MIT。
  • 安装后需要重启对应 profile 的 dsh。
  • 路径含空格时,按上文的手动 profile 配置方式处理。

链接

GitHub 仓库:

https://github.com/kezboardpj/dsh-skill-loader

如果只需要按对话控制 dsh 中可见的技能,这个插件提供了入口和持久化选择状态。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜