前言¶
在 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 本地环境感知的差距。它允许模型在无需复杂提示工程的情况下访问本地工具,将系统提示维护转化为一个简单的勾选过程。