← 返回列表
未验证
让 Agent 在 WSL 里跑 bash 并启用四套预设
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/16 · 已提供中文文档
综合分
28.4
GitHub 分
28.4
用户评分
—
★ Stars
2
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Zhuchen00123/dsh-wsl-modes该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
DSH WSL 模式 让 DeepSeek Harness 在 Windows 上使用 WSL Linux bash + bubblewrap 沙箱,并提供四个可直接使用的 Agent preset: | Preset | 名称 | 说明 | |---|---|---| | minimal-wsl | 极简模式 (WSL) | 极简双工具:bash + str_replace_editor,另加 read/write/edit、glob/grep、plan、compact | | code-wsl | Code Mode (WSL) | 完整 Code Mode:PTC run_code + delegation/workflow + skills + plan/compact + 全量工具 | | router-flash-godmode-wsl | Router Flash Godmode (WSL) | Flash 神模式(opencode-go):w7 引导 + build/fix 路由 + 首轮核心工具后放开全量 + WSL bash/bwrap | | router-standard-wsl | Router Standard (WSL) | 原版 standard(WSL):RL 接口还原 + shell/str_replace_editor 首轮,think-act 循环,首次 tool call 后放开全量 | 前两个 preset(minimal-wsl / code-wsl)内置 两阶段锚定(anchored bootstrap): - 第一轮模型请求只暴露 [bash, read],并把 maxTokens 压到 16384,锚定 Minimal 的推理轨迹; - 第一次持久 tool/call 或 assistant/message 后自动晋升; - 晋升后恢复该 preset 的完整工具目录; - 状态从持久 session events 推导,resume 不丢。 第三个 preset(router-flash-godmode-wsl)使用 Router 首轮核心工具引导: - Flash 模型固定走 w7 神模式 persona; - 首轮只暴露 read + write + edit + bash; - 第一次 tool/call 后放开全量工具。 第四个 preset(router-standard-wsl)使用 原版 standard 的 RL 接口还原: - 首轮 persona 只有 RL 训练句 You are a helpful software engineer assistant.; - 首轮工具 shell + str_replace_editor; - 第一次 tool/call 后放开全量工具。 Router Flash Godmode (WSL) 来源 本 preset 是以下项目的 WSL 适配版: - 上游适配版:SheberDavid/v4-flash-godmode-opencode-go - “V4 Flash 神模式 (opencode-go)”,针对 opencode-go 的 deepseek-v4-flash - 注意:上游仓库没有 LICENSE 文件 - 原版路由:yjh051108/dsh-router-standard - MIT License,Task-aware reasoning-mode router 本仓库的改动: 1. Windows 下也使用 WSL bash + bwrap(禁用 pwsh),而不是上游默认的 PowerShell 2. compaction 换成 dsh-compaction-cacheaware(Reasonix 风格),不用官方 compaction-basic 3. 重命名为 Router Flash Godmode (WSL) 完整来源与改动记录见 presets/router-flash-godmode-wsl/NOTICE.md。 原版论文研究笔记见 docs/router-standard-paper-notes.md。 Router Standard (WSL) 来源 本 preset 是以下项目的 WSL 适配版: - 原版:yjh051108/dsh-router-standard - MIT License,Task-aware reasoning-mode router 本仓库的改动: 1. Windows 下也使用 WSL bash + bwrap(禁用 pwsh) 2. 强制 Flash-only(isFlashModel 恒为 true,weak 一律 WEAK_FLASH) 3. 修复首轮动态注入:agent/inbox/claimed + agent/inbox/inserted 4. 首轮剥离 skill-catalog / agent-instructions 5. 晋升后保留 runtime contexts 6. 路径规范只在晋升后注入 7. 修复 dev_mode_subagent 在 opencode-go flash 上丢正文 8. 修复 router 测试(14/14 通过) 完整来源与改动记录见 presets/router-standard-wsl/NOTICE.md。 🐋 收录于 DSH 创意工坊 本仓库已打上 dsh-plugin topic,会被 DSH 创意工坊 每日自动扫描收录。 - 创意工坊在线地址:https://JxaMe.github.io/dsh-workshop/ - 收录方式:GitHub topic dsh-plugin 自动发现 目录结构 dsh-wsl-modes/ ├── README.md ├── docs/ │ └── router-standard-paper-notes.md # 原版论文研究笔记 ├── presets/ │ ├── minimal-wsl/ │ │ ├── agent.cordis.yml # preset 组合:bootstrap + persona + 工具 │ │ ├── preset.yml # 下拉菜单显示信息 │ │ └── tool-bootstrap.mjs # 两阶段锚定插件(MIT) │ ├── code-wsl/ │ │ ├── agent.cordis.yml │ │ ├── preset.yml │ │ └── tool-bootstrap.mjs │ ├── router-flash-godmode-wsl/ │ │ ├── agent.cordis.yml │ │ ├── preset.yml │ │ ├── router-bootstrap.mjs │ │ ├── router-core.mjs │ │ └── NOTICE.md # 来源与改动说明 │ └── router-standard-wsl/ │ ├── agent.cordis.yml │ ├── preset.yml │ ├── router-bootstrap-v1.mjs │ ├── router-core.mjs │ ├── router.test.mjs │ └── NOTICE.md # 来源与改动说明 └── host/ └── dsh-wsl-bash/ # ctx.shell 执行器:wsl.exe + bwrap ├── cordis.patch.yml # 挂载补丁:禁 pwsh-sandbox,挂 wsl-bash ├── src/index.ts ├── lib/index.js └── package.json 工作原理 - 终端:tool-bash 通过 ctx.shell 执行器运行 wsl.exe -d --exec bwrap ... -- bash -c 。 - 沙箱:在 WSL 内用 bwrap 表达三档策略: - read-only:--ro-bind / / - workspace-write:额外 --tmpfs /tmp --bind - danger-full-access:不加 bwrap,直接 wsl.exe bash - 路径:工作区 Windows 路径会通过 wslpath -a 转成 WSL 路径用于 bwrap bind;bash 内看到的是 Linux 路径(如 /codexprojects/...)。 - PTC(仅 code-wsl):tool-presentation mode: code,模型通过 run_code 写 TypeScript 程序,一次组合多步操作。 环境要求 - Windows 10/11 + WSL2 - WSL 发行版(默认 Debian,可用 DSH_WSL_DISTRO 指定) - WSL 内已安装 bwrap(sudo apt install bubblewrap) - Node.js ≥ 22(node:sqlite / node:zstd) - DeepSeek Harness 0.1.0-rc.6 或兼容版本 安装 1. 克隆本仓库 git clone https://github.com//dsh-wsl-modes.git cd dsh-wsl-modes 2. 安装 preset 到 DSH 把 presets/minimal-wsl、presets/code-wsl、presets/router-flash-godmode-wsl 和 presets/router-standard-wsl 复制到: %USERPROFILE%\.dsh\.agent-presets\ PowerShell: $dest = "$env:USERPROFILE\.dsh\.agent-presets" Copy-Item -Recurse -Force .\presets\minimal-wsl $dest Copy-Item -Recurse -Force .\presets\code-wsl $dest Copy-Item -Recurse -Force .\presets\router-flash-godmode-wsl $dest Copy-Item -Recurse -Force .\presets\router-standard-wsl $dest 3. 安装 compaction 插件 code-wsl / minimal-wsl 使用 dsh-compaction-cacheaware 作为 compaction 后端(Reasonix 风格)。需要在 DSH profile 中安装该包: cd "$env:USERPROFILE\.dsh\profiles\web" pnpm add dsh-compaction-cacheaware 如果暂时不想用 npm registry,也可以从 GitHub 安装: pnpm add dsh-compaction-cacheaware@github:Zhuchen00123/dsh-compaction-cacheaware 4. 挂载 WSL bash 执行器 启动 DSH Web 时带上本仓库的 host patch: dsh --profile web --patch F:\path\to\dsh-wsl-modes\host\dsh-wsl-bash\cordis.patch.yml --port 3xxx 也可以把 cordis.patch.yml 的内容合并进你的 profile cordis.patch.yml,这样不用每次带 --patch。 5. 使用 在 Web UI 里点“新建会话”,选择: - 极简模式 (WSL) 或 - 代码模式(WSL) 已验证 在 opencode-go / deepseek-v4-flash + WSL2 Debian 上实测通过: | 项目 | 结果 | |---|---| | minimal-wsl 加载 | ✅ 双工具 + 锚定 | | code-wsl 加载 | ✅ PTC run_code 可用 | | WSL Linux bash | ✅ uname -a → Linux ... WSL2 ... GNU/Linux | | pwd | ✅ /codexprojects/deepseek-harnes | | bwrap workspace-write | ✅ /tmp 可写,/etc 被拦 | | 沙箱 denial 上报 | ✅ [sandbox: file access denied under workspace-write mode] | | escalation 审批流 | ✅ danger-full-access 可审批 | 配置项(环境变量) | 变量 | 默认值 | 说明 | |---|---|---| | DSH_WSL_DISTRO | WSL 默认发行版 | 指定 WSL 发行版 | | DSH_WSL_EXE | wsl.exe | wsl.exe 路径 | | DSH_WSL_BWRAP | bwrap | WSL 内 bwrap 路径 | | DSH_WSL_ENV | 空 | 额外透传到 WSL 的环境变量,逗号分隔 | 注意事项 - 路径问题:bash 内看到的是 WSL 路径(/mnt/f/...),而 read/write/edit/str_replace_editor 运行在 Windows 主机,需要 Windows 路径(F:\...)。模型调用文件工具前应使用 wslpath -w /mnt/f/... 转换,或直接使用 Windows 路径。 - 不要多进程写同一 session:DSH 的 session 日志是 append-only,多个 dsh 进程同时写同一会话会损坏日志。测试不同模式请用不同会话,或先退出旧进程。 - Windows PTY 限制:官方 minimal 的持久 bash 依赖 PTY seam,在 Windows 上不可用;本方案使用一次性 tool-bash,每条命令独立运行。 - code-wsl 输出截断:code-wsl 的 bootstrapMaxTokens 已设为 16384,避免首轮 PTC 因 1024 上限被截断。若仍遇到 invalid pi-ai replay state: block count does not match assistant content,通常是 DSH 在“继续”截断回复时的 pi-ai replay 状态同步问题;可先发一条新消息代替“继续”,或把 bootstrapMaxTokens 再调大。 致谢 / License - tool-bootstrap.mjs 来自 xiaobright/dsh-anchored-standard,MIT License。 - 本仓库代码采用 MIT License,见 LICENSE。
同作者(Zhuchen00123)的其他插件
扫码进群