dsh-session-message:DSH 跨工作区会话消息

前言

在 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。

典型用法

  1. 在发消息侧让 Agent 先调用 session_list,必要时用 workspace、query 筛出目标会话 id 或标题。
  2. 调用 session_send,传入 session_id(或 title + 可选 workspace)和 message。
  3. 接收方 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
羽毛球分组比赛记分
小程序二维码

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

小夜