前言¶
在 DeepSeek Harness(DSH)里,模型往往通过 Shell 工具拼管道、改目录、读文件。Shell 方便,但也容易在 PowerShell 与 Bash 语法之间纠缠,用字符串拼多步命令时也不如用结构化工具调用清晰。若希望「按 argv 直接跑程序」,并在 PTC 模式下用 spawn 配合可选的文件系统查询工具替代默认 Shell,可以安装社区插件 @snylonue/dsh-spawn。下面介绍它是什么、提供哪些能力,以及如何安装与选用预设。
这是什么¶
@snylonue/dsh-spawn(仓库 snylonue/dsh-spawn)由维护者 snylonue 发布,在 SkillHub 目录中归类为客户端插件。简介为「A tool to enable bashless dsh」:核心是给 DSH 提供 spawn 工具,在不经过 Shell 的情况下直接执行命令;另可选加载 stat、list_dir 两个独立入口,用于文件系统查询。
npm 包版本为 2.0.0(MIT),引擎要求 DSH 0.2.1-rc.2。
核心功能¶
spawn:直接 argv 执行¶
spawn 每次调用都会启动一个 job,并依赖 DSH 的 jobs、sandbox、sandboxPolicy、workingDirectory 等服务。前台调用会等待命令结束;若超时,job 会转入后台。基础设施类失败在前台会抛错,后台 job 记为 failed;命令非零退出码仍作为普通结果返回,与 Shell 里「命令失败但调用成功」的语义一致。
stat 与 list_dir(可选)¶
主包 @snylonue/dsh-spawn 只注册 spawn。需要目录列表或文件状态时,应分别加载:
@snylonue/dsh-spawn/stat@snylonue/dsh-spawn/list-dir
顶层配置里的 tool-stat、tool-list-dir 与预设内的副本是独立声明,默认禁用顶层副本;若使用 PTC-spawn 预设,需在预设子项里改 disabled,而不是只改顶层。
工作目录与主机要求¶
仅支持 DSH 0.2.1-rc.2。spawn、stat、list_dir 依赖宿主机的 working-directory 服务(含切换目录、缺失目录恢复)。相对 cwd 覆盖会相对当前工作目录解析;沙箱 workspace 根目录不变。README 明确说明:没有旧版 host 探测,也没有 workspace/header cwd 回退。
PTC-spawn 预设¶
插件提供预设 PTC-spawn(id:ptc-spawn),基于 PTC 模式,用上述工具替代 shell。该预设默认启用 spawn、stat、list_dir 三者。若只想保留 spawn,可在 preset-ptc-spawn.config.plugins 里对对应条目设 disabled: true,例如:
- id: tool-stat
name: '@snylonue/dsh-spawn/stat'
disabled: true
- id: tool-list-dir
name: '@snylonue/dsh-spawn/list-dir'
disabled: true
README 提到:用 TypeScript 等方式组合多程序与处理输出,往往比让模型在 Bash/PowerShell 里挣扎更可控——这是设计动机,并非第三方测评结论。
安装与启用¶
在对应 profile 已就绪、且 npm 包已发布的前提下,按 README 安装:
dsh plugin --profile web add @snylonue/dsh-spawn
请将 web 换成你实际使用的 profile 名称。安装前请确认本机 DSH 版本为 0.2.1-rc.2,并已具备 working-directory 等相关服务;插件以当前 DSH 进程权限运行,安装前应自行查看 GitHub 源码 与 LICENSE。
若要用完整 PTC-spawn 能力栈,在 profile 配置中启用 id 为 ptc-spawn 的预设(具体字段名以你 profile 的 Cordis 补丁为准);仅主入口则只加载默认导出的 spawn。
典型用法(概念)¶
资料未给出完整对话示例,用法可归纳为:
- 安装主包后,模型通过
spawn传入可执行文件与参数列表(argv),而非一整段 Shell 脚本。 - 需要列目录或 stat 时,额外加载
@snylonue/dsh-spawn/list-dir或@snylonue/dsh-spawn/stat,或启用 PTC-spawn 预设一次性打开三者。 - 需要限定当前目录时,使用 working-directory 服务支持的相对
cwd;不要假设能靠旧版 workspace 头或 header 自动定 cwd。
具体 tool schema 以发布包内类型定义(dist/index.d.ts 等)为准。
适用场景与注意¶
适合谁: 已在 DSH 0.2.1-rc.2 上跑 PTC 或希望减少 Shell 依赖的智能体开发者;需要 job 沙箱、显式工作目录、且能接受每次执行走 job 模型的场景。
注意:
- 版本绑定严格,低于或高于 README /
package.json中engines.dsh的环境不受支持说明覆盖。 - 社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,DSH 生态本身是「一切皆插件」的独立社区形态。
- 不要凭仓库名自行拼接
dsh plugin add github:...;以 README 中的 npm 安装命令为准。
结尾¶
@snylonue/dsh-spawn 把「直接跑程序」和可选的文件查询拆成独立工具,并通过 PTC-spawn 预设提供无 Shell 的替代路径。若要进一步了解分类与简介,可看目录页 snylonue/dsh-spawn;实现细节与安装说明以 GitHub 仓库 README 为准。