前言¶
在 DeepSeek Harness(DSH)里并行开多个顶层会话时,工作上下文往往散落在不同 session 里:A 会话里刚写完方案,B 会话要继续实现,只能靠人工复制粘贴标题、摘要和待办。子 agent 有各自的边界,但父会话之间并没有内置的「交接」通道。
Session Messenger(会话信使)是社区维护的 DSH 插件,在同一 workspace 的顶层父会话之间投递纯文本消息,或由 agent 新建父会话并带上初始交接内容。它不替代 DSH 自带的会话管理,只是在现有 session controller 上以 queue 模式做单向投递。
这是什么¶
插件全名 dsh-session-messenger-plugin,维护者为 ALNLAqooq,在 SkillHub 目录中归类为工作流。当前 npm 包版本为 0.1.0,许可证 MIT。项目自述为社区项目,与 DeepSeek AI 无隶属或背书关系。
结构上分为两半:
- Host:向 agent 暴露
list_sessions、send_session_message、create_session三个工具。 - Client:在 composer 工具行左侧提供「转交 / Hand off」按钮,含会话选择器与消息框。
两条路径最终都通过 session controller 以纯文本信封写入对方会话日志;发送方在消息被接受后即可返回,不会阻塞等待对方回复。
核心功能¶
列举可投递的 sibling 会话¶
list_sessions 返回与调用方处于同一 workspace 的顶层会话(不含调用方自身、子 agent、其他 workspace)。可按标题子串或 session id 前缀过滤,默认最多 20 条,按最近活动时间排序。已归档会话不会出现在 UI 列表中。
向已有会话投递消息¶
send_session_message 将 1–20000 字符的纯文本投递到指定顶层会话。投递使用 sessionController.prompt 且 mode: "queue":目标空闲则开启新 turn,正在运行则在当前 turn 结束后再出现,不会打断对方。
新建父会话并交接¶
create_session 在当前 workspace 创建新的顶层父会话,沿用当前 agent preset 与 cwd,并可附带标题(最多 120 字符)与初始消息。
UI 转交¶
转交对话框支持按标题或 session id 搜索、选择同 workspace 其他顶层会话、填写纯文本,以及可选勾选「需要对方回复 / Ask for a reply」。默认不请求回复;仅当用户或工具显式设置 replyRequested: true 时,信封头才会标注「请求回复」。
消息信封格式¶
Host 工具会把正文包在可见的纯文本信封里,例如:
[跨会话消息 · 来自「<sender title>」 <sender session id> · 无需回复]
<message body>
信封是普通用户可见文本,不引入自定义事件类型,任何模型与任意会话日志均可直接阅读。
安装与启用¶
环境要求:带插件支持与 Web UI 的 DSH 桌面构建、dsh CLI 的 dsh plugin 子命令(本地开发可用 agent 侧的 plugin_manager)。插件为纯 ESM 加浏览器模块,无构建步骤。
推荐从 npm 安装。将 web 换成你实际使用的 DSH profile 名称:
dsh plugin --profile web add dsh-session-messenger-plugin
也可从 GitHub 源安装:
dsh plugin --profile web add github:ALNLAqooq/dsh-session-messenger-plugin
安装后刷新 Web UI;若 Client 半未热更新,可重启 DSH。插件以当前 DSH 进程权限运行,安装前建议在 GitHub 查阅源码与 MIT 许可证。
典型用法¶
通过 agent 工具交接¶
在源会话中可以让 agent 概括当前工作并送到指定标题的会话。README 给出的流程是:
- 调用
list_sessions({ "query": "Test session 1" })解析精确sessionId。 - 调用
send_session_message({ "sessionId": "session-…", "message": "…" })。
新建会话并交接时,可让 agent 调用:
{
"title": "Handoff: auth refactor",
"message": "…",
"replyRequested": false
}
对应工具为 create_session。
通过转交按钮¶
在 composer 左侧打开转交对话框,选定目标顶层会话并填写消息即可。需要对方有意识回复时再勾选「需要对方回复」;否则收件方仅收到标注「无需回复」的信息性消息。
回复语义说明¶
replyRequested 只改变信封措辞,不建立 inbox,也不做请求/响应关联。若对方回复,只是向发送方 session 再发一条普通 send_session_message,发送方不会同步等待。
适用场景与限制¶
适合:同一项目 workspace 内多父会话并行时的任务摘要转交、开新会话承接重构或专项、让人工通过 UI 快速投递上下文而不离开 composer。
不适合或做不到:
- 跨 workspace、跨机器消息。
- 向子 agent 会话投递或列出子 agent。
- 附件、图片等非纯文本内容。
- 一次广播多个目标;每次调用仅一个目标。
- 20,000 字符消息上限(信封额外占用)。
插件自述无自有遥测与额外网络请求;消息写入双方正常会话日志,并按你当前 DSH profile 所用 provider 参与模型上下文。UI 使用 DSH 主题 token,不加载远程资源。
结尾¶
Session Messenger 把「父会话之间的纯文本交接」做成工具与按钮两套入口,语义简单:queue 投递、fire-and-forget。若你已在同一 workspace 开多个顶层 session,可把重复的复制粘贴换成可检索的会话列表与统一信封格式。
- 目录页:SkillHub · dsh-session-messenger-plugin
- 仓库:https://github.com/ALNLAqooq/dsh-session-messenger-plugin
- npm 包:
dsh-session-messenger-plugin