前言¶
DeepSeek Harness (DSH) 的核心設計理念是將能力拆分爲可插拔的組件。雖然 DSH 原生提供 bash 工具,但開發者有時需要使用 Nushell 的語法來處理數據。dsh-nushell 插件解決了這個問題,它作爲一個 Profile Bundle,讓 DSH 能夠通過 Nushell 執行原本的 bash 工具邏輯。
插件定位¶
dsh-nushell 是由 daief 維護的一個 Profile Bundle。它不替代 DSH 的沙箱或超時機制,而是通過 Nushell 的解釋器接管命令執行,保持了對現有 DSH 生態的兼容性。
核心功能¶
- 命令執行代理:將 DSH 的
bash工具調用轉換爲 Nushell 的nu --no-config-file -c <command>命令。 - 環境隔離:執行過程中忽略用戶的
config.nu和env.nu,避免配置衝突。 - 機制複用:將沙箱、超時控制及輸出處理完全委託給 DSH 的原有機制。
安裝與啓用¶
使用前請確保環境滿足以下條件:
* DSH 版本爲 0.1.0-rc.7。
* Node.js 版本 >= 22.19.0。
* 系統中已安裝 Nushell 並可通過 PATH 調用。
安裝命令如下:
dsh plugin --profile web add dsh-nushell
安裝完成後,重啓對應的 Profile(將命令中的 web 替換爲你實際使用的 Profile 名稱)。
典型用法¶
在 DSH 中,該工具的名稱仍保持爲 bash。調用時,需編寫 Nushell 語法。以下是幾個典型示例:
- 過濾文件列表:
bash ls | where type == file | get name
- 讀取 JSON 數據:
bash open package.json | get name
- 訪問環境變量:
bash $env.DSH_WEB_URL
注意事項¶
- 無狀態:Shell 狀態、別名和變量不會在工具調用之間持久化,每次調用都會創建新的 Nushell 進程。
- 工作目錄:必須使用工具提供的
workdir參數,不要依賴上一次調用的cd狀態。 - 兼容性:插件與 DSH 0.1.0-rc.7 的契約對齊,升級 DSH 前請驗證兼容性。
結語¶
dsh-nushell 提供了在 DSH 中使用 Nushell 的輕量級方案,無需修改工具名稱即可享受 Nushell 的數據處理能力。更多細節請參考 GitHub 倉庫。