dsh-subagent-cwd

DSH PLUGIN开发与运行时

仓库 lynx-gt/dsh-subagent-cwd · npm dsh-subagent-cwd

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 增强子代理委托,支持按调用指定工作目录(cwd),并附带必要的 provider 补丁,让子代理在指定目录中运行。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 0 · 未关闭 issue 1
最近更新 2026-08-21 创建于 2026-08-14
README 7.3 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:lynx-gt/dsh-subagent-cwd
兼容 DSH 版本0.2.0-rc.2 等 11 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、@deepseek-ai/[email protected] 等 7 个需要同时安装的同级依赖
npm 包名dsh-subagent-cwd可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-subagent-cwd:DeepSeek Harness 的子代理委派增强插件,支持每次调用指定工作目录

  • 按调用指定cwd
  • 覆盖模型/提供商
  • 支持@preset引用
  • 附带provider补丁

适用场景

终端命令文件读写智能体编排

上游标签

deepseek-harnessdshdsh-pluginsubagent

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询
— · 其它检查项
  • L4_0_SANDBOX 沙盒安装判定 方式:沙盒安装执行

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方lynx-gt仓库 dsh-subagent-cwd · 默认分支 master
分类开发与运行时developer
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 0 / 1收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-08-21最后推送 2026-08-21
本站收录2026-08-20首次进入本站目录的时间

README 全文

7.3 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-subagent-cwd

为 DeepSeek Harness(dsh)提供增强版子代理委派工具,
支持按次指定工作目录(cwd)。

包含 dsh-subagent-tools 的全部能力(按次 model / provider /
persona / toolFilter 覆盖、@preset: 引用、provider/model 复合 id)再加按次 cwd 参数——并附带
让 cwd 真正生效所需的两处进程内 provider 补丁。

| English | 中文 |

两个包二选一,不要同时装

包 按次 model/provider/persona/toolFilter @preset: cwd 补丁
dsh-subagent-tools ✅ ✅ ❌ 无(纯 bundle)
dsh-subagent-cwd(本包) ✅ ✅ ✅ 2 处 provider 补丁

二选一安装。两者暴露相同的工具面(subagent / subagent_fork),同时装会因工具名冲突互相打架。

为什么 cwd 需要补丁(而其他功能不需要)

SubagentStartRequest 没有 cwd 字段,进程内驱动层构建子代理会话 meta 时只用
childSessionMeta(parent, ...)——按次 cwd 根本不会透传。进程内子代理有两条创建路径,两条都必须
打补丁,否则就会踩到经典陷阱:前台路径认 cwd、后台路径静默忽略:

路径 要改的包 文件
前台(one-shot) @deepseek-ai/dsh-subagent-in-process-driver lib/index.js
后台(continuable) @deepseek-ai/dsh-subagent lib/index.js(bundle!不是 lib/types/continuation.js)

第二处是 bundle 陷阱:该包 package.json 的 main/exports 指向 lib/index.js(内含 continuation
manager 的内联副本)。改长得像源码的 lib/types/continuation.js 不生效——必须改并验证 bundle。

persona × preset 并存(补丁 v2)

preset 与 persona 同时给出时(例如
subagent(preset: "@preset:router-standard", persona: "@preset:翻译员")),旧补丁会把 per-call
persona 注册成 deployment:persona 段,随后被目标 preset 的 router-bootstrap 类插件按名删除
(applyPersona 会清掉所有名字含 "persona" 的段)——角色 persona 静默丢失。

v2 补丁(install.ps1 的 hunk 3 / hunk 5,三态兼容:原始 / 旧补丁 / 新补丁均可升级)改为:
- preset + persona 同给时跳过 deployment:persona 注册;
- recompose 之后把 per-call persona 注册为 delegation:role(order 1,名字不含
"persona"),router 删不到它,于是 preset 自身的推理 persona 与委派的角色 persona 并存。

只传 persona(无 preset)时行为不变:仍走 deployment:persona 的 shadow 语义。

补丁 v2 的 hunk 3–5 目前仅在 install.ps1(Windows)实现;POSIX 的 install.sh
preset hunks 将在后续补齐。届时在 Linux 上 preset 参数会被接受,但在该补齐落地前不会
真正 recompose。

⚠️ 限制警告:router-style 预设下 persona 失效

即使有补丁 v2,当子代理/成员组合使用 router-style 预设(如 @preset:dsh-router-standard)时,
per-call persona 依然不会进入系统提示。这是 router-style 预设的机制性行为:其
system-prompt/assemble 钩子会删除所有段名含 "persona" 的段,并注入预设自带的动态
persona。因此最终生效的只有预设自带动态 persona,自定义角色文本被静默丢弃。

缓解建议:
- a) 改用非 router-style 预设(如 standard),让 persona 参数正常生效;
- b) 把角色设定通过消息层注入(首轮 prompt 前缀 / 任务消息前缀,如 agent-teams 的
拼接机制),不依赖 cwd;
- c) 或接受 router-style 下 persona 参数失效(预设动态 persona 生效)。

安装

# 1. 安装插件(npm / git / 本地目录)
dsh plugin --profile web add dsh-subagent-cwd

# 2. 应用两处驱动层补丁(cwd 生效必需)
powershell -ExecutionPolicy Bypass -File patches\install.ps1    # Windows
# 或:./patches/install.sh                                       # POSIX

安装后重启 dsh --profile web。

升级 dsh 之后

dsh 升级会重写 node_modules,两处补丁都会丢失。每次升级后:

# 重跑安装脚本(幂等;anchor 不匹配会自动报错)
powershell -ExecutionPolicy Bypass -File patches\install.ps1

若安装脚本报 "anchor not found",说明目标包结构变了——检查是否有新版本,或提 issue。

卸载

powershell -ExecutionPolicy Bypass -File patches\uninstall.ps1   # Windows
# 或:./patches/uninstall.sh                                     # POSIX
dsh plugin --profile web remove dsh-subagent-cwd

示例

让子代理在不注入项目 AGENTS.md 的目录里干活:
subagent(description="总结这个文件", prompt="...", cwd="D:\\projects\\scratch\\notes")

设计要点

  • 工具面是 bundle——官方 tool-subagent / tool-subagent-fork 行被禁用并替换,工具面本身不改任何官方文件。
  • cwd 是唯一无法保持 bundle-only 的能力。 SubagentStartRequest 没有 cwd 字段,按次 cwd 必须由进程内
    subagent provider 透传——所以需要 patches/ 里的两处小补丁(各一个 hunk),幂等、首次运行自动备份、
    node --check 校验。这就是本包与 dsh-subagent-tools 分开存在的原因。
  • 版本契约: peerDependencies 锁定公开 dsh 包(0.1.1-rc.1);补丁针对同一版本。dsh 升级会重写
    dsh 安装的 node_modules 并清掉两处补丁——每次升级后重跑 patches/install.ps1 / install.sh
    (见"升级 dsh 之后")。bundle 本身装在 profile 自己的 node_modules,升级后仍在,但官方 API 一旦变化,
    peerDependencies 会显式拒绝加载。

已验证

在干净(无本地补丁)的 dsh 0.1.1-rc.1 Windows 环境实测(headless + web):

  • dsh-subagent-tools 的全部验证项(按次 model/provider/persona/toolFilter、@preset:、presetHints)✅
  • cwd 前台路径 ✅ —— 子代理的 pwd 和沙箱工作区都切到指定目录
  • cwd 后台(continuable)路径 ✅ —— 后台子代理同样生效("前台认、后台静默忽略"的经典陷阱未复现)
  • toolFilter 作用域 ✅
  • patches/install.ps1 与 patches/uninstall.ps1 往返 ✅(备份→打补丁→node --check→还原→复验)

限制

  • 补丁已适配 rc.1(0.1.1-rc.1)。 两处补丁匹配 rc.1 官方源码的精确锚点;dsh 再次升级后若锚点失效,重跑
    patches/install.ps1(报 "anchor not found" 即需适配新版本)。rc.1 官方已原生支持按次 persona / toolFilter
    (applyChildComposition 直接消费 request.persona),补丁只补官方仍缺的按次 cwd 与 preset recompose。
  • @preset: 依赖本地预设布局 —— 与 dsh-subagent-tools 相同。
  • Web 会话需要 preset 适配脚本(install-preset.ps1)——原因同 dsh-subagent-tools。

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-subagent-cwd 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:lynx-gt/dsh-subagent-cwd` 即可。对应的 npm 包名是 `dsh-subagent-cwd`。

dsh-subagent-cwd 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-subagent-cwd 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-subagent-cwd 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-subagent-cwd 需要什么运行环境?

需要同时安装 @deepseek-ai/cordis@^4.0.1、@deepseek-ai/[email protected]、@deepseek-ai/[email protected]、@deepseek-ai/[email protected]、@deepseek-ai/[email protected]。环境不满足时安装会失败,建议先确认本机版本。

dsh-subagent-cwd 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-subagent-cwd 有哪些功能?

按调用指定cwd、覆盖模型/提供商、支持@preset引用、附带provider补丁。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

lynx-gt 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。