- dsh-plugin
- AI 插件
- AI 应用
【免费下载链接】dsh-ops
A toolkit for low-level operations in DSH, designed to reduce token usage and task execution time / DSH 底层操作工具插件,旨在减少 Token 消耗与任务耗时
dsh-ops是 Windows 版 DSH(DeepSeek Harness)的底层操作插件,核心使命只有一个:让 AI 少犯错、少烧 Token。它内置bash 5.3.15与PowerShell 7.6.6双引擎,按「Rust 工具包 → bash → PowerShell 7」的固定梯级执行命令,从根源上消除 Windows 下 AI 反复与 PowerShell 语法"打架"造成的时间浪费。
本文带你彻底看懂这套执行梯级是怎么设计的、双引擎如何分工,以及它凭什么敢为 AI 的每一次命令兜底。
为什么 AI 在 Windows 上总跟 PowerShell 打架?😤
Windows 下 AI 执行命令时,常见的痛点是:
- 宿主默认走 PowerShell 5.1,语法古老,AI 生成的一条 bash 风格命令(管道、重定向、
grep)直接报错; - 报错后 AI 尝试"换种写法再试",每试错一次就消耗一轮 Token 和模型注意力;
- 系统里装没装 Git bash、装的什么版本,AI 完全不可控。
dsh-ops 的思路很直接:给 AI 一把确定性的钥匙——随包携带钉版(pinned)的 bash 5.3.15 和 PowerShell 7.6.6,不依赖系统 PATH、不改环境变量,AI 想用什么就有什么,而且版本永远可预期。
执行顺序在 README.md#L26 中被明确写死:工具包 → bash → PowerShell 7。
三级执行梯级:每一级各管什么?
梯级(ladder)是 dsh-ops 的核心设计:AI 不是"任选一个 shell",而是按优先级逐级下探。
| 梯级 | 工具 | 负责什么 |
|---|---|---|
| 第 1 级 | Rust 文件工具(ops_grep、ops_glob、ops_inspect_local_file、ops_replace) | 读文件、搜索、批量替换——根本不进 shell,输出精简更省 Token |
| 第 2 级 | ops_bash(bash 5.3.15) | 通用命令、构建、git、管道、脚本——首选命令执行器 |
| 第 3 级 | 宿主pwsh(随包 PowerShell 7.6.6) | 仅当需要 Windows 原生能力:注册表、服务、.NET cmdlet |
这套路由策略由 lib/policy.js 渲染进系统提示词,只向模型通告"当前部署真正可用的梯级"——缺哪个 shell,哪一级就静默消失,AI 永远不会被引导去调用一个不存在的工具。
第 2 级:bash 为什么是"首选"?
ops_bash由 lib/shells.js 解析出插件自己的 bash 可执行文件后发布,模型提示词中明确写着:"Prefer bash for command execution... fix bash errors in bash, do not switch shells or mix their syntax."(优先用 bash 执行命令;bash 报错就在 bash 里修,不要换 shell 或混用语法。)
这条提示词是"兜底"的关键一环:它把 AI 的注意力锁定在一套语法体系内,切 shell 重试这条最烧 Token 的路径被直接掐断。
第 3 级:PowerShell 7 何时登场?
只有 bash 覆盖不到的场景才轮到 PowerShell 7.6.6:注册表操作、Windows 服务管理、.NET 类型调用等原生能力。此时宿主的pwsh工具被 cordis.patch.yml 动态指向随包的 PowerShell 7,而不是系统里那个行为不确定的 5.1。
bash 5.3.15 从哪来?钉版 + 摘要校验的"确定性" 🔒
很多人会问:bash 5.3.15 不是 Windows 原生东西,它是怎么来的?
答案是:Git for Windows 的 PortableGit 2.56.0.2 完整运行时,其中就带着GNU bash, version 5.3.15(2)-release(版本核验记录见 docs/release-0.2.1.md#L51)。载荷包 packages/bash-win32-x64/ 只存元数据与钉版指针,真正的二进制通过 npm 可选依赖分发。
"确定性"体现在三道锁:
- 版本钉死:上游 release tag、资产文件名、字节数全部固定在 lib/shells.js#L144-L181 的
SHELL_UPSTREAM_PINS表中,改一处即全局生效; - SHA-256 双重校验:压缩包整体摘要 + 解压后
bash.exe单独摘要,安装时逐一比对; - 默认不碰系统 shell:
allowSystemShellFallback默认为false,插件绝不悄悄回退到系统 PATH 上的 bash——因为 Windows 的%SystemRoot%\System32\bash.exe其实是 WSL 启动器,误用它会把命令悄悄送进另一个 Linux 发行版执行(相关防御逻辑见 lib/shells.js#L471-L487)。
载荷缺失时怎么办?provision-shells兜底
如果 registry 镜像没同步平台载荷包,安装会静默跳过(退出码照样是 0)。此时官方兜底命令绕开 registry,直接取上游钉版资产并校验摘要:
npx --yes dsh-ops@latest provision-shells --bash装好后写入<DSH_HOME>/dsh-ops/shells,跨 profile 共享。详见 README.md#L79-L105。
双引擎如何"为 AI 兜底"?细节里全是安全感 🛡️
1. 严格参数校验,拒绝一切"自作聪明"
ops_bash的参数是封闭集合:command、description、script_path、workdir、timeoutMs、graceMs。模型若把宿主工具的run_in_background套过来,会被明确拒绝而不是静默前台执行到超时(约 24.9 天的上限MAX_BASH_TIMEOUT_MS)。参数校验逻辑见 lib/shells.js#L821-L831。
2. 长脚本走文件,杜绝 JSON 转义翻车
超过约 1 KB、含 heredoc/引号/反斜杠/中文的多行脚本,提示词要求 AI先写文件、再传script_path,而不是把整段脚本塞进 JSON 参数——这直接降低了MALFORMED_RESPONSE整轮作废的概率。
3. 沙箱里也能跑:MSYS IPC 兼容层
受限权限模式下,Windows 沙箱的令牌限制会让 MSYS 的信号管道创建失败(Win32 5 / 0xC0000142)。dsh-ops 用 native/bash-ipc/ 中两个小代理 DLL 重定向 MSYS 私有管道创建,仅补上 DSH 限制令牌缺失的 SID,不触碰令牌本身、不做文件系统钩子、失败即关闭(fail closed)。这意味着bash 梯级在受限沙箱和完全权限下都成立,不会降级放行。
4. 只报告,不崩溃
梯级解析是纯只读、绝不抛错的:某个 shell 缺失只会让该级从提示词中消失(available: false+ 原因说明),插件照常激活。诊断时执行ladder命令即可看到本机实际可用的每一级梯级:
node "%USERPROFILE%\.dsh\profiles\<profile>\node_modules\dsh-ops\bin\dsh-ops.mjs" ladder一键安装:让双引擎就位 🚀
在目标 DSH 应用的插件市场搜索 npm 包名dsh-ops安装启用即可;或命令行一键安装:
npx --yes dsh-ops@latest install --profile desktopshell 组件(dsh-ops-bash & powershell 7)首次安装默认开启,bash 与 PowerShell 7 梯级即刻生效。配置项如publishBashTool、shellPolicy可在 DSH 配置编辑器中调整,说明见 README.md#L124-L152。
⚠️ 0.3.0 仅支持 Windows x64,目标宿主为 DSH
0.2.0-rc.2;Linux/macOS/ARM64 不在发布范围。
总结
| 问题 | dsh-ops 的答案 |
|---|---|
| AI 命令反复报错烧 Token? | bash 优先 + "报错原地修"的提示词约束,切断换 shell 重试 |
| Windows 原生操作怎么办? | 随包 PowerShell 7.6.6 作为第三梯级兜底 |
| 版本不可控/被污染? | 上游钉版 + SHA-256 双重摘要校验,默认禁用系统回退 |
| 沙箱下 bash 跑不起来? | 私有 MSYS IPC 兼容层,受限令牌下也能执行 |
一句话概括:dsh-ops 用"工具包 → bash 5.3.15 → PowerShell 7.6"的三级梯级,把 AI 在 Windows 上执行命令的不确定性,换成了版本钉死、摘要校验、权限对齐的确定性兜底——省下的不只是一轮轮重试的 Token,还有任务的整体耗时。
更多设计细节可查阅 docs/native-ptc.md、lib/shells.js 模块注释与 CHANGELOG.md。
- dsh-plugin
- AI 插件
- AI 应用
【免费下载链接】dsh-ops
A toolkit for low-level operations in DSH, designed to reduce token usage and task execution time / DSH 底层操作工具插件,旨在减少 Token 消耗与任务耗时
相关推荐
7个核心机制揭秘:AWX如何让Ansible Playbook执行效率提升300%
7个核心机制揭秘:AWX如何让Ansible Playbook执行效率提升300% AWX是基于Ansible构建的开源自动化平台,提供Web界面、REST A
后端运维任务调度Upscayl 完整指南:免费开源 AI 图片放大工具,模糊照片快速变高清
Upscayl 完整指南:免费开源 AI 图片放大工具,模糊照片快速变高清 Upscayl 是一款免费开源的 AI 图像超分辨率工具,支持 Linux、macO
人工智能AI 应用图像处理桌面应用LeechCore性能优化指南:如何提升FPGA设备内存读取速度
LeechCore性能优化指南:如何提升FPGA设备内存读取速度 LeechCore是一款强大的物理内存获取库,配合LeechAgent远程内存获取代理,为内存
网络安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考