前言¶
DeepSeek Harness (DSH) 采用插件化架构。随着 Skill 库的扩大,每次请求都携带完整的目录会消耗大量上下文,并使 Skill 选择变得不可预测。SkillFlux 作为一个运行时层,位于 Agent 与其 Skill 池之间。它将完整的 Skill 池保留在模型不可见的目录之外,每次任务只选择少量相关 Skills 进行挂载,并在回合结束时释放。
插件简介¶
yiyuzh/dsh-skillflux 是 DeepSeek Harness 的动态 Skill 运行时管理器。
* 维护者: YiyuZh
* 许可证: MIT
* 定位: 自动发现、路由、挂载和卸载 Agent Skills。
安装与启用¶
使用此插件需要满足以下环境要求:
* Node.js 22.20.0 或更高版本
* DeepSeek Harness profile 版本 0.1.1-rc.2
- 安装插件到指定的 profile(例如
web):
dsh plugin --profile web add github:YiyuZh/dsh-skillflux
替换 `web` 为其他 profile 名称(如 `headless`)。
- 重启该 Harness profile。
- 在 DSH 会话中验证运行状态:
/skillflux status
若需可复现的部署,可锁定特定的 GitHub commit SHA:
dsh plugin --profile web add github:YiyuZh/dsh-skillflux#<commit-sha>
工作原理¶
SkillFlux 的核心流程如下:
1. 路由与发现: 根据有序规则和确定性的词法评分(支持英文与中文)进行初步匹配。若本地匹配不足,会启用自适应在线发现,从 DSH Registry、skills.sh 以及认证的 GitHub SKILL.md 代码搜索中获取候选。
2. 重排序: 对远程匹配项根据相关性、市场采用率、仓库活动、Stars、Forks、许可证及来源进行重排序。
3. 元数据发布: 仅向模型发布选定 Skills 的元数据摘要(名称和描述),直到达到 maxActiveSkills 上限。
4. 懒加载: 注册表 Skills 会预挂载,而缓存和远程 Skills 的完整内容仅在模型调用 skill <name> 时下载、验证并加载。
5. 验证: 加载前会通过 SHA-256 manifest 验证缓存内容。
6. 卸载: 回合结束时释放目录,不删除已缓存的文件。
核心功能¶
- 路由策略: 支持基于有序规则和词法评分(中英文)的路由,可选使用 Embeddings(Ollama 或 OpenAI 兼容接口)进行语义匹配。
- 目录限制: 通过
maxActiveSkills限制模型可见的目录大小。 - 多源发现: 支持从 DSH Registry、本地缓存、skills.sh 以及 GitHub SKILL.md 索引发现 Skills。
- MCP 支持: 支持 MCP Skills 扩展 (
io.modelcontextprotocol/skills),可从任何注册的 MCP 源绑定技能。 - 质量评估: 提供基于相关性、活动度、Stars 等维度的可解释证据级评分。
- 不可变性: 将远程候选解析为不可变的 GitHub Commit SHA。
- 自适应发现: 根据本地置信度动态决定是否进行在线搜索。
- 模型工具: 暴露加载、搜索和挂载 Skills 的模型工具。
- 管理命令: 提供
/skillflux命令用于查看状态、路由解释、使用情况和缓存清理。
注意事项¶
- Bundle Patch: 该插件会对 Cordis 进行补丁,禁用官方的
tool-skill消费者,并将其挂载在唯一的skillfluxloader ID 下。同时,它保留了官方的 Skill Registry 和skill-filesystemprovider 的活动状态。 - 安全性: 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
典型用法¶
- 查看当前路由状态:
/skillflux status
- 使用已挂载的 Skill(例如):
/pdf-reader
- 使用
/skillflux命令组查看路由解释、使用指南或清理缓存。
结语¶
SkillFlux 通过运行时层管理 Skill 的生命周期,解决了大目录带来的上下文膨胀问题。它提供了细粒度的控制、可验证的质量评分以及懒加载机制,适合需要在 Agent 中管理大量 Skills 的场景。
项目地址: github.com/YiyuZh/dsh-skillflux
目录页: skillhub.cn/plugins/YiyuZh/dsh-skillflux