前言¶
在 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