前言¶
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