dsh-nushell-only:DeepSeek Harness 的 Nushell 獨佔執行器

前言

DeepSeek Harness (DSH) 採用插件化架構,模型在執行任務時默認使用 bash 或 PowerShell。dsh-nushell-only 是一個 Profile Bundle,它通過接管 DSH 的 Shell 執行層,將所有 Shell 執行強制轉換爲 Nushell,並配合提示詞教學,防止模型輸出 Bash 或 PowerShell 語法。

功能介紹

此插件主要包含四個層面的修改:

  1. 接管執行層
    插件禁用 DSH 內置的 bash-sandbox 和 pwsh-sandbox,替換爲自定義的 dsh-nushell-only/executor。所有通過 ctx.shell 的調用(包括模型工具、後臺任務、Hook 橋接等)都會變成 nu --no-config-file -c "<command>"。參數配置(如超時、輸出上限、spill 文件)沿襲第一方實現,僅替換了執行命令。

  2. 強制守衛
    執行器內置守衛機制,拒絕模型切換到其他 Shell(如 bash -c、sh -c、cmd /c、pwsh -Command、wsl 等)。默認開啓此功能,可通過配置項關閉或設置白名單。

  3. 教學層
    提供 nushell-rules 和 nushell-guide。插件會將模型看到的工具描述和 command 參數說明改寫成 Nushell 方言,並附帶語法手冊和 Bash/PowerShell 對照表,每次裝配時會帶上探測到的 Nushell 版本號。

  4. 方言預檢與糾錯
    在執行前攔截常見的 Bash/PowerShell 習慣(如 2>&1、2>$null、$env:VAR、Get-Content、foreach 等),給出具體的 Nushell 寫法建議。執行失敗時,會根據 Nushell 的實際錯誤碼追加提示。

安裝與啓用

執行以下命令安裝插件:

dsh plugin --profile web add dsh-nushell-only

安裝完成後,重啓該 Profile。

配置與驗證

若 Profile 中已存在舊的 dsh-nushell 插件,必須先卸載以避免衝突:

dsh plugin --profile web remove dsh-nushell

安裝後,可以通過以下命令驗證配置是否生效:

dsh --profile web --dump-config | grep -n "nushell"

配置選項包括:
- enforceNushellOnly: false:關閉強制守衛。
- foreignShellAllowlist:設置允許調用其他 Shell 的白名單。

注意事項

  • 版本適配:插件適配 DSH 0.2.0-rc.2。
  • 運行時要求:Node.js 版本需滿足 >=22.19.0。
  • 依賴關係:安裝器會按 peerDependencies 校驗運行時版本,不匹配時會拒絕安裝。

結語

dsh-nushell-only 適合希望統一 Shell 生態或從零開始培養模型 Nushell 習慣的開發者。通過接管執行層和提示詞層,它強制模型使用 Nushell,減少了環境差異帶來的錯誤。

目錄頁:dsh-nushell-only - SkillHub
源碼:YMRwithNoworry/dsh-nushell-only - GitHub

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

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

小夜