前言¶
在 DeepSeek Harness(DSH)環境中,模型(如 deepseek-v4-flash)通常不知道用戶本地安裝了哪些軟件,更不清楚如何調用它們。此插件將“本地軟件清單 + 調用配方”轉化爲一個可勾選、持久化且自動注入系統提示的部分。
插件介紹¶
dsh-software-tools 是一個側邊欄管理器,用於維護本地軟件的精選目錄(包括 WSL CLI 工具和通過互操作訪問的 Windows 應用)。用戶勾選的軟件集合會作爲緊湊的部分注入到模型系統提示中,確保每次會話都知道此機器上存在哪些軟件以及如何調用它們。
核心功能¶
- 側邊欄面板:工具按類別分組。切換操作在模型的下一個請求中立即生效,無需重啓。
- 內置 + 用戶目錄合併:提供便攜式內置目錄(aria2、proxy、playwright、uvx、interop、zstd 等)。用戶條目在
catalog.json中通過 ID 覆蓋內置項。 - 系統提示注入:勾選的工具成爲每個組裝中的緊湊部分(
systemPrompt.section,順序 200)。 - 捆綁技能:包含
add-software-tool技能。模型學習將新安裝的軟件寫入用戶目錄,無需重建或重啓。 - 循環 RPC:面板與主機通過循環 RPC 通道通信;僅讀取本地 JSON。
安裝與啓用¶
使用官方命令安裝:
dsh plugin --profile web add dsh-software-tools
如果 dsh plugin add 被 pnpm 供應鏈策略阻止,請手動安裝:將包複製到 ~/.dsh/profiles/web/node_modules/ 並追加到 ~/.dsh/profiles/web/cordis.patch.yml:
- insert:
- id: dsh-software-tools
name: dsh-software-tools
config: {}
- insert:
- id: software-tools-skill
name: '@deepseek-ai/dsh-skill-filesystem'
config:
providerName: software-tools-skill
includeDefaultRoots: false
customSkillDirs:
- !!js process.getBuiltinModule('node:path').join(process.getBuiltinModule('node:path').dirname(process.getBuiltinModule('node:module').createRequire(baseUrl).resolve('dsh-software-tools/package.json')), 'skills')
重啓 dsh web 並硬刷新(Ctrl+Shift+R)。側邊欄會出現一個 🔧 軟件工具 條目。
配置與狀態¶
全部爲可選;默認零配置。狀態目錄位於 $DSH_HOME/software-tools。
狀態文件:
* <settingsDir>/selection.json:{"ids": ["aria2", ...]} —— 當前選擇。
* <settingsDir>/catalog.json:{"tools": [entry...]} —— 用戶目錄;相同 ID 覆蓋內置項。
條目字段:
* id:唯一標識符([a-z0-9-]{1,32})。
* name:顯示名稱。
* category:下載、代理、媒體、瀏覽器、知識、運行時、模型、雜項。
* desc:描述(≤40 個字符)。
* usage:1-2 個可操作的、可直接執行的行。
典型用法¶
- 自然語言添加:告訴模型“add XXX to 軟件工具”。捆綁的
add-software-tool技能研究軟件並將其寫入catalog.json(無需重建或重啓;刷新面板後可見)。 - 手動編輯:直接編輯
catalog.json。 - 執行:模型讀取
usage字段並運行準備好的命令。
技術要求¶
dsh引擎:>=0.1.5-rc.1- Node.js:>=22
總結¶
此插件通過將本地軟件環境暴露給模型,彌合了 LLM 本地環境感知的差距。它允許模型在無需複雜提示工程的情況下訪問本地工具,將系統提示維護轉化爲一個簡單的勾選過程。