dsh-tools-toggle:在 Web Settings 一键开关 DSH 模型工具

前言

DeepSeek Harness(DSH)会给智能体挂上一套固定的工具面:预设、插件带来的 bash、web_search、web_fetch 等都会进入每次请求。工具越多,提示里占的 token 越多,模型也越容易去碰未必需要的工具。若只想做一段离线会话、收窄任务范围,或做一次「关掉某个工具是否更好」的对比,过去往往要手改 profile patch 再重启。

下面介绍 pinion05 维护的客户端插件 dsh-tools-toggle(npm 包名 @npmc_5/dsh-tools-toggle,版本 0.1.0,MIT 许可证)。它在 DSH Web 的 Settings → Tools 里为继承来的工具提供开关;关掉后工具会从模型视角整体消失——不仅是不能执行,连 schema、描述和 lookup 都不会再出现,从而省掉相关 token。

这是什么

dsh-tools-toggle 是挂载在 DSH Web 设置页的插件,分类属客户端(platform: web)。维护者为 pinion05。它解决的是:在不手改配置文件的前提下,用 UI 维护一份「禁用工具」列表,并在新建智能体时通过 dsh-tools 的 restrict 机制生效。

核心功能

Settings 里的工具目录

插件在原生 Settings → Tools 增加一节,列出当前 profile 下继承来的全部工具(含 preset-plane 工具)。每一行显示名称、一行描述,并提供搜索框和「仅显示已禁用」筛选。界面支持韩语与英语 locale。

配置持久化

切换开关会向插件 host 路由 POST,由 settings 服务把 deny 列表写入插件 Loader 配置项,并落到 profile patch 的用户层,升级后仍保留。写入串行化,避免快速连点叠在过期配置上;读取会等待未完成写入(read-your-writes)。

通过 restrict 隐藏工具

Host 侧在每个智能体创建时调用一次 agent.ctx.tools.restrict({ deny })。被禁用的工具会同时失去 schema、lookup 与执行能力;模型侧不再「知道」该工具存在。若模型仍猜测工具名调用,会收到干净的 UNKNOWN_TOOL 拒绝。

这一时机与 prefix cache 有关:restriction 会改写面向模型的工具数组(属于请求前缀的一部分),若在进行中的会话里改 deny 列表会破坏 provider 的 prefix 缓存,因此只在创建智能体时应用,运行中的会话 deliberately 不改动。

  • 新会话(含新 subagent)采用当前开关状态。
  • 已有会话保持原有工具面与缓存,直到自然结束。
  • Host 重启后以新 agent 恢复会话时,会应用重启前做过的开关变更(伴随一次不可避免的 re-prefill)。

设计上不会误伤的部分

  • 与作用域相关的内部机制默认不可切换(例如 subagent 委托的结构化输出管线、保留的 PTC run_code 传输),多智能体流程可继续跑。
  • 开关状态在 UI 配置里,即便全部关掉,Settings 页仍可用,可随时恢复。
  • 禁用 bash、read、write、edit 时会弹出一次性确认对话框。

安装与启用

插件为纯 ESM,无构建步骤;peer 依赖(cordis、dsh-tools、dsh-host-webserver 等)从 DSH 安装树解析。engines.dsh 要求 >=0.2.0-rc.1 <0.3.0-0。

官方 README 给出的安装步骤如下:

git clone https://github.com/pinion05/dsh-tools-toggle.git
dsh plugin --profile web add ./dsh-tools-toggle

执行后刷新 DSH Web,打开 Settings → Tools。

典型用法

  1. 完成上述安装并刷新 Web 端。
  2. 若目录为空,先按提示开启一次会话——工具名称来自 live agent 的快照,首个会话前页面会提示需要 session。
  3. 在 Settings → Tools 搜索或筛选工具,将不需要的项关闭;对核心读写/终端类工具按提示确认。
  4. 新建会话(或新建 subagent)后,被禁工具不再出现在模型请求中;要恢复则重新打开开关并再开新会话。

说明:当前为 profile 级 单一 deny 列表,不支持按会话覆盖;重新启用属于策略放宽,仅通过 UI 操作,不提供 agent 侧工具。

适用场景与注意

适合谁: 需要在不删插件、不改手写 patch 的前提下临时缩小工具面;做离线或减噪会话;对比某工具是否值得保留的开发者。

局限(README 明示):

  • 仅对新会话生效,进行中的对话不会因切换而变——这是 prefix-cache 保护,不是缺陷。
  • 工具目录依赖至少一次会话才能完整展示。
  • 无 per-session 覆盖(后续可能扩展)。

安全与权限: 插件以当前 DSH 进程权限运行,配置写入本机 profile。安装前请阅读 GitHub 仓库 源码与 MIT 许可证,自行确认是否符合环境要求。社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 生态奉行「一切皆插件」,本插件为社区贡献,非官方应用商店条目。

结尾

dsh-tools-toggle 把「关掉某些继承工具」收成 Web 设置里的一键操作,并通过创建时 restrict 让禁用结果同时作用于 schema、查找与执行。需要试用时,可从社区目录页或 GitHub 获取仓库,按官方命令装入 web profile 后,在 Settings → Tools 管理 deny 列表,并以新会话验证效果。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜