前言¶
DeepSeek Harness(DSH)通过 Skill 扩展智能体能力。Skill 库变大之后,若每次对话都把完整目录塞进提示词,上下文会被占满,模型也更容易在无关 Skill 里打转。另一种做法是硬改内置 skill 加载器,但会牵动 instructions、resources 和 procedural-learning 等既有链路。
下面介绍社区插件 dsh-skill-rag(维护者 Kosello,分类:工作流)。它在不改动原有 skill 工具与加载流程的前提下,提供可选的 Skill 发现方式:保留 DSH 默认全量目录、本地关键词检索,或关键词加向量混合检索。
这是什么¶
dsh-skill-rag 是面向 DeepSeek Harness 的可选 Skill 发现插件。一句话定位:让完整 Skill 库可检索,又不必在每个 prompt 里罗列全部 Skill;原生的 skill loader、说明、资源与相关工具保持原样。
- 目录页:https://www.skillhub.cn/plugins/Kosello/dsh-skill-rag
- 源码:https://github.com/Kosello/dsh-skill-rag
- 许可证:MIT(见仓库
package.json,当前版本 0.2.0)
三种工作模式¶
插件通过 cordis.patch.yml 里 skill-rag 行的 config.mode 切换行为。新装默认是 catalog,无需 API Key、模型服务或外网。
| 模式 | 作用 | Embedding | 索引 |
|---|---|---|---|
catalog |
标准模式,不用 RAG;沿用 DSH 自带全量目录与 loader | 无 | 无 |
keyword |
本地 SQLite FTS5/BM25,配合精简后的 Skill 目录 | 无 | 本地关键词索引 |
hybrid |
关键词 + 语义检索 | Jetson、Google、OpenRouter 或 OpenAI 兼容端点 | 带版本号的向量 generation |
hybrid 需显式配置;catalog 不会注册 skill_search、不会建索引、不会初始化 embedding 提供商。
环境与依赖¶
资料中写明的运行条件如下:
- DSH 0.2.1-rc.2(README 中的 tested target)
- Node >=22.19,且需原生
node:sqlite hybrid模式下需任选一种 embedding 来源:本机 TensorRT manager(默认http://127.0.0.1:8110)、Google Gemini API Key、OpenRouter API Key,或 OpenAI 兼容的 embeddings 端点与模型- 不需要额外 SDK 或独立向量数据库
安装与启用¶
从已发布的 Git 仓库安装(命令来自 README 原文):
dsh plugin --profile web add github:Kosello/dsh-skill-rag
若使用本地 checkout,需先 npm ci、npm run verify,再:
dsh plugin --profile web add "$PWD"
包声明了一个 bundle 行(skill-rag)和可选的 browser client;客户端会在 Settings → Skill discovery 注册配置入口,无需改 DSH shell。
重启 harness 前,可先确认 composition:
dsh --profile web --dump-config | grep -A4 'id: skill-rag'
然后按你平时的服务方式重启 harness。若 agent 正在该服务内运行,宜用外部延迟重启,避免打断当前 turn。
配置要点¶
配置写在 profile 的 cordis.patch.yml 中 skill-rag 条目;与设置面板编辑的是同一份契约。密钥只写环境变量名,不写明文;设置面板只报告变量是否存在,不展示、不写入 secret 值。
零配置默认(catalog)¶
- id: skill-rag
config:
mode: catalog
本地关键词(keyword)¶
- id: skill-rag
config:
mode: keyword
coreNames: [] # user/project DSH skills are always retained
autoIndex: false
启用 skill_search 与精选目录;不构造 embedding 提供商,也不发起 embedding 请求。
混合检索(hybrid)示例¶
本机 Jetson manager:
- id: skill-rag
config:
mode: hybrid
embedding:
provider: jetson
model: Qwen3-Embedding-0.6B-TensorRT
baseURL: http://127.0.0.1:8110
dimensions: 1024
timeoutMs: 15000
index:
content: excerpts
privacy:
allowRemoteEmbeddings: false
autoIndex: true
Google Gemini、OpenRouter、OpenAI 兼容端点等完整 YAML 见仓库 README;远程 embedding 需 privacy.allowRemoteEmbeddings: true,且没有自动本地到云端的 fallback——提供商失败时由 onEmbeddingError 决定退回带标签的关键词结果(默认)或严格报错。
索引 generation 与 provider、model、dimensions、内容策略等绑定;换模型或策略会新建 generation,旧的可继续服务直到替换完成。reindex 必须带 --confirm 才会真正重建;模型侧工具不能改 provider、凭证或触发 rebuild。
典型用法¶
模型可通过 skill_search 检索,例如:
{"query":"render a short video from a photograph on my desktop", "limit":5}
返回的是 Skill 名称与路由摘要,不是完整 instructions;模型仍用未改动的 skill 工具加载原 Skill。搜索与索引不会伪造成功的 skill 结果,read-before-write 与 self-evolve reviewer 仍基于真实加载。
人类可用 slash 命令维护索引与诊断:
/skill-search status
/skill-search models
/skill-search test
/skill-search preview
/skill-search reindex # prints the data-consent disclosure
/skill-search reindex --confirm # starts the rebuild
/skill-search cancel
数据出站说明¶
catalog:无额外出站。keyword:无;仅本地 SQLite。hybrid本机(Jetson / loopback):Skill 卡片与查询留在本机。hybrid远程:仅发送配置允许的卡片内容与搜索查询;metadata含名称、描述、触发指引等,excerpts还含标题与短引言;路径与全文不在卡片内。
适用场景与注意¶
适合希望在 DSH 里扩大 Skill 库、又不想每次对话塞满目录的开发者;需要语义匹配时可 opt-in hybrid,只想离线关键词时可只用 keyword;想完全保持 stock 行为则保持 catalog 即可。
DSH 社区插件目录(如 SkillHub)是独立生态站点,与 DeepSeek / 幻方无官方从属关系。插件以当前 dsh 进程权限运行;安装前请自行审阅源码与 MIT 许可证,并按 README 配置环境变量与隐私项。
结尾¶
dsh-skill-rag 把 Skill 发现做成可配置、可关闭的插件层:默认不打扰现有 harness,需要时再打开本地或混合检索,并仍通过原生 skill 工具完成加载。
- 目录页:https://www.skillhub.cn/plugins/Kosello/dsh-skill-rag
- GitHub:https://github.com/Kosello/dsh-skill-rag