dsh-tool-session-message:DSH 跨会话消息投递

前言

在 DeepSeek Harness(DSH)里开多个会话窗口时,各窗口彼此独立:模型只能看到当前会话的上下文,无法直接询问「另一个窗口在做什么」,也难以把新事实交给对方继续处理。常见做法是人工复制粘贴 session id 和消息,或在外部脚本里再编排一遍,既打断工作流,也容易漏掉回复路径。

下面介绍社区插件 dsh-tool-session-message(维护者 BigBugy,分类:工作流)。它在同一 DSH 宿主进程内注册工具 session_send,把一条 user 消息投递到指定 session id 的目标会话,并在消息信封里附带发送方 Session ID,便于多窗口互相认身份并按同样方式回传。

这是什么

dsh-tool-session-message 面向 DeepSeek Harness 的跨会话消息能力:通过 session_send(session_id, message, mode?) 向同一 DSH host 上的任意会话发送用户消息,让对方开始新一轮对话,或在运行中的轮次里插话(steer 模式)。每条投递消息会自动加上身份头,说明来源 session 以及如何用 session_send 回复。

插件基于 Cordis 注入 sessionController 服务,不发布到 npm,需通过 github: 规格或本地 link 安装。当前 package 版本为 0.2.0,许可证 MIT;要求 DSH 0.2.1-rc.5 或兼容版本(依赖 sessionController)。

核心功能

session_send 工具

  • 参数:session_id(须保留 session- 前缀)、message、可选 mode。
  • mode:默认 "followup",作为目标会话的下一条 user 轮次排队;"steer" 则注入到正在执行的轮次中。
  • 返回值:宿主确认的结构化 JSON,字段包括 ok、from、to、mode、requestId、result。

身份信封

接收方看到的文本会自动前缀如下信息(便于知道谁发的、如何回传):

【跨会话消息 · session_send】
from: session-xxxxxxxx-...
reply: session_send(session_id="session-xxxxxxxx-...", message="...")

运行边界

  • 目标会话必须与发送方处于同一 DSH 宿主进程(例如桌面应用的多窗口场景满足此条件)。
  • 工具仅调用宿主的 sessionController.prompt,无网络、无写文件、无 shell;消息会以普通 user 消息形式写入目标会话 transcript。

安装与启用

桌面应用(推荐)

在 DSH 中打开 Settings → Plugins → Add plugin,粘贴:

github:BigBugy/dsh-tool-session-message

插件管理器支持 npm 包名、GitHub 仓库与本地目录;本包未发布到 npm,请使用上述 github: 规格。

CLI 部署

仅 CLI 部署时使用:

dsh plugin --profile <profile> add github:BigBugy/dsh-tool-session-message

桌面版不自带 dsh 命令,桌面用户应通过 Settings → Plugins 安装。

本地开发(手动)

  1. 将包放到 <profile>/node_modules/dsh-tool-session-message(<profile> 例如 ~/.dsh/profiles/desktop)。
  2. 在 profile 的 package.json 中声明依赖与 bundle,例如:
{
  "dependencies": { "dsh-tool-session-message": "link:<path-to-this-package>" },
  "dsh": { "profile": { "bundles": [ "...", "dsh-tool-session-message" ] } }
}
  1. 包自带 cordis.patch.yml 与 dsh.bundle.patch,工具在进程级注入。
  2. 重启 DSH(宿主插件在启动时加载;代码变更后需重启)。

典型用法

让模型调用工具,或直接写出调用形式。README 示例:

session_send(session_id="session-0e8596c3-...", message="What are you working on? Reply briefly.")

接收方根据信封中的 from: 行,用 session_send 回传:

session_send(session_id="<the id in from:>", message="...")

实现上每次调用需生成独立的 requestId(如 crypto.randomUUID()),否则宿主会拒绝 prompt(prompt rejected)。

适用场景与注意

适合:在同一 DSH 桌面实例里并行多个会话,需要模型或工作流在窗口之间传递简短指令、状态询问或事实补充,且希望回复路径明确(信封 + 对称的 session_send)。

权限与安全:该工具允许模型向其他会话注入 user 提示,可能触发目标会话的新轮次。应仅在您可控的 profile 中启用,安装前建议阅读源码与 MIT 许可证。社区目录页与 GitHub 仓库由维护者与社区维护,与 DeepSeek / 幻方无官方从属关系。

兼容性:README 标明在 DSH 0.2.1-rc.5 上测试;更早版本是否具备 sessionController 未说明。

链接

羽毛球分组比赛记分
小程序二维码

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

小夜