@autumnpizazz/dsh-tool-manager
v1.2.12
Published
Manage DSH agent tools per preset and open on-demand tool groups for the rest of a session
Maintainers
Readme
DSH 工具管理插件
这是一份个人 fork。 上游项目:pan17/dsh-tool-manager(MIT)。 本 fork 由 AutumnPizazz 维护,以
@autumnpizazz/dsh-tool-manager发布, 用于在两台机器之间同步自己使用的版本;功能与上游一致,差异见 CHANGELOG。
一个简单好用的 DeepSeek Harness(DSH)工具管理插件。
适配 DSH >=0.2.0-rc.2。 旧版本请继续使用 1.2.8。
它可以帮你:
- 按 Agent Preset 开启或关闭工具;
- 把相关工具整理成分组;
- 一键批量启用或弃用整组工具;
- 减少模型平时看到的工具数量,让工具列表更清晰、更省上下文。

主要功能
开启或关闭工具
在 WebUI 中可以直接控制每个工具是否可用。
弃用后,该工具会同时从模型的工具 schema、lookup 和调用中消失。
不同 Agent Preset 可以使用不同的工具配置。
插件会记住你上次选择的 Agent Preset(存在浏览器 localStorage 的 dsh-tool-manager.active-preset),下次打开设置页时直接回到该 Preset。
工具分组
你可以把用途相近的工具放进同一个分组,例如:
- GitHub 工具
- 文件处理
- 网页搜索
- 图片生成
- 数据分析
分组支持手动选择工具,也可以使用当前默认模型自动生成分组、名称和描述。调用模型前可以预览、编辑或重置提示词。
每个分组行左侧有整组开关:打开=组内工具一起启用,关闭=组内工具一起弃用,不需要再逐个勾选成员。分组只有「整组启用」和「整组弃用」两种状态,不会出现一半启用一半弃用的成员。
直接拖动分组行或成员行整行即可调整分组顺序和组内工具顺序(鼠标移上去会变成抓手,没有单独的把手图标);组内顺序写进该组的选择列表,保存后按此顺序展示。
分组只是批量开关
分组是给人用的一键批量启停,不参与模型侧的“先看目录、再按需打开”:
- 整组启用 / 整组弃用只是对组内成员逐个写入
disabled,效果与逐个操作完全一致; - 插件不注册任何模型工具(模型看不到
tool_list之类的目录工具),也不会向会话写入工具目录消息; - 只有「弃用」才会让工具从模型 schema、lookup 和调用同时消失;
- 一个工具只能属于一个分组;已分组或已弃用的工具不能再加入其他组;
- 每个分组必须匹配到至少一个可用工具,匹配不到的分组不能保存;
- 分组与组内顺序都会被保存,直接拖动整行即可调整,调整后仍需点「保存」;
- 工具仍以原来的名称和参数运行。
安装
要求 DeepSeek Harness 0.2.0-rc.2 或更新。本插件按该版本的 Agent Preset 与工具 registry 行为适配并测试;更早的 DSH 请使用 1.2.8。
方式一:设置页内直接安装(推荐)
打开 设置 → 插件 → 添加插件,在输入框填包名:
dsh-tool-manager点「安装」即可。插件声明了 dsh.bundle,安装时会被自动注册成 bundle 层。
国内网络下载慢时,把「安装源」切到 中国大陆镜像源。
安装完成后若提示「已安装,下次启动后加载」,重启 DSH 即可;若出现 「立即启用」按钮,也可以直接点它免重启。
然后打开 WebUI:
http://127.0.0.1:3080进入:
设置 → 工具管理
方式二:命令行
桌面版(Electron)用户请直接用应用自带的 dsh 命令(安装桌面版时会加入 PATH),
它支持 --profile desktop:
dsh plugin --profile desktop add dsh-tool-manager
dsh plugin --profile desktop list --depth 0安装完成后,重启对应的 DSH Profile。
非桌面版(web / tui / headless 等自建 profile):
npx @deepseek-ai/dsh plugin --profile web add dsh-tool-manager然后打开 WebUI:
http://127.0.0.1:3080进入:
设置 → 工具管理
升级 / 卸载:
dsh plugin --profile desktop update dsh-tool-manager
dsh plugin --profile desktop remove dsh-tool-manager
--dump-config在desktopprofile 上会被拒绝(该 profile 由 Electron 应用 独占管理),要验证组合配置请改用dsh plugin --profile desktop list, 或直接在设置页查看。
使用方法
1. 选择 Agent Preset
在页面顶部选择需要配置的 Agent Preset。
每个 Preset 的工具策略相互独立。
2. 开启或关闭工具
在工具目录中勾选或取消勾选工具:
- 勾选:工具启用;
- 取消勾选:工具弃用。
可以通过搜索和状态筛选快速查找工具。
3. 创建分组
点击“手动分组”,然后:
- 填写分组名称;
- 填写可选的分组描述;
- 搜索并勾选要加入的工具;
- 点击“确定”。
确认分组后,页面会保留当前筛选位置,不会自动跳转到“启用”页面。
你也可以点击“自动生成名称和描述”,让当前默认模型根据所选工具生成建议。执行前可以展开并编辑本次请求的提示词,也可以一键重置为根据当前选中工具生成的默认提示词。
4. 自动分组
点击“自动分组”后,可以先搜索、勾选本次需要整理的工具;插件只会把选中的尚未分组且未弃用工具交给当前默认模型。
执行前可以预览并编辑提示词;默认提示词会随工具勾选实时更新,自定义后也可以一键重置。自动生成的结果会先显示预览。确认后只会加入页面草稿,不会立即写入配置。
5. 保存修改
工具开关或分组发生变化后,页面会显示“有未保存的修改”。
点击“保存”后配置才会生效。运行中的 Agent 会从下一个模型步骤开始使用新策略。
如果在未保存时刷新页面或离开站点,插件会进行提醒,避免误丢草稿。
工具状态说明
页面把工具分为两种状态,筛选器同样是这两个(外加“全部”):
| 状态 | 含义 | | --- | --- | | 启用 | 出现在模型的工具列表中,可以直接调用 | | 弃用 | 不显示给模型,也不能调用 |
属于某个分组的工具按整组状态显示:整组启用时成员都是“启用”,整组弃用时成员都是“弃用”。页面还会显示工具总量、分组数量、未分组工具、分组工具和已弃用工具等统计信息。
配置文件
配置默认保存在:
$DSH_HOME/tool-manager.json如果没有设置 DSH_HOME,默认位置为:
~/.dsh/tool-manager.json也可以通过环境变量指定其他路径:
DSH_TOOL_MANAGER_CONFIG示例配置:
{
"presets": {
"standard": {
"disabled": [
"codex_image_generate"
],
"groups": [
{
"name": "GitHub 工具",
"description": "处理 GitHub Issue 和仓库内容",
"patterns": [
"mcp__github__create_issue",
"mcp__github__list_issues"
]
}
]
}
}
}通常不需要手动编辑这个文件,直接在 WebUI 中操作即可。
需要注意
- 插件管理的是模型能否看到和调用工具;
- 它不会停止工具所属的 Cordis 插件或 MCP 服务进程;
- 修改配置不会改写 DSH 自带的 Agent Preset 文件;
- 分组只是批量操作入口,不改变模型可见面,也不会注册额外的模型工具;
- 自动命名和自动分组会调用当前默认模型,因此会产生一次模型请求;执行前的确认框可预览和编辑提示词,并可分别设置 5–600 秒超时,默认分别为 60 秒和 120 秒;插件不限制提示词/请求体大小、工具或分组数量、名称/描述长度、模型返回文本长度及输出 Token,实际可用范围仍由当前模型、供应商和运行环境决定。
开发
npm install
npm run build
npm test许可证
MIT
