deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Zhuchen00123/dsh-wsl-modes
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
让 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(router-flash-godmode-wsl)使用 Router 首轮核心工具引导:
read + write + edit + bash;tool/call 后放开全量工具。第四个 preset(router-standard-wsl)使用 原版 standard 的 RL 接口还原:
You are a helpful software engineer assistant.;shell + str_replace_editor;tool/call 后放开全量工具。本 preset 是以下项目的 WSL 适配版:
deepseek-v4-flash本仓库的改动:
dsh-compaction-cacheaware(Reasonix 风格),不用官方 compaction-basicRouter Flash Godmode (WSL)完整来源与改动记录见 presets/router-flash-godmode-wsl/NOTICE.md。
原版论文研究笔记见 docs/router-standard-paper-notes.md。
本 preset 是以下项目的 WSL 适配版:
本仓库的改动:
isFlashModel 恒为 true,weak 一律 WEAK_FLASH)agent/inbox/claimed + agent/inbox/inserteddev_mode_subagent 在 opencode-go flash 上丢正文完整来源与改动记录见 presets/router-standard-wsl/NOTICE.md。
本仓库已打上 dsh-plugin topic,会被 DSH 创意工坊 每日自动扫描收录。
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 <distro> --exec bwrap ... -- bash -c <cmd>。bwrap 表达三档策略:read-only:--ro-bind / /workspace-write:额外 --tmpfs /tmp --bind <workspace> <workspace>danger-full-access:不加 bwrap,直接 wsl.exe bashwslpath -a 转成 WSL 路径用于 bwrap bind;bash 内看到的是 Linux 路径(如 /codexprojects/...)。tool-presentation mode: code,模型通过 run_code 写 TypeScript 程序,一次组合多步操作。Debian,可用 DSH_WSL_DISTRO 指定)bwrap(sudo apt install bubblewrap)node:sqlite / node:zstd)0.1.0-rc.6 或兼容版本git clone https://github.com/<your-name>/dsh-wsl-modes.git
cd dsh-wsl-modes
把 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
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
启动 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的内容合并进你的 profilecordis.patch.yml,这样不用每次带--patch。
在 Web UI 里点“新建会话”,选择:
极简模式 (WSL) 或Code Mode (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 的环境变量,逗号分隔 |
/mnt/f/...),而 read/write/edit/str_replace_editor 运行在 Windows 主机,需要 Windows 路径(F:\...)。模型调用文件工具前应使用 wslpath -w /mnt/f/... 转换,或直接使用 Windows 路径。tool-bash,每条命令独立运行。code-wsl 的 bootstrapMaxTokens 已设为 16384,避免首轮 PTC 因 1024 上限被截断。若仍遇到 invalid pi-ai replay state: block count does not match assistant content,通常是 DSH 在“继续”截断回复时的 pi-ai replay 状态同步问题;可先发一条新消息代替“继续”,或把 bootstrapMaxTokens 再调大。tool-bootstrap.mjs 来自 xiaobright/dsh-anchored-standard,MIT License。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。