前言¶
DeepSeek Harness(DSH)采用插件化工具模型,已安装的工具越多,每次请求附带的 schema 与说明往往越大。若全部默认注入,模型开头就要消化一长串工具定义,既占 token,也容易分散注意力。社区工作流类插件 dsh-tool-activator 的做法是:默认只加载一小套基础工具,其余工具以目录形式可见,由模型在需要时通过 activate_tools 再启用。下面介绍其定位、行为、配置与典型用法。
这是什么¶
dsh-tool-activator 是面向 DSH 的插件(npm 包名 dsh-tool-activator,当前资料中版本为 0.5.0,MIT 许可证)。仓库与目录页见 Tranquillitatis-Lab/dsh-tool-activator 与 SkillHub 目录。分类为工作流;它不改变工具在宿主内的实际执行路由,主要管「哪些工具的完整 schema 默认进上下文、哪些仅以简述目录呈现并按需激活」。
系统要求(README 原文):DSH ≥ 0.2.0-rc.2;Node.js ≥ 22.19.0。
核心行为¶
默认可见与按需隐藏¶
默认作为「基础工具」加载的标识包括:read、glob、grep、write、edit、skill、ask_user_question、todo_write。以上均可通过配置取消默认加载;只有 activate_tools 始终加载且不可关闭。
模型在每次对话中通常能看到:
- 配置为默认加载的工具(完整 schema);
- 本会话已激活的工具;
- 工具
activate_tools本身; - 其余工具的
<available_tools>简述目录(标识、名称、一句说明),由插件注入,不占用宿主运行时上下文快照。
其余已安装且在当前 agent 作用域可见的工具默认隐藏,由模型按标识激活。目录中除常见内置工具外,任意已安装插件的工具也可作为标识请求;开启 autoGroupMcp 时,mcp__server__tool 可按 MCP 服务聚合为 mcp.server 等形式。实际集合以运行时的 <available_tools> 为准。
activate_tools 怎么用¶
模型按需请求加载工具或组,参数形如:
{
"identifiers": ["web_search", "web_fetch"],
"reason": "需要检索并核对用户要求的公开资料"
}
已激活条目在上下文中以精简形式呈现(保留标识符与可调用成员名),避免重复冗长描述。
与请求头、defer_loading¶
对支持对话中途变更工具声明的路由(README 以 deepseek-flash 等、toolUpdate 能力为例),插件可将全部工具一次性声明:基础工具正常声明,其余标 defer_loading(不占上下文 token)。激活时不改写声明列表,只在会话尾部追加 tool_addition,便于前缀缓存仍有效。
不支持该能力的路由则退回「按激活状态过滤声明列表」:功能不变,但每次新激活会重算请求头。
group_tools(仅在用户要求整理分组时)¶
用户明确要求整理工具分组时,模型可调用 group_tools:
action: "list":查看当前作用域分组与成员、未分组工具、基础与锁定工具。action: "apply":通过ops增删改分组;basic分组仅可update成员,不可add/remove整个分组。
结果写入配置中的 groups 字段,与插件配置页「工具分组」为同一份数据;一次调用要么全部成功要么全部拒绝。
配置¶
进入 DSH 官方插件管理页,打开 dsh-tool-activator 卡片,表单直接显示在该插件页面上(README 未给出单独的 CLI 安装命令,以管理页与宿主插件机制为准)。
| 分区 | 含义 |
|---|---|
| 默认激活 | 每次请求带完整 schema 的工具;基础工具排在最前;仅 activate_tools 固定开启 |
| 按需激活 | 其余工具,由 activate_tools 启用 |
开关将把工具写入或移出 basicTools;清单由宿主 Remote toolActivator/catalog 提供,覆盖当前 live agent 作用域。
常规:
requireApproval:非完全权限时激活前需确认;缺审批服务则拒绝;完全权限danger-full-access时无需确认。autoGroupMcp:按mcp__server__tool前缀聚合同一 MCP 服务。
工具分组:结构化编辑标识符、名称、说明与成员勾选;留空则各工具独立成条。
执行、持久化与生命周期¶
- 工具仍通过 DSH 原有 dispatcher 执行,不改变底层沙箱或运行路由。
- 已完成的激活状态随标准会话日志与 seed 恢复。
- Cordis 负责注册、监听及 HMR 清理;卸载时清理样式与实例。
README 记载:2026-10-11 完全权限相关修复后,304 个用例等均通过;真实 GUI E2E、打包发布及真实 profile 为未验证项。
适用场景与注意¶
适合:工具、MCP 插件较多,希望默认上下文保持精简、由模型在任务明确后再加载 bash、web_fetch、终端、子 agent 等能力的 DSH 用户。
注意:
- 插件在当前 DSH 进程权限下运行;安装或启用前应阅读源码与 MIT 许可证,并理解
requireApproval与权限等级的关系。 - SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系;以你实际连接的仓库与 npm 包为准核对版本。
- 不要擅自调用
group_tools重组目录,除非用户明确要求。
结尾¶
dsh-tool-activator 用「基础工具 + 目录 + activate_tools」把 DSH 的工具发现做成可扩展工作流,在支持 defer_loading 的路由上还能减少反复重写请求头的成本。进一步了解实现与配置截图见 GitHub README;在宿主中从插件管理页打开该卡片即可调整默认与按需工具。
- 目录页:https://www.skillhub.cn/plugins/Tranquillitatis-Lab/dsh-tool-activator
- GitHub:https://github.com/Tranquillitatis-Lab/dsh-tool-activator
- npm:https://www.npmjs.com/package/dsh-tool-activator