返回目錄

dsh-tool-search

精選清單收錄維護狀態: 活躍

letter2025/dsh-tool-search

为 DeepSeek Harness 提供工具搜索与精简,支持按需搜索、描述和调用长尾工具。

前往 GitHub
$ dsh plugin --profile web add dsh-tool-search

15

星數

5

Fork

TypeScript

語言

MIT

授權條款

2026-08-14

建立於

2026-11-05

最近推送

MIT 開源的 DSH 外掛:用 `tool_search` / `tool_describe` / `tool_call` 三個橋接工具把龐大的工具目錄收在上下文之外,搭配分級揭露、重排比對與關鍵字備援,一條 `dsh plugin` 指令安裝,設定從 `~/.dsh/dsh-tool-search.json` 熱重載。

DSH 整合

原生執行環境

作者聲明

安全稽核

未稽核

最後核實

2026-11-13

授權條款

MIT

01它能幫你完成什麼?

  • 把龐大的工具目錄(大量 MCP 伺服器或外掛工具)擋在上下文視窗之外,直到任務真的需要時才引入

    上下文裡只留 eager 核心與三個橋接工具;被延後的 schema 依需求注入,並依 `maxWarmTools` 做 LRU 上限

    工具目錄已膨脹到每一輪都背著任務用不到的 schema 的 DSH 使用者

  • 在 DeepSeek Harness 的一輪對話裡尋找、檢視並呼叫被延後的工具

    排序後的 `{name, description, group}` 比對結果、單一工具的完整 schema,或依名稱執行真實工具——核准、守衛與工作階段事件因此仍掛在底層工具上

    把大量 MCP 伺服器或外掛工具接進 DSH、又需要它們仍可被呼叫的開發者

  • 不用手寫 JSON 就能設好工具分組與重排比對器

    `tool-slimmer-setup` 技能讀取工具目錄、提出分組建議、詢問要全域還是依專案,再帶著走完比對器設定;產生的檔案會熱重載

    寧願跟 agent 對話、也不想手改設定檔的人

02如何將外掛接入 DeepSeek Harness?

先決條件

  • 已安裝 DSH,並有一個可以加入外掛的 profile——README 用的是 `--profile web`
  • `tool_search` 與 preload 需要一個 OpenAI 相容的 `/v1/rerank` 端點加 API Key;沒有它關鍵字備援也能用

安裝步驟

  1. 01

    執行下列指令:`dsh plugin --profile web add dsh-tool-search`

    $ dsh plugin --profile web add dsh-tool-search

  2. 02

    請 agent 幫你的工具分組——內建的 `tool-slimmer-setup` 技能會提出分組方案、與你確認、詢問設定要放全域還是依專案,並引導設定重排比對器

  3. 03

    靜態調校(預算、`core`、`maxWarmTools`)改 profile 的 `cordis.patch.yml`;分組、比對器與 preload 寫在執行階段 JSON 檔案裡,下一輪生效

驗證整合成功

作者未說明

03DSH 整合程度與能力邊界

DSH 整合原生執行環境

DSH 外掛:一個 `system-prompt/assemble` 監聽器在每一輪改寫模型可見的工具清單,把長尾工具換成 `tool_search` / `tool_describe` / `tool_call` 橋接。

  • 橋接工具(`tool_search` / `tool_describe` / `tool_call`)

    一句自然語言查詢、一個被延後的工具名稱,或工具名稱加參數→排序後的比對結果、一份完整的工具 schema,或真實工具的回傳結果

    命中的工具與被 describe 過的會預熱進工作階段的可見集合核准、守衛與工作階段事件指向真實工具,絕不會是橋接工具
  • 分級揭露

    每一輪的工具目錄與 token 預算→0–3 級清單——無橋接、分組清單、僅名稱,或每組一行並附數量

  • 對話式設定技能(`tool-slimmer-setup`)

    你的工具目錄→寫入外掛 JSON 的工具分組、設定作用域與重排比對器設定

    使用者層級寫入 `~/.dsh/dsh-tool-search.json`,專案層級寫入 `<workspace>/.dsh/dsh-tool-search.json`
  • 重排比對器 + 關鍵字備援

    一筆搜尋查詢,以及帶 model 與 key 的 OpenAI 相容 `/v1/rerank` 端點→依語意排序的比對;未設定比對器或重排呼叫失敗時改用關鍵字排序(名稱完全符合 > 名稱詞元 > 描述詞元)

    查詢與工具中繼資料會被送到設定好的重排端點
  • 動態注入(預熱集合)

    某一輪中被用到的被延後工具→它的完整 schema 會留在模型上下文中供後續輪次使用,並依 `maxWarmTools` 做 LRU 上限

    模型可見的工具清單會成長,直到達到預熱上限

04適合誰?何時不該用?

適合

  • 工具目錄已膨脹到每一輪都背著任務用不到的 schema 的 DSH 使用者
  • 把大量 MCP 伺服器或外掛工具接進 DSH、又需要它們仍可被呼叫的開發者
  • 寧願跟 agent 對話、也不想手改設定檔的人

不適合

  • `tool_search` 與 preload 需要一個 OpenAI 相容的 `/v1/rerank` 端點,以及存放在外掛 JSON 裡的 API Key(README 範例是 DashScope 的 rerank 位址配 `sk-...` 形式的 key)。設定好之前,`tool_search` 只回傳設定指引。
  • 本外掛所掛接的切入點會隨 dsh 變動:從 0.2.1-rc.3 起 PTC 產生器位於 `@deepseek-ai/dsh-tool-executor-ptc`,兩個套件都沒有的宿主會以「關閉段落重寫」的方式載入,這類宿主上表格精簡只對更早的版本生效。

05相容性、維護與安全提醒

  • `tool_search` 與 preload 需要一個 OpenAI 相容的 `/v1/rerank` 端點,以及存放在外掛 JSON 裡的 API Key(README 範例是 DashScope 的 rerank 位址配 `sk-...` 形式的 key)。設定好之前,`tool_search` 只回傳設定指引。
  • 本外掛所掛接的切入點會隨 dsh 變動:從 0.2.1-rc.3 起 PTC 產生器位於 `@deepseek-ai/dsh-tool-executor-ptc`,兩個套件都沒有的宿主會以「關閉段落重寫」的方式載入,這類宿主上表格精簡只對更早的版本生效。
  • 靜態調校(`thresholdPct`、`listingMaxTokens`、`configScope`、`core`、`maxWarmTools`)寫在 profile 的 `cordis.patch.yml`,改完要重新啟動;分組 / 比對器 / preload 寫在執行階段 JSON 檔案裡,該檔案依 mtime 監看,下一輪熱重載。
  • 重排是主排序;沒有比對器或重排呼叫失敗時,搜尋退化為關鍵字比對(名稱完全符合 > 名稱詞元 > 描述詞元),而且從不報錯——結果比重排弱,但這一輪照樣能跑完。
2026-08-142026-11-05作者未說明

MIT · 僅有 README 證據(經 npm 發佈,facts 包中無 GitHub release),未做安全稽核

06常見問題

怎麼把 dsh-tool-search 裝進 DeepSeek Harness?

執行 `dsh plugin --profile web add dsh-tool-search`。靜態調校(`thresholdPct`、`listingMaxTokens`、`configScope`、`core`、`maxWarmTools`)寫在 profile 的 `cordis.patch.yml`,改完要重新啟動;工具分組、比對器與 preload 寫在 `~/.dsh/dsh-tool-search.json`(或 `<workspace>/.dsh/dsh-tool-search.json`),下一輪自動生效。

它會把我的工具從 DSH 移除嗎?

不會。精簡只重寫 `system-prompt/assemble` 裡的模型可見介面,註冊表維持完整,被延後的工具照樣可以執行。模型呼叫 `tool_call` 時,外掛透過 `ctx.tools.execute` 依真實工具名稱執行,核准、守衛與工作階段事件都指向底層工具,而不是橋接工具。

一定要設定 API Key 嗎?

要用 `tool_search` 與 preload 就得設定:比對器是 OpenAI 相容的 `/v1/rerank` 端點,`apiKey` 與 `model` 寫在外掛 JSON 裡(README 範例用的是 DashScope 的 rerank 位址與 `qwen3-reranker`)。沒設定之前 `tool_search` 只回傳設定指引;沒有比對器或重排失敗時,搜尋退化為關鍵字比對且不會報錯。

外掛把設定寫在哪裡?

工具分組、比對器與 preload 寫在執行階段 JSON:使用者層級是 `~/.dsh/dsh-tool-search.json`,專案層級是 `<workspace>/.dsh/dsh-tool-search.json`,`configScope: auto` 時專案檔案優先。該檔案依 mtime 監看並熱重載,變更下一輪就生效,不必重新啟動 DSH。

DSH 升級後工具清單會怎樣?

外掛會依宿主調整。dsh 0.2.1-rc.3 起 PTC 產生器搬到 `@deepseek-ai/dsh-tool-executor-ptc`,改用執行階段動態 import 解析;兩個套件都沒有的宿主會以「關閉段落重寫」的方式載入外掛而不是報錯,這類宿主仍會拿到宣告重寫與注入的目錄,表格精簡只對更早的版本生效。

08資料與來源

  • 作者聲明github.combb79135c5fcc…

    This plugin collapses the long tail behind three bridge tools and lets the model discover and load them on demand throug…

  • 作者聲明github.combb79135c5fcc…

    On every turn, the plugin's `system-prompt/assemble` listener computes the tier and replaces the model-visible tools:

  • 作者聲明github.combb79135c5fcc…

    - **Bridge tools** — `tool_search`, `tool_describe`, `tool_call` replace the deferred schemas.

此頁面根據專案公開文件、儲存庫中繼資料與 DSH Plugins 的結構化解析所產生;最後核實於 2026-11-13。發現錯誤?提交更正。

🏆

最佳 DeepSeek Harness 外掛

從全目錄挑出的 12 個值得優先安裝的外掛,涵蓋各個分類。

DSH Plugins 是獨立的 DeepSeek Harness 外掛目錄,與 DeepSeek 官方無關,也不代表官方背書。第三方外掛未經安全稽核,安裝前請審查原始碼。

每週取得最新的 DeepSeek Harness 外掛,絕不濫發。