前言¶
在 DeepSeek Harness(DSH)的插件開發中,直接將龐大的技能庫(例如 986 個生物技能)打包成扁平的會話目錄(約 230KB,60k-80k tokens)會導致性能下降。dsh-bioinf 作爲一個插件,旨在解決這個問題:它用基於搜索的路由機制替代靜態目錄,並提供遠程執行與場景化引導。
功能概覽¶
該插件提供了以下核心能力:
-
skill_search 工具
實現了 BM25 風格的評分算法(權重:名稱 ×6,類別 ×2,whenToUse ×1.5,描述 ×1),支持 CJK 雙字支持。查詢整個庫的時間小於 10 毫秒,返回匹配的技能名稱與類別。 -
skill_categories 工具
提供類別樹結構,包含 15 個頂級分類及其子分類和技能數量,支持用戶按領域瀏覽。 -
bioinf-library 技能提供者
將 986 個生物技能註冊到ctx.skills中,使原生skill工具能夠按需加載技能內容。技能名稱標準化爲 kebab-case,並過濾了 HTML 產地註釋,保證描述的完整性。 -
dsh-bioinf-anysearch
註冊一個WebSearchProvider到ctx.web,爲原生web_search工具提供支持。該組件獨立存在,因爲無頭配置文件不掛載 web 接口。 -
remote_exec 工具(可選)
支持在配置的 GPU/訓練服務器上執行 SSH 操作,包括nvidia-smi查看狀態、使用nohup啓動訓練、日誌輪詢和預測任務。僅在remote.host和remote.user配置項存在時生效。 -
Guidance 提示部分
提供路由規則(例如“絕不猜測技能名稱”)以及三種場景劇本:A. 文獻深度審閱(生成可證僞假設),B. 生物數據檢索/分析,C. 遠程訓練/預測。
安裝與啓用¶
該插件作爲 Cordis patch 插件工作,目前未提供單一的 npm/pnpm install 命令。啓用過程需要手動編輯配置文件並構建庫文件。
- 配置工具技能
確保在@deepseek-ai/dsh-tool-skill的配置中關閉 catalog:
config:
catalog: off
- 編輯 cordis.patch.yml
在cordis.patch.yml中插入bioinf和bioinf-anysearch插件:
- insert:
- id: bioinf
name: 'file:///D:/projs/bioinf_agent/deepseek-harness/packages/examples/dsh-bioinf/lib/index.js'
config:
skillsIndexFile: 'D:/projs/bioinf_agent/skills_meta/_dsh_index.json'
- id: bioinf-anysearch
name: 'file:///D:/projs/bioinf_agent/deepseek-harness/packages/examples/dsh-bioinf/lib/anysearch-plugin.js'
config:
apiKey: '...'
- 構建庫文件
在項目根目錄下運行構建命令以生成lib/目錄:
pnpm run build:lib:host
索引格式¶
skillsIndexFile 必須指向一個有效的 JSON 數組。索引文件定義了技能的元數據,示例格式如下:
[
{
"name": "scanpy",
"dir": "scanpy",
"cat1": "細胞組學與組學整合場景",
"cat2": "單細胞與轉錄組分析",
"cat3": "scanpy",
"description": "...",
"whenToUse": "...",
"requirements": ["pip install scanpy"],
"hasScripts": false,
"nScripts": 0,
"bodyChars": 1234,
"path": "D:/.../scanpy/SKILL.md"
}
]
注意事項¶
- Catalog 依賴:必須確保
tool-skill的配置中catalog: off已開啓。 - 遠程執行條件:
remote_exec工具僅在配置了remote.host和remote.user時可用。 - 文件格式:
skillsIndexFile指向的文件必須是有效的 JSON 數組,否則插件可能無法正常工作。 - 測試環境:運行單元測試需要安裝
vitest,測試文件位於packages/examples/dsh-bioinf/tests/。
結語¶
dsh-bioinf 通過搜索路由和按需加載機制,解決了生物信息學場景下大型技能庫的維護難題。結合遠程執行工具,它能夠支持從文獻分析到服務器訓練的全流程自動化。