dsh-tool-activator:按需加載 DeepSeek Harness 工具上下文

前言

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 插件卡片頁面即可看到配置表單。

工具列表分區

表單將工具分爲兩個區域:

  1. 默認激活:每次請求都帶完整 schema 的工具。基礎工具(如 read、write 等)固定在此處,且帶有“基礎工具”標記,不允許關閉。
  2. 按需激活:其餘已安裝且可見的工具。模型可使用 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 / 幻方無官方從屬關係。

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

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

小夜