DSH 標準模式在 Windows 上默認使用 PowerShell 作爲 shell,但開發工作常需 Linux 命令(如 grep、rsync 等)。dsh-wsl-preset 將 DSH 標準模式中的 shell 調用映射到 Windows Subsystem for Linux (WSL),讓 Windows 上的開發環境擁有完整的 Linux 命令行能力。
插件定位¶
- 名稱:dsh-wsl-preset
- 維護者:yukitakasama
- 類別:工作流
- 許可證:MIT
核心能力¶
- 一鍵安裝:通過
dsh plugin一鍵安裝「WSL 模式」agent preset。 - 環境映射:將 shell 執行器改爲
wsl -e bash -c,保留標準 persona 和完整工具表面(bash、文件系統、搜索、技能、工作流、委託、present 等)。 - 自動探測:自動探測
wsl.exe是否可用,無需硬編碼路徑。 - 沙箱感知:WSL 無法在 Windows 受限令牌沙箱內啓動,僅允許在完全訪問策略下執行,受限時給出明確的升級指引。
- 冪等自修復:插件啓動時將預設裝進
${DSH_HOME:-~/.dsh}/.agent-presets/wsl/,已存在文件不一致時自動刷新,修復舊版本遺留問題。
安裝¶
推薦方式:GitHub 直裝
dsh plugin --profile web add github:yukitakasama/dsh-wsl-preset
鎖定特定版本:
dsh plugin --profile web add github:yukitakasama/dsh-wsl-preset#v0.3.0
使用流程¶
- Web 界面新建會話,選擇 WSL 模式。
- 啓用命令執行:
- 將會話沙箱切換到完全訪問,之後所有命令直接走 WSL。
- 或保持
workspace-write,讓模型在第一次調用失敗後按提示使用sandbox_permissions: "danger-full-access"+ justification 單次升級。
配置與限制¶
預設配置(agent-presets/wsl/agent.cordis.yml 中的 wsl-executor):
* timeoutMs:120000(單次命令默認超時)
* maxTimeoutMs:600000(超時上限)
* maxOutputBytes:64000(單流保留字節數)
* maxSpillBytes:67108864(spill 文件上限)
* graceMs:3000(SIGTERM→SIGKILL 寬限)
插件配置(cordis.patch.yml 插入行):
* autoUpdate:true(已裝預設與包內文件不一致時自動刷新)
* force:false(即使文件已經一致也覆蓋)
限制:
* 沙箱限制:會話沙箱爲 workspace-write(或更窄)時,WSL 無法啓動,必須切換完全訪問或單次升級。
* 狀態隔離:每次命令調用均爲新 shell,不保持 cd/export 狀態。
* 工具名:工具名固定爲 bash。
* 系統要求:需系統已安裝並啓用 WSL。
生態背景¶
DSH 理念爲「一切皆插件」。本插件由社區維護,與 DeepSeek / 幻方無官方從屬關係。