dsh-loadout:按對話裁剪工具,只把當前套裝交給模型

前言

DeepSeek Harness(DSH)裏,插件裝得越多,每個對話能看到的工具清單就越長。工具定義會佔進請求前綴,模型在一長串名字裏也容易選錯。常見做法是少裝插件、或靠習慣手動剋制——但全局可見這一點本身沒有變。

裝備欄(dsh-loadout)把工具收成「套裝」:一個對話選一套,運行時只保留這套裏的內置工具與插件工具;其餘用遮罩藏起來,不刪插件本身。下面介紹它做什麼、怎麼裝、怎麼用,以及切換套裝和 token 估算時要注意的事。

這是什麼

dsh-loadout(裝備欄)是維護者 JungleYXu 發佈的 DSH 插件,npm 包名與插件 id 均爲 dsh-loadout,許可證 MIT。社區目錄頁:skillhub.cn/plugins/JungleYXu/dsh-loadout;源碼與文檔:github.com/JungleYXu/dsh-loadout。

同名說明:npm 上的 dsh-loadout 是本插件唯一發行包;GitHub 上另有 YongjianWan/dsh-loadout、JYDW-1/dsh-loadout 等同名獨立項目,作者與功能不同。用 dsh plugin add dsh-loadout 裝到的是本插件;從 GitHub 安裝時請認準 JungleYXu/dsh-loadout。

插件只控制「當前對話模型能看到哪些工具」。已啓用的插件仍在後臺運行;界面類插件(側邊欄、主題等)不受套裝裁剪影響。

核心功能

三檔底座

底座 含義
全部 不裁剪,默認行爲
僅內置 只保留 DSH 自帶工具
我的套裝 使用你保存的或預置的命名套裝

套裝管理

  • 我的套裝:在「新建套裝」裏勾選內置工具與插件,存成帶名字的一套;卡片上可設爲默認、複製切換命令、編輯(覆蓋保存或另存爲新套)、加 20 字備註、刪除。
  • 預置五套(只讀):僅聊天、編程用、查找資料、項目梳理、寫作;套用即可,改動會另存爲你的套裝。預置只列內置工具,插件工具需靠「加掛」或另存時勾選。
  • 加掛:在當前底座或套裝之上臨時加開插件,不必爲一次性組合新建套裝。
  • 每對話獨立:每個對話的選擇寫入 ~/.dsh/loadout.json 的 assignments,重啓後照舊;改「新對話默認套裝」隻影響之後新建的對話。

預置套裝與 /kit 子命令

套裝 子命令 id 內置工具(摘要)
僅聊天 chat ask_user_question、weather、web_search、web_fetch、read + 協作五件套
編程用 coding pwsh、read、write、edit、glob、grep、todo_write + 協作五件套
查找資料 research 搜索/研究類工具 + read、write、glob、grep + 協作五件套
項目梳理 plan 問答、搜索、讀寫改查、todo_write + 協作五件套
寫作 writing read、write、edit、glob、grep + 協作五件套

「協作五件套」指 send_message、list_agents、interrupt_agent、subagent、subagent_fork;每套預置都帶上,否則子代理切到該套後無法回話。

對話內可用 /kit <名字> 切換;模型側還保留 kit_list、kit_apply、kit_assign、kit_rename、kit_create 等管理工具,任意套裝下都不會被裁掉,避免鎖死。

token 賬本(估算)

菜單狀態行會顯示類似「省 ~1.9k tokens」;設置頁給出「保留 N 個工具 · 約 X tokens · 省多少」。算法把每個工具的定義序列化後按約 3.5 字符/token 估算,只算工具清單段,界面標明爲估算,不宜當精確賬單。

刷新

對話頁裝備欄菜單右上角 ⟳ 可重拉工具目錄並重新套用當前選擇(對已加載的宿主有效,不必爲此重啓)。

安裝與啓用

三種來源安裝的是同一個包;資料中的命令如下。

# 1) npm(已發佈,最短)
dsh plugin --profile desktop add dsh-loadout

# 2) GitHub(npm 不可達時用同一個包)
dsh plugin --profile desktop add github:JungleYXu/dsh-loadout

# 3) 本地目錄(開發用,鏈接安裝,不拷貝)
dsh plugin --profile desktop add link:<本目錄絕對路徑>

在 Harness 內也可讓插件管理器安裝本地目錄(等價於第 3 種):

plugin_manager action=install_bundle target=<本目錄絕對路徑>

裝完後需重啓應用:宿主插件沒有熱重載,僅刷新界面不夠。文檔建議優先鏈接安裝而非拷貝,避免 profile 內副本與源碼漂移;開發自檢可運行 node scripts/preflight.mjs。

插件以當前 DSH 進程的權限運行;安裝前請自行查看倉庫源碼與 MIT 許可證,確認符合你的環境策略。要求 Node >=20(見 package.json engines)。

典型用法

  1. 標題欄:點「裝備欄」切換底座、加掛插件、新建套裝。
  2. 設置 → 裝備欄:管理套裝、改備註、設「新對話默認套裝」(不切換當前已開對話)。
  3. 新對話:在發出第一條消息前,輸入區旁有「選擇對話套裝」膠囊;此處切換不產生緩存前綴代價,是文檔推薦的最省切換點。
  4. 命令行式切換:在對話裏發送 /kit coding 等(名字對應套裝或預置 id)。

持久化示例(節選):

{ "assignments": { "session-abc": "coding", "session-def": null } }

null 表示「全部」。顯式切換(標題欄、/kit、kit_apply、kit_assign)纔會改綁定;子代理不單獨記綁定,跟隨父對話可見工具集。

卸載:

plugin_manager action=remove_bundle target=dsh-loadout

適用場景與注意

適合誰:經常同時裝多個 DSH 工具/插件、希望按任務(聊天、寫代碼、查資料、寫作)收窄工具面,並願意在新建對話時選好套裝的 Harness 用戶。

切換代價:請求前綴順序爲系統提示 → 工具定義 → 歷史 → 本輪輸入;工具定義一變,其後歷史在下一條請求可能按未命中價重算。文檔建議長對話儘量開場選好套裝;中途切換在上下文很大時成本明顯,空閒、剛壓縮或剛重啓後切換則影響較小。菜單底部會用宿主 token meter 投影給出「下一條未命中價」提示(按 ¥2 / ¥0.5 每百萬 token 估算,僅提示)。

邊界:

  • 看不到「已下載但未啓動」插件的工具;工具需在插件 apply() 之後才存在。
  • 遮罩是減法:內置工具用 deny 規則,插件工具用 tools.restrict({ deny })。
  • 新裝或刪掉 loadout.json 後默認底座爲「全部」;覆蓋安裝會保留已選的默認套裝。

排查要點:界面無按鈕時先重啓;GET /dsh-loadout/state 返回 JSON 表示宿主在跑。若懷疑裝錯同名包,檢查 node_modules/dsh-loadout/package.json 的 repository.url 是否爲 github.com/JungleYXu/dsh-loadout。

結尾

裝備欄解決的是 DSH「工具全局可見、清單隨插件變長」的問題:用套裝做 per-conversation 裁剪,並配合設置頁、標題欄與新對話膠囊分工管理默認與當前對話。社區目錄與 GitHub 倉庫由社區維護,與 DeepSeek / 幻方無官方從屬關係。

  • 目錄頁:https://www.skillhub.cn/plugins/JungleYXu/dsh-loadout
  • GitHub:https://github.com/JungleYXu/dsh-loadout
羽毛球分组比赛记分
小程序二维码

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

小夜