dsh-im-bubble:让 IM 回复按句拆成多条独立气泡

前言

在 DSH 里接 IM 通道时,常见做法是装 @xmanrui/dsh-im,由通道把模型最终答复作为一条消息发出去。超过 1800 字才会按换行切段,模型无法在对话过程中声明「这一句单独成条」。若你希望像聊天软件那样分多条气泡推送进度、分步说明或分段结论,就需要在最终答复之外,有一条与 dsh-im 兼容的主动投递路径。下面介绍社区插件 dsh-im-bubble(维护者 nolighter,分类:联网工具),它通过 dsh-im 公开的 ctx.dshIm.send 契约注册工具,每次调用对应一条独立 IM 消息,且不修改 dsh-im 本体。

这是什么

dsh-im-bubble 是 DeepSeek Harness 插件,当前 package 版本为 0.1.0,许可 MIT。定位可以概括为:给 IM 通道补上「主动分条发送」——把一条逻辑回复拆成多个独立气泡,在最终通道答复到达之前先发出去。

它与 @xmanrui/dsh-im(或兼容分支)配合使用:不替换、不 patch dsh-im,只调用已文档化的主动投递接口,因此 dsh-im 升级一般不会因本插件产生冲突。

核心功能

插件向智能体暴露三个工具(名称与行为以 README 为准):

工具 作用
im_say 立刻把一段文本作为独立消息发出。可选 botId、targetId、format(plain 或 markdown)。
im_targets 只读列出已连接的机器人及其投递目标;当 im_say 报目标未知或不唯一时用于核对。
im_target_add 新建投递目标,无需在设置界面逐项点击;im_say 据此知道发给谁。

目标解析顺序(im_say):调用参数 → 插件配置里的 botId / targetId → 若当前仅有一个目标则使用该目标。没有任何目标时会提示创建;多个目标时会列出供选择。

依赖条件:

  • 已安装 @xmanrui/dsh-im(或兼容 fork),且至少连接一个机器人。
  • 该机器人下至少有一个投递目标:可在 设置 → IM 机器人 → ⚙ → 新建目标 创建,或用 im_target_add 创建。

运行环境:package.json 要求 Node.js >= 20。

安装与启用

官方推荐从插件名安装:

dsh plugin add dsh-im-bubble

从 Git 源码安装:

dsh plugin add git+https://github.com/nolighter/dsh-im-bubble.git

也可将插件目录复制到 <dsh profile>/node_modules/dsh-im-bubble,并在 cordis.patch.yml 末尾追加:

- insert:
    - id: dsh-im-bubble
      name: dsh-im-bubble

可选配置(DSH 设置中的插件配置,或写在 patch 条目里):

- insert:
    - id: dsh-im-bubble
      name: dsh-im-bubble
      config:
        botId: wx_xxxxxxxxxxxxxxxx
        targetId: tgt_xxxxxxxxxxxxxxxx

固定默认 bot 与 target 后,模型调用 im_say 时可少传参数。

典型用法

  1. 先确认 dsh-im 已连上机器人,并有一个投递目标(界面创建或 im_target_add)。
  2. 若不确定 botId / targetId,让模型调用 im_targets 只读列表。
  3. 在需要分条展示时,让模型多次调用 im_say,每次一段短文本;各次调用经 ctx.dshIm.send 各自成为一条 IM 消息。
  4. 通道仍会在回合结束时发送最终答复;im_say 只应负责额外的气泡,勿用其重复发送整段最终答案,否则用户会看到重复内容。

新建目标时,im_target_add 的 route 为 JSON 字符串。微信示例如 README:kind: "user",route 形如 {"toUserId":"..."};其他渠道以 dsh-im 的校验规则为准。目标 id 创建后不可编辑,路线错误需删除后重建。

适用场景与注意

适合:需要在 IM 里分步推送(进度、中间结论、多段说明),且已使用 dsh-im 作为 IM 通道的 DSH 部署。

注意:

  • 插件在 当前 DSH 进程权限 下运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。
  • 本插件属于社区生态;目录页托管于 SkillHub 插件页,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店条目。
  • 星标与社区热度以目录页为准;撰写时 GitHub 显示为 0 star,不代表功能不可用,仅说明传播面仍小。

结尾

dsh-im-bubble 用三个轻量工具补上了 dsh-im 默认「一条最终消息」模型下缺失的主动分条能力:调用即投递、与 dsh-im 升级解耦。若你的智能体需要在微信等 IM 里「多气泡、少长墙」,可先装 dsh-im,再执行 dsh plugin add dsh-im-bubble,配好 target 后让模型在合适节点调用 im_say。

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

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

Xiaoye