在 DeepSeek Harness (DSH) 中使用自定义技能(例如 /caveman 或 /ponytail)时,每次开启新会话都需要手动输入指令来激活。如果希望在多个会话中保持同一组技能生效,或者需要在不同会话间快速切换人设,重复输入会降低效率。skill-injector-plugin 插件通过在会话启动时或每轮请求时自动注入用户选定的技能,解决了这一问题。
该插件由 Zenjibad 维护,采用 MIT 许可证。它作为一个真正的配置文件插件,支持重启存活,旨在简化多会话中的技能管理流程。
核心功能¶
- 设置页:提供复选框列表以选择要注入的技能,并提供单选框以选择注入模式。未解析的技能会列出原因并提供 Retry 和 Remove 按钮。
- 输入指示器:在聊天输入框下方显示一行状态信息,例如
Injected Skills: caveman, ponytail · Mode: each-prompt,每 5 秒刷新一次。 - 两种注入模式:
each-prompt:将技能内容放入 System Prompt,每轮请求重新渲染。start-only:在会话开始时注入一条固定的技能调用消息。
- 实时技能注册表:直接读取
ctx.skills,无文件复制,技能修改实时生效。 - 子代理支持:注入行为应用到子代理,保持一致。
- 重启存活:作为真实的配置文件插件,安装后随 DSH 重启自动加载。
安装与启用¶
插件安装后持久化存储于配置文件中,无需每次会话手动定义。
dsh plugin --profile web add ./skill-injector-plugin
安装完成后重启 DSH(或硬刷新页面),客户端模块扫描器会解析 exports["./client"],设置页面与指示器将自动出现。
配置与使用¶
- 无配置文件:所有设置通过 UI 界面操作,存储在
skill-injector设置命名空间下。 - 模式与选择:
mode:默认为'each-prompt'。selected:默认为[],存储要注入的技能名称(kebab-case,最多 16 个,自动去重)。
- 状态查看:输入指示器会显示当前注入的技能列表和模式。如果技能处于未解析状态,会显示
· N unresolved后缀。
注意事项¶
- 只读权限:插件仅读取技能内容,不对系统配置进行写入操作。
- 技能文件位置:技能文件必须存在于
~/.agents/skills(或 DSH 配置的技能根目录)中。 - 容错处理:技能未找到或加载失败时,插件会保持最后一次成功的注入内容。只有当一次完整的、有作用域的读取未能识别该技能名称时,它才会被标记为
unknown并停止注入。此时设置页会列出该技能并提供 Remove 选项。 - 子代理行为:注入行为会应用到子代理,不会进行来源过滤,确保整个代理树行为一致。
该插件通过自动化技能注入流程,减少了重复操作,适合需要在不同会话间快速切换特定人设或行为模式的 DSH 用户。