DeepSeek Harness (DSH) 默认会在每个新会话中注入完整的技能目录,即每个技能的名称加上最长 500 字符的描述。随着安装的技能数量增加,这会占用约 3K tokens 的持久上下文,而模型在实际运行中很少会触达所有这些技能。dsh-skill-lazy 通过替换为紧凑目录和按需检索机制,解决了这一上下文浪费问题。
核心功能¶
紧凑目录注入
插件在每次智能体执行前,会将官方的 skill-catalog 消息重写为一个 <system-reminder> 块。该块仅包含技能名称和一行摘要(默认长度 ≤ 40 字符)。目录条目按调用频率排序(未调用时回退到字母序),底层 source.entries 保持不变,不影响 Harness 自身的去重逻辑。
按需检索 (skill_search)
插件注册了 skill_search 工具,用于在需要时检索完整描述。检索基于关键词、描述子串匹配以及中文 2-gram 重叠评分。结果按 MECE(相互独立、完全穷尽)领域分组,并提供领域覆盖报告。
MECE 检查 (skill_mece_check)
在创建或评估技能前,可调用 skill_mece_check 工具。它会检查新技能与现有技能之间的关键词互斥性(含重叠比例)以及领域覆盖的穷尽性,并给出创建新技能或扩展现有技能的建议。
成本审计 (cost_audit)
插件内置了 cost_audit Token 监控工具(2026-08-21 新增)。它会统计每个插件工具描述和技能目录描述的字符/Token 成本,并与预算对比。默认预算为工具描述 1500 tokens、技能目录 800 tokens。单条工具描述超过 700 字符也会被标记建议精简。
使用追踪与主动提示
通过 tools/post-execute 钩子,插件将每次 skill 工具的调用记录到 usage.json(运行时数据,位于 .gitignore)。记录的调用次数用于驱动目录排序。此外,插件支持在用户消息后注入主动匹配提示(Top-3 相关技能)。
安装与配置¶
安装
在终端中执行以下命令安装插件:
dsh plugin --profile web add github:boomzikazita/dsh-skill-lazy
前置要求
DeepSeek Harness 需要安装 @deepseek-ai/dsh-tools >= 0.1.0-rc.6(非内置依赖)。
配置
插件通过 cordis.patch.yml 挂载。如需自定义参数,可在配置中添加以下字段:
| 配置项 | 默认值 | 说明 |
|---|---|---|
catalogDescriptionMaxLength |
40 |
紧凑目录中每个技能摘要的最大字符数。 |
topK |
6 |
skill_search 每个领域组返回的最大命中数(限制在 1–20 之间)。 |
sortByUsage |
true |
是否按调用频率排序目录条目。 |
matchThreshold |
6 |
主动匹配提示的最小相关性分数。 |
示例配置片段:
- insert:
- id: skill-lazy
name: 'dsh-skill-lazy'
config:
catalogDescriptionMaxLength: 40
topK: 6
典型用法¶
-
检索技能
在需要详细信息时,调用skill_search工具并传入关键词。工具会返回完整描述、使用次数以及按领域分组的搜索结果。 -
检查领域覆盖
在创建新技能前,先运行skill_mece_check,确保新技能不会与现有技能重叠,且覆盖了必要的领域。 -
审计 Token 成本
定期查看cost_audit的输出,识别哪些工具或技能描述超过了 1500(工具)或 800(技能)的 Token 预算,并进行精简。
注意事项¶
- 插件依赖 DeepSeek Harness 的运行时环境,确保已安装所需版本的
@deepseek-ai/dsh-tools。 usage.json是运行时生成的数据,不会被 Git 跟踪。- 如果工具描述过长,会触发审计警告,建议将详细文档移至技能自身的文档目录,而非注入描述中。
dsh-skill-lazy 通过牺牲一点初始检索的延迟,换取了显著的上下文 Token 节省,适合拥有大量技能库的场景。更多细节可参考 GitHub 仓库 或 技能目录页。