dsh-toolbox-bundle:一條命令爲 DSH 裝上 46 個離線確定性工具

前言

在 DeepSeek Harness(DSH)裏做智能體或對話開發時,模型經常要處理 JSON 校驗、日誌解析、traceback 定位這類「格式活」和「診斷活」。常見做法是每次讓模型現寫 shell 或腳本:引號、編碼、PowerShell 版本一換,結果就不穩定,也難以復現。DSH 生態按「一切皆插件」擴展能力;社區插件目錄在 SkillHub 等站點維護,與 DeepSeek / 幻方無官方從屬關係。

下面介紹維護者 ax2 發佈的合裝包 dsh-toolbox-bundle(GitHub:ax2/dsh-toolbox-bundle):一條命令寫入四個獨立插件的配置,共 46 個純本地、無網絡、無安裝期腳本的確定性工具,覆蓋 JSON/YAML/CSV/編碼/正則等日常處理,以及 JVM、Python、Windows 生產側常見診斷輸入的解析。

這是什麼

dsh-toolbox-bundle 本身不實現工具邏輯,而是在 DSH 的 bundle 層一次插入四行配置,依賴並拉取四個 npm 插件(各自獨立版本、獨立測試):

插件 工具數 側重
dsh-deterministic-tools 29 JSON 校驗(精確行列)、JSONPath、diff、CSV/YAML 互轉、文本統計、正則、編解碼與哈希等
dsh-jvm-doctor 5 thread dump(含 Java 級死鎖環)、GC 日誌、Maven/Gradle 依賴衝突、異常鏈、Spring 配置 diff
dsh-py-doctor 6 traceback、pytest、Django migrations/N+1/checks、celery 報告(均帶解析覆蓋率)
dsh-win-native 6 編碼檢測與轉換、Windows 路徑合法性、netstat 解讀、只讀磁盤巡檢與重複文件

README 標明:214 個測試通過;許可證 MIT;npm 包當前版本 0.1.2(以倉庫 package.json 爲準)。前身包名 dsh-zidev-toolbox、@ax2zicode/dsh-dev-toolbox 已在 npm 廢棄並指向本包。

核心能力與設計取向

四個插件的回執遵循統一契約:結構化 { result, meta },超預算拒絕(如 INPUT_TOO_LARGE),文本截斷按 code point 並標註 truncated,解析工具上報覆蓋率與未識別行;聲明能力邊界(例如 jwt_inspect 不驗籤、netstat_parse 不編造文本里沒有的進程名)。

46 個工具裏僅 2 個只讀訪問磁盤:dir_usage、file_duplicates(有文件數/字節預算,不跟隨符號鏈接與 junction)。其餘工具只在用戶提供文本或字節時分析,不髮網絡請求、不依賴額外二進制。

與「完全交給模型心算」相比,README 的立場是:模型往往算得對,但插件提供的是更高的一次成功率、固定實現下的可復現輸出,以及明確的邊界行爲——適合輸入遠大於輸出、或 shell 一行難以可靠完成的聚合任務。

安裝與啓用

npm 包名是 dsh-toolbox-bundle,與 GitHub 倉庫 ax2/dsh-toolbox-bundle 對應。

Web 版 profile 安裝:

dsh plugin --profile web add dsh-toolbox-bundle

裝完後重啓 DSH 應用(bundle 列表在啓動時讀取)。桌面版將 web 換成 desktop:

dsh plugin --profile desktop add dsh-toolbox-bundle

離線或固定版本可從 Release 拉取 tarball:

dsh plugin --profile web add https://github.com/ax2/dsh-toolbox-bundle/releases/latest/download/dsh-toolbox-bundle.tgz

不要與本合裝包已包含的四個插件單獨混裝,否則會重複註冊同名工具。家族總覽入口:zicode.com/software。

運行環境:package.json 要求 Node.js >= 20.10。

典型用法

安裝並重載後,在對話裏粘貼生產側常見片段,由模型選用對應工具即可。README 給出的 Python traceback 示例:

Traceback (most recent call last):
  File "svc.py", line 42, in handle
KeyError: 'user_id'

模型可調用 python_traceback,得到結構化字段(異常類型、最深棧幀、cause_hints、coverage 等),便於下一步改代碼或查數據,而不是在長文本里人工掃行號。

其他對照關係(摘自 README):

用戶意圖(示意) 工具 輸出要點
校驗帶尾逗號的 JSON,要精確行列 json_validate line/column/position + 錯誤文案
檢查 C:\temp\CON.txt 是否合法 path_inspect 保留 DOS 設備名等規則
分析 jstack 是否死鎖 java_thread_dump 死鎖環、鎖競爭、狀態直方圖
GC 日誌 p99 停頓 java_gc_log 停頓分位數、Young/Full 等
從 netstat -ano 找監聽 8080 netstat_parse 監聽項與 PID/進程名(僅基於文本)
查看目錄佔用 dir_usage 總字節、最大文件、擴展名直方圖

Token 成本與按需裁剪

工具 schema 隨每次請求發送,安裝即佔用 prompt,即使用戶不調用工具。README 實測(非估算):在乾淨 headless base(75 個工具名、約 11,931 inputTokens)上增加本 bundle 的 46 工具後,工具名約 121 個,首次請求約 19,608 inputTokens(+7,677)。單次「校驗 JSON 並給精確行列」:不裝插件約 3 步、13.0 s;裝插件約 2 步、6.1 s,但 raw token 可能反而更多——一次性小活不一定更省 token,更適合大輸入壓縮進工具、結果遠小於輸入、或模型易算錯的場景。

若只需常用子集,可在 profile 自己的 profiles/<name>/cordis.patch.yml 裏按插件 id 配置 only 與 toolPrefix(README 示例針對 deterministic-tools)。勿用 dsh --patch 去改 bundle 層未暴露的 id,否則會報 patch: entry "deterministic-tools" not found。

適用場景與注意

適合:需要在 DSH 對話中穩定處理 JSON/YAML/CSV、正則與編碼;粘貼 JVM thread dump / GC 日誌、Python traceback / pytest / Django 報告;在 Windows 環境解讀 netstat、路徑與磁盤佔用(只讀)的開發者與智能體場景。

注意:

  • 插件以當前 dsh 進程權限運行;安裝前請自行審閱 GitHub 源碼 與各子插件倉庫及 MIT 許可證。
  • 合裝包是配置聚合層,四個插件也可單獨從 npm 或各自 releases/latest/download/<repo>.tgz 安裝;與 bundle 二選一,避免重複。
  • SkillHub 目錄分類爲「模型推理」;倉庫星標以目錄頁爲準(當前爲 0),不代表功能完整度——應以 README 與測試說明爲準。

結尾

dsh-toolbox-bundle 用一條 DSH 命令把四套確定性、離線工具鏈掛進 profile,把格式處理與 JVM/Python/Windows 診斷從「每次現寫腳本」收成固定實現與結構化回執。目錄頁:SkillHub — ax2/dsh-toolbox-bundle;源碼與安裝說明:github.com/ax2/dsh-toolbox-bundle。

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

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

小夜