前言¶
DeepSeek Harness (DSH) 的插件化架构允许接入丰富的工具能力。但在实际使用中,向模型一次性展示所有可用工具会显著增加初始上下文长度,可能导致注意力分散或触发不必要的权限请求。dsh-tool-activator 插件通过精简初始工具列表,将工具加载策略从“全量展示”转变为“基础工具默认加载,其余工具按需激活”。
核心功能¶
该插件主要解决初始工具上下文过重的问题,具体能力包括:
- 精简初始上下文:默认仅向模型展示基础工具,其余工具隐藏。
- 按需加载机制:模型通过调用
activate_tools接口,在需要时动态加载特定工具或工具组。 - 基础工具固化:提供一组固定的基础工具,不可关闭。
- 配置项支持:支持配置
requireApproval(审批策略)和autoGroupMcp(MCP 工具聚合)。 - 工具分组管理:支持对工具进行结构化分组配置。
- 状态持久化:激活状态随会话日志和 seed 恢复。
工作机制¶
DSH 运行时默认向模型展示以下内容:基础工具、已激活工具、activate_tools 接口定义,以及未激活工具的 <available_tools> 目录(仅包含标识符、名称和简述)。
默认基础工具¶
以下八个工具默认始终可用,且不可关闭:
read, glob, grep, write, edit, skill, ask_user_question, todo_write
按需激活示例¶
模型可请求激活特定的工具或工具组。请求格式为 JSON,包含标识符列表和激活理由:
{
"identifiers": ["web_search", "web_fetch"],
"reason": "需要检索并核对用户要求的公开资料"
}
<available_tools> 目录的示例内容如下:
<available_tools description="These tools are installed but not yet enabled. Use activate_tools to enable them when needed.">
<tool identifier="web_search" name="web_search">Search the public web for current information.</tool>
<tool identifier="mcp.mail" name="mail">send: Send a message through the mailbox.</tool>
</available_tools>
配置¶
配置通过官方插件管理页进行。进入 dsh-tool-activator 插件卡片页面即可看到配置表单。
工具列表分区¶
表单将工具分为两个区域:
- 默认激活:每次请求都带完整 schema 的工具。基础工具(如
read、write等)固定在此处,且带有“基础工具”标记,不允许关闭。 - 按需激活:其余已安装且可见的工具。模型可使用
activate_tools获取。
在列表中切换某项的开关,即可将其在“默认激活”和“按需激活”之间移动。
常规配置¶
- requireApproval:控制非完全权限下的激活行为。当模型尝试激活工具时,如果未通过审批策略,该插件会直接拒绝请求(除非当前进程拥有完全权限
danger-full-access)。 - autoGroupMcp:开启后,MCP 工具会按 server 前缀(如
mcp__server__tool)聚合显示为mcp.server。
工具分组¶
在“工具分组”区,可以使用结构化编辑器管理工具。每个分组包含标识符、名称、说明、工具勾选(从真实工具列表中选择)和说明节绑定。留空则每个工具独立成为条目。
系统要求¶
- DeepSeek Harness (DSH) 版本:\(\ge\)
0.2.0-rc.2 - Node.js 版本:\(\ge\)
22.19.0
测试与状态¶
根据 2026-10-11 的测试记录,插件在完全权限修复后通过了 12 个文件和 304 个用例的测试,同时也通过了 lint、类型检查与构建流程。
生态背景¶
DSH 理念是“一切皆插件”。本插件由社区开发者 hairyf 维护,遵循 MIT 许可证。第三方声明详见 THIRD_PARTY_NOTICES.md。社区目录与 DeepSeek / 幻方无官方从属关系。