前言¶
在 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 时可少传参数。
典型用法¶
- 先确认 dsh-im 已连上机器人,并有一个投递目标(界面创建或
im_target_add)。 - 若不确定
botId/targetId,让模型调用im_targets只读列表。 - 在需要分条展示时,让模型多次调用
im_say,每次一段短文本;各次调用经ctx.dshIm.send各自成为一条 IM 消息。 - 通道仍会在回合结束时发送最终答复;
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