dsh-quiet-subagents:主会话静默接收子智能体消息

前言

在 DeepSeek Harness(DSH)里用 subagent 或 subagent_fork 派生子智能体时,子进程一旦调用 send_message 或完成结算,消息往往会切入当前正在执行的主回合,打断主会话的思路。若主会话正在做长任务,而子智能体只是在采集数据或跑脚本,更理想的做法是:主回合先做完自己的事,子智能体的结果在下一回合再以可读气泡形式出现。DSH 社区插件 dsh-quiet-subagents(维护者 Twens03,分类:工作流)针对的就是这一调度问题:它不改造子智能体本身,只改变直接子智能体消息何时投递。

这是什么

dsh-quiet-subagents 是面向 DeepSeek Harness 的工作流插件。简介可概括为:会话级、需手动开启、一次性生效的「静默模式」,面向直接子智能体;主会话先完成当前工作,子智能体结果在下一回合处理。

静默模式开启后,子智能体的 send_message 与完成通知不会 steer 进正在运行的主回合,而是暂存在 Web 输入框上方的 QueueDock,在下一回合合并成一条人类可读气泡投递。Agent Teams 的 team-message 与普通用户消息不受影响。

核心功能

以下能力均来自插件 README 与 package.json 说明,当前发布版本 v0.2.1,要求 DSH >= 0.2.1-rc.2,许可证 MIT。插件为纯 ESM JavaScript,无构建步骤;仅处理本地 DSH 事件,默认无网络请求与遥测。

  • 按会话生效:只有手动开启静默的主会话受影响。
  • 手动开启且一次性:须显式 arm;投递完成后自动 disarm(时机可配置)。
  • 仅直接子智能体:配合 subagent / subagent_fork;不改动 Agent Teams 与普通用户消息路径。
  • 默认每个孩子一条气泡:消息与完成通知合并为一条 QueueDock 项,结算时在原位置刷新。
  • 气泡标题可读:默认 humanize=true,标题不含子 UUID;调试时可设为 false 保留原始运行时文本。
  • 可配置自动关闭:在气泡被领取时关闭,或在主会话回复后再关闭。
  • 三种结算投递模式:coalesce(默认合并)、always、never(有消息时不单独发完成气泡)。
  • 插件详情页设置卡片:在 Plugins 页面配置,无需改 YAML。
  • 可选 JSONL 日志:通过 logFile 写事件证据,便于排查。

安装与启用

插件目前通过 GitHub 分发,而非 npm。安装前请自行查看仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,只应安装你信任的来源。

在运行 DSH 的机器上,桌面 profile 安装命令为:

dsh plugin --profile desktop add github:Twens03/dsh-quiet-subagents

若要在 Web 应用中使用,需对 web profile 单独安装(DSH 插件按 profile 隔离):

dsh plugin --profile web add github:Twens03/dsh-quiet-subagents

固定到某次提交时,在仓库名后加 #<commit-sha>。也可从 GitHub Releases 下载 ZIP,在 DSH Web 的 Plugins 里通过 Add plugin 安装解压目录,启用后重启 DSH,并在插件详情中确认出现 Quiet subagents 设置卡片。

若 DSH 未自动把包加入 bundle 列表,需在 profile 的 dsh.profile.bundles 中加入 "dsh-quiet-subagents" 并重启。插件不自动更新,升级需替换安装目录或重新执行 add 命令后重启。

Node 版本需满足 package.json 中 engines.node:^22.19 || >=24。

典型用法

在主会话中按顺序操作即可复现 README 中的 Quick start。

  1. 开启静默模式,在主会话输入:
quiet_on
  1. 启动直接子智能体,让其自行工作并在需要时 send_message。
  2. 继续主回合自己的工作,不要轮询、sleep 或专门读子日志来等子进程。
  3. 主回合工作结束后正常结束该回合。
  4. 下一回合,子智能体结果以 QueueDock 气泡或常规投递消息出现。
  5. 该次子交互投递后,静默模式会自动 disarm。

提前结束静默:

quiet_off

查看状态(默认不暴露子 UUID):

quiet_status

需要强调:静默投递是异步的,目的不是让主回合同步等待子智能体。若必须在同一回合内用到子结果,不应使用本插件,应让原生消息 steer 进来,或使用 Agent Teams 的 spawn_teammate + wait_agent。quiet_off 不会加速已排队气泡,只停止后续静默处理。

配置说明

打开 Plugins → dsh-quiet-subagents,在设置卡片中修改项;保存到 profile 后需重启 DSH 生效。常用项如下(默认值以 README 为准):

配置项 默认 含义概要
enabled true false 时关闭全部 hook 与工具
onlyCompleted true 失败或中止的结算是否直通
autoOff delivered delivered:气泡被领取即 disarm;replied:投递后等主会话 turn-stopping 再 disarm
ttlTurns 3 arm 后若无子消息,若干回合后 fallback 关闭
settledDelivery coalesce coalesce / always / never
humanize true false 保留含 child id 的原始文本
language auto auto / zh / en
debug false 是否镜像事件到 DSH 日志
logFile 未设置 可选 JSONL 路径

适用场景与注意

适合在以下情况使用(与 README 一致):

  • 主会话做长任务,子智能体仅采集数据或执行脚本;
  • 不希望子智能体中间消息打断当前回合的模型流;
  • 子结果可以在主回合结束后再处理。

DSH 的 agent 与 queue 界面仍在演进,大版本升级后建议重新走一遍静默流程。README 注明在 0.2.1-rc.2 上开发与 GUI 测试;0.2.1-rc.3 未改动本插件集成点,升级后仍建议做一次快速回归。

社区目录 SkillHub 插件页 与 GitHub 仓库相互独立引用同一开源项目;SkillHub 并非 DeepSeek / 幻方官方应用商店,安装与配置以仓库 README 为准。

结尾

dsh-quiet-subagents 用会话级、手动、一次性的静默模式,把直接子智能体的消息延后到下一回合,减少长任务主会话被打断。安装、命令与配置均可在官方 README 核对。

  • 目录页:https://www.skillhub.cn/plugins/Twens03/dsh-quiet-subagents
  • GitHub:https://github.com/Twens03/dsh-quiet-subagents
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜