前言¶
在 DeepSeek Harness(DSH)里,每个工作区、每个会话通常是独立上下文:A 会话里的 Agent 无法直接往 B 会话里塞一条「用户说的话」,除非你手动复制粘贴或自己写桥接逻辑。多工作区协作、让一个会话通知另一个会话继续干活,这类工作流在原生界面里没有现成通道。
下面介绍社区插件 dsh-session-message(维护者 shutongX,分类:工作流)。它为 DSH 增加跨会话消息能力:一个会话可以通过工具向同一 DSH 进程内任意工作区的另一个会话投递一条 user 角色消息,对方 Agent 收到后可用同一工具回发。
这是什么¶
插件仓库:shutongX/dsh-session-message。目录页:SkillHub 插件页。
一句话定位:Cross-session messaging for DeepSeek Harness —— 列出本机 DSH 上可联系的会话,并向目标会话发送 user 消息;目标空闲会被唤醒,冷会话会先恢复再投递。
与「只在当前会话里聊天」相比,它解决的是进程内多会话、多工作区之间的单向/双向消息投递,而不是远程机器或第二个 DSH 实例之间的通信。
核心功能¶
插件向 Agent 暴露两个工具。
session_list¶
列出当前这台 DSH 上所有能发消息的会话(跨所有工作区)。排除:归档会话、子代理会话、当前会话自身。包含:普通会话和 fork 出来的会话。
| 参数 | 说明 |
|---|---|
workspace |
按工作区标题或路径过滤(子串) |
query |
按会话标题或 id 过滤 |
include_blank |
是否包含尚未开始聊天的空会话,默认 true |
limit |
最多返回条数,1–50,默认 20 |
session_send¶
向指定会话发送消息正文(必填)。
| 参数 | 说明 |
|---|---|
session_id |
目标会话 id(推荐) |
title |
目标会话标题,精确匹配;不知道 id 时使用 |
workspace |
配合 title 缩小范围 |
message |
消息正文 |
delivery |
queue(默认)或 steer(插到对方当前回合的下一步) |
对方侧看到的消息带有固定前缀说明:来自哪个 Agent 会话、标题与工作区是什么;并提示这不是本会话用户直接输入,仅在需要对方回答或行动时再回复,回复同样使用 session_send。
行为要点(来自 README):
- 对方空闲时直接唤醒;正在跑任务则排队;冷会话自动恢复后再投递。
- 投递成功表示消息进入对方收件箱并已落盘,不表示对方 Agent 已经执行完毕。
- 消息上限 20000 字符;不能发给自己。
示意关系:
工作区 A 工作区 C
┌────────────┐ ┌────────────┐
│ 会话 B │ ── session_send ──▶ │ 会话 D │
│ (发消息) │ │ (收到一条 │
│ │ ◀── session_send ── │ user 消息)│
└────────────┘ 回复 └────────────┘
安装与启用¶
任选一种官方方式安装。装完后重启 DSH(或在支持 HMR 的 profile 里等待热加载)。
方式一:DSH 插件页
插件 → 添加插件 → 粘贴 Git 地址:
https://github.com/shutongX/dsh-session-message
方式二:自定义插件市场索引
DSH → 插件 → 实验性插件 → 更多 → 开启「自定义插件市场」→ 发现 → 添加索引源:
https://shutongX.github.io/dsh-plugins-index/index.json
之后在「发现」里安装即可。
方式三:命令行
dsh plugin --profile desktop add https://github.com/shutongX/dsh-session-message
若曾用开发目录安装过旧的 @dsh-external/<name> 版本,应先移除旧插件再装当前无 scope 包,避免同一功能加载两份。
package.json 中声明的 DSH 引擎范围:>=0.2.1-rc.1 <3。许可证:MIT。
典型用法¶
- 在发消息侧让 Agent 先调用
session_list,必要时用workspace、query筛出目标会话 id 或标题。 - 调用
session_send,传入session_id(或title+ 可选workspace)和message。 - 接收方 Agent 在需要回应时,用 README 提示的形式回发,例如指定发件方
session_id:
session_send({ "session_id": "session-xxxx", "message": "..." })
需要打断对方当前回合、把消息插到下一步时,可将 delivery 设为 steer;默认 queue 适合对方忙时排队。
适用场景与注意¶
适合谁
- 同一 DSH 桌面/进程内,多个工作区、多个会话需要互相通知、派活或汇总结果的工作流。
- 希望由 Agent 自行查会话列表、选目标并投递,而不是人工切窗口复制内容。
边界与限制
- 只能发给同一个 DSH 进程里的会话;换机器、换进程无效。
- 归档会话不能发;子代理会话不能发(收不了可靠回复),应由父会话发送。
- 落盘未确认会报错;此时消息可能已送达,重发前应先确认,避免重复投递。
安全与信任
插件以当前 DSH 进程权限运行,能列出进程内会话并向其注入 user 消息。安装前建议阅读 lib/index.js 与 lib/core.js 源码,并确认 MIT 许可证是否符合你的环境要求。DSH 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-session-message 把「会话 A 对用户说话」这件事扩展到「会话 A 让会话 B 的 Agent 看到一条 user 消息并可回发」,适合进程内的多 Agent 协作工作流。安装与参数以 README 为准。
- 目录页:https://www.skillhub.cn/plugins/shutongX/dsh-session-message
- GitHub:https://github.com/shutongX/dsh-session-message