dsh-win-native:Windows 上的 DeepSeek Harness 正確性層

前言

在 Windows 上跑 DeepSeek Harness(DSH)時,模型和 agent 經常要靠臨時 PowerShell 或正則處理本地問題:猜一段字節是什麼編碼、判斷路徑爲什麼創建失敗、從 netstat 輸出裏摳端口、統計目錄佔用、找重複文件。這類腳本往往猜錯也不說明不確定、輸出被截斷卻像完整結果、編碼轉換靜默丟字。DSH 社區把能力做成可安裝的插件;dsh-win-native 由維護者 ax2 發佈,在 SkillHub 上歸類爲「模型推理」,實質是把上述判斷做成六個有回執、有邊界、只讀優先的工具,供 harness 裏的 agent 調用。

這是什麼

dsh-win-native 是面向 Windows 的 DSH 插件(npm 包名 dsh-win-native,當前版本 0.1.5,MIT 許可證)。README 的定位是:Windows 正確性層——把 agent 平時用 PowerShell 文本解析湊合的那些判斷,做成有回執、有邊界、說實話的工具。插件包含 6 個工具,無安裝期腳本,運行時無網絡依賴(README 標註 network: none)。每個工具遵守 DSH 插件契約:返回 { result, meta };結構化輸入超預算時拒絕而非截斷;領域失敗作爲成功結果返回(例如路徑不存在是數據,不是崩潰)。

與「讓模型自己寫 pwsh」相比,README 強調這些邏輯由 57 個測試覆蓋的固定實現承擔,避免一行腳本漏掉保留設備名、編碼歧義、junction 跟隨等問題。

核心功能:六個工具

編碼:encoding_detect 與 encoding_convert

encoding_detect 只分析調用方提供的 base64 字節,不讀磁盤。流程爲 BOM → 嚴格 UTF-8 → 打分候選;支持 GBK、GB18030、Big5、Shift_JIS 等場景的評分,並給出 high / medium / low 置信度及得分接近的備選列表。短樣本在信息論上可能無法區分(例如 GB18030 與 Big5 在合法雙字節對上存在交集),工具會報 low 並在 meta.notes 中說明,而不是假裝確定。

encoding_convert 同樣只處理 base64 字節。目標編碼包括 utf-8、utf-16le、utf-16be、gbk、gb18030、big5、shift_jis、latin1、ascii;from: "auto" 時先檢測。有損轉換會列出 lossy_characters、lossy_list,並在 meta.notes 中明確標註,不會靜默把字符變成 ?。

路徑:path_inspect

純字符串分析,不訪問文件系統,因此路徑不存在也能檢查。覆蓋絕對/相對、\\?\ 擴展前綴、UNC 與盤符形態、保留 DOS 設備名(含帶擴展名的 CON.txt)、非法與控制字符、尾空格或點、8.3 安全、分段長度與 MAX_PATH(260)等;每條問題帶 code、severity、位置。README 示例:路徑 C:\temp\CON.txt 會返回 reserved_name 且 safe_for_max_path: false。

網絡:netstat_parse

只解析調用方粘貼的 netstat 文本,不碰文件系統、不寫磁盤。用於把端口占用類輸出從「正則湊合」改爲結構化解析(具體字段以插件實現與測試爲準)。

只讀磁盤:dir_usage 與 file_duplicates

這兩個工具會讀文件系統,但插件承諾永不刪除、移動、重命名或寫入任何文件。

工具 讀盤 寫盤
dir_usage lstat + opendir 遍歷指定絕對路徑 否
file_duplicates 流式 SHA-256 讀內容 否

二者均拒絕相對路徑(含義依賴宿主進程工作目錄,插件選擇拒絕而非猜測)。遍歷使用 lstat,符號鏈接、junction 等 reparse point 跳過並上報(skipped_links),不跟隨。輸入有預算,超預算拒絕。file_duplicates 只報告重複組與可回收字節,回收由人或上層策略執行。

其餘四個工具(兩個編碼、路徑、netstat)不碰文件系統。

安裝與啓用

在 DSH 環境中,README 給出的安裝方式爲:

dsh plugin --profile web add dsh-win-native

裝完後需要重啓應用(bundle 列表在啓動時讀取)。若希望一次安裝 ax2 的四個相關插件(含 dsh-deterministic-tools、dsh-jvm-doctor、dsh-py-doctor),可使用合裝包 dsh-toolbox-bundle;README 明確:不要與單獨安裝混用。家族總覽入口見 zicode.com/software。

運行要求(來自 package.json):Node.js >=20.10;peer 依賴 @deepseek-ai/cordis >=4.0.0、@deepseek-ai/dsh-tools >=0.2.0-rc.1。

典型用法

1. 檢查路徑是否合法

向 agent 提問類似「C:\temp\CON.txt 這個路徑能用嗎」,模型可調用 path_inspect。README 實測輸出片段如下:

{
  "issues": [
    {
      "code": "reserved_name",
      "severity": "error",
      "position": 8,
      "detail": "segment \"CON.txt\" is a reserved DOS device name, even with an extension or a path prefix"
    }
  ],
  "safe_for_max_path": false,
  "canonical_length": 15
}

2. 檢測 GBK 類字節流編碼

輸入爲 base64 編碼的字節(例如含「配置文件路徑:C:\Users\ax2,服務未啓動。」的 GBK 文本),調用 encoding_detect:

{ "base64": "..." }

返回最佳候選(如 gb18030)、置信度、BOM 信息,以及 alternatives 中各編碼的 score、sample、round_trip 等,便於在歧義時人工或上層策略抉擇。

3. 有損轉換必須可見

將 UTF-8 的「中文測試」轉到 latin1 時,調用 encoding_convert:

{
  "base64": "5Lit5paH5rWL6K+V",
  "from": "utf-8",
  "to": "latin1",
  "bom": "strip"
}

結果中會包含 lossy_characters: 4、lossy_list 逐字列出無法表示的碼點,以及 meta.notes 中的 LOSSY 說明。

適用場景與注意

適合誰: 在 Windows 上通過 DSH 做運維、排障、代碼倉庫分析的開發者;需要穩定處理中文/日文繁體等多字節編碼、Windows 路徑規則、netstat 輸出,或在有邊界的前提下做目錄用量與重複文件分析的場景。

生態說明: DSH 採用「一切皆插件」的擴展方式;SkillHub(插件目錄頁)是社區目錄站點,與 DeepSeek / 幻方無官方從屬關係,不宜當作官方應用商店理解。

安全與權限: 插件以當前 DSH 進程的用戶權限運行;dir_usage 與 file_duplicates 會讀取你指定的絕對路徑下的內容。安裝前應查看 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的環境策略。插件設計爲 offline、local-first、無網絡,但讀盤範圍仍取決於 agent 傳入的路徑參數。

與相鄰插件: 同一維護者還提供 dsh-deterministic-tools、dsh-jvm-doctor、dsh-py-doctor 及合裝 dsh-toolbox-bundle,可按需組合,但勿與 bundle 重複混裝。

結尾

dsh-win-native 把 Windows 上高頻、易錯的本地判斷收成六個結構化工具:編碼檢測與可審計的轉換、路徑合法性、netstat 解析,以及有預算的只讀磁盤統計與重複文件報告。若你在 harness 裏受夠了「看起來像 GBK」和「路徑報錯再改斜槓」,可以從目錄頁瞭解簡介與分類,並按 README 安裝後在重啓 DSH 後讓 agent 調用上述工具。

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

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

小夜