dsh-windows-shell-policy:DeepSeek Harness 的 Windows 默認 Shell 策略插件

前言

在 DSH 的 Windows 使用場景裏,shell 工具面經常是一個具體問題:agent 可能需要執行 bash 風格命令,但當前生效 shell 可能是 pwsh;如果工具面中同時暴露 bash 和 pwsh,提示詞與工具選擇都會變得更復雜。

dsh-windows-shell-policy 針對這個點做收斂:它探測本機可用的 git-bash/MSYS2/Cygwin,在「設置 → 插件 → 插件配置」提供「默認 Shell」摺疊卡片,支持自動 / bash / pwsh 三選一;在策略爲 bash 時動態註冊 bash 工具,並裁剪提示詞工具面,使 agent 只面對一個 shell 工具。

這是什麼

  • 插件名:dsh-windows-shell-policy
  • 維護者:LAN-TINA-WS
  • 版本:0.0.5(package.json)
  • License:MIT
  • GitHub:https://github.com/LAN-TINA-WS/dsh-windows-shell-policy

一句話定位:它是 DeepSeek Harness(DSH)的 Windows 默認 Shell 策略插件,用於在 Windows 上探測 bash、切換 bash/pwsh、註冊 bash 工具,並控制 agent 可見的 shell 工具面。

核心能力

Shell 探測

插件按以下順序探測可用 bash:

1、顯式 bashPath
2、Git 常見安裝路徑(Program Files / x86)
3、MSYS2 / Cygwin
4、PATH

找到即用。

配置卡片

在「設置 → 插件 → 插件配置」中,插件提供「默認 Shell」摺疊卡片。卡片會顯示探測狀態與當前生效 shell,並支持三選一:

  • 自動
  • bash
  • pwsh

策略生效

策略行爲如下:

  • auto:探測到 bash 則用 bash,否則使用 pwsh。
  • bash:強制使用 bash;若未探測到 bash,會回落 pwsh 並提示。
  • pwsh:強制使用 pwsh。

切換保存後,下一次請求生效。

bash 工具註冊

當 effective=bash 時,插件動態註冊 bash 工具,並使用 subprocess 通道執行,支持超時、輸出截斷、exit code 標記。

提示詞工具面裁剪

插件在 system-prompt/assemble 中按策略隱藏 pwsh/bash,使 agent 工具面只保留一個 shell 工具。

持久化

preferred 持久化於 settings 文檔的 shell-policy section,重啓保留。

卸載即淨

卸載可使用:

dsh plugin --profile web remove

或在開發環境使用:

dev_uninject_plugin <本目錄>

可完成工具註銷、提示詞恢復、junction 清理。

安裝與啓用

GitHub 直裝

下面命令從 GitHub 添加插件:

dsh plugin --profile web add github:LAN-TINA-WS/dsh-windows-shell-policy

安裝後重啓 dsh web,打開「設置 → 插件 → 插件配置」開始配置。

npm 安裝

下面命令從 npm 添加插件:

dsh plugin --profile web add dsh-windows-shell-policy

然後打開「設置 → 插件 → 插件配置」開始配置。

Release ZIP 安裝

先下載 dsh-windows-shell-policy-v*.zip 並解壓,然後使用解壓目錄安裝:

dsh plugin --profile web add link:<解壓目錄>

重啓 dsh web 後,進入「設置 → 插件 → 插件配置」。

開發環境注入器安裝

下面命令先構建插件產物:

DSH_CHECKOUT=<checkout> bash scripts/build.sh

生成 lib/index.js 與 lib/client.js 後,注入當前目錄:

dev_inject_plugin <本目錄>

典型用法

選擇默認 Shell

1、打開「設置 → 插件 → 插件配置」。
2、展開「默認 Shell」卡片。
3、選擇自動、bash 或 pwsh。
4、保存;切換下一次請求生效。

配置顯式 bash 路徑

當需要指定 bash 可執行文件路徑時,可配置 settings.yaml 的 shell-policy.bashPath。面板編輯在規劃中,當前可通過配置文件設置。

shell-policy:
  bashPath: <本機 bash 可執行文件路徑>

配置後,插件會按探測順序優先讀取顯式 bashPath。

運行依賴

插件聲明的 peerDependencies 如下:

@deepseek-ai/dsh-llm >=0.0.1-rc <2
@deepseek-ai/dsh-tools >=0.0.1-rc <2
@deepseek-ai/dsh-subprocess >=0.0.1-rc <2
@deepseek-ai/dsh-settings >=0.0.1-rc <2
@deepseek-ai/dsh-sandbox >=0.0.1-rc <2
@deepseek-ai/dsh-sandbox-policy >=0.0.1-rc <2
@deepseek-ai/dsh-jobs >=0.0.1-rc <2
cordis >=4.0.0-rc <5
schemastery ^3.18.0
@deepseek-ai/dsh-client-ui-slots >=0.0.1-rc <2

適用場景與注意

適合誰:

  • 在 Windows 下使用 DSH web。
  • 希望 agent 執行 shell 命令時使用 bash,或穩定只暴露一個 shell 工具。
  • 需要在 bash/pwsh 之間按策略切換,並在重啓後保留配置。
  • 需要卸載後還原工具註冊與提示詞狀態。

注意:

  • 插件以當前 dsh 進程權限運行;安裝前檢查源碼與許可證。
  • 切換 Shell 保存後,下一次請求生效。
  • 顯式 bash 時,若未探測到 bash,會回落 pwsh 並提示。
  • shell-policy.bashPath 的面板編輯在規劃中。
  • 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不要理解爲官方應用商店。

結尾

dsh-windows-shell-policy 把 Windows 下的 shell 選擇變成一個可探測、可配置、可持久化、可卸載還原的策略項:它提供 bash 探測、默認 Shell 卡片、bash 工具註冊、提示詞工具面裁剪,以及卸載後還原。

  • GitHub 倉庫:https://github.com/LAN-TINA-WS/dsh-windows-shell-policy
  • 反饋 issue:https://github.com/LAN-TINA-WS/dsh-windows-shell-policy/issues/1
  • 社區目錄頁:已覈實資料未提供 URL。
羽毛球分组比赛记分
小程序二维码

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

小夜