前言¶
在 DSH 里跑子代理(subagent)时,模型回复里有时会留下「孤立」的工具调用块:上下文里已经没有对应的工具结果,或结构不完整,仍占在消息流里。这类片段会干扰后续轮次解析、展示和调试。手工删改既慢又容易漏。
下面介绍社区插件 dsh-subagent-output-sanitizer(维护者 vb2250158,分类:工作流)。它在 DSH 配置层面对子代理输出做清理,目标是去掉这些孤立的工具块,让消息链更干净。插件在目录中的展示名为英文 Subagent output cleanup、中文 子代理输出清理(随 DSH 界面语言切换)。
这是什么¶
dsh-subagent-output-sanitizer 是开源 DSH 插件,核心能力一句话:清理子代理消息中的孤立工具块。
- 仓库:github.com/vb2250158/dsh-subagent-output-sanitizer
- 社区目录页:skillhub.cn 插件条目
- 许可证:MIT(见仓库 README)
- 当前包版本(package.json):0.1.4
本 release 要求 DSH 0.2.1-alpha.1 或兼容的 0.2 系列;细节见仓库内 docs/dsh-0.2-compatibility.md。
核心功能¶
依据 README,插件当前明确描述的能力只有一项:
- 子代理输出清理:处理子代理消息,移除孤立的工具块,避免无效工具片段残留在对话结构中。
插件通过 dsh.bundle 声明,安装后会把自己的配置补丁合并进当前 profile,无需在本仓库里长期保存插件源码(多机同步场景下,profile 侧通常只保留仓库地址、固定提交、启停与配置)。
安装与启用¶
安装前请自行阅读仓库源码与 MIT 许可证;插件随 当前 DSH 进程权限 运行,只从可信来源、固定提交安装。
官方 README 给出的步骤是:先锁定公开仓库的某一提交,再通过 DSH 官方入口安装(将 <commit> 换成实际 commit SHA):
pnpm dsh plugin --profile web add github:vb2250158/dsh-subagent-output-sanitizer#<commit>
安装完成后,插件包会把 cordis.patch.yml 对应的配置层加入该 profile。
配置存放位置¶
插件相关配置保存在 DSH profile 的 cordis.patch.yml 中。若你用 Git 同步 profile 仓库,一般只同步仓库地址、固定提交、启停状态和配置内容,不必把插件源码放进同一仓库。
验证与开发自检¶
维护者在 README 中给出的本地校验命令如下(在插件源码目录执行):
npm test
npm pack --dry-run
npm test 对应 node --test tests/*.test.mjs,用于跑包内测试;npm pack --dry-run 用于检查发布文件列表是否与 package.json 的 files 字段一致。
适用场景与注意¶
适合谁
- 经常在 DSH 工作流里启用子代理,且遇到过消息里残留无效工具块的情况。
- 已在使用或计划使用 DSH 0.2.x,并愿意通过 profile 插件扩展行为。
使用时注意
- 版本:必须满足 DSH 0.2.1-alpha.1 或兼容 0.2;升级 DSH 前对照仓库 compatibility 文档。
- 安装方式:使用 README 中的
pnpm dsh plugin --profile web add github:...#<commit>,不要省略 commit pinning。 - 权限与安全:插件与 DSH 同进程;安装前检查源码与许可证,目录页(SkillHub)为社区索引,与 DeepSeek / 幻方无官方从属关系。
- 能力边界:README 仅说明清理孤立工具块,未列出更多可配置项;具体行为以
cordis.patch.yml与lib/index.js为准。
结尾¶
dsh-subagent-output-sanitizer 定位清晰:在工作流侧自动清理子代理输出里的孤立工具块,减少手工修消息的成本。需要固定 commit 安装、在 profile 的 cordis.patch.yml 中管理配置,并确保 DSH 版本在 0.2 兼容范围内。
- 目录页:https://www.skillhub.cn/plugins/vb2250158/dsh-subagent-output-sanitizer
- GitHub:https://github.com/vb2250158/dsh-subagent-output-sanitizer