dsh-cross-session-ref:跨会话拖拽问答卡片并注入 Prompt

前言

DeepSeek Harness(DSH)里,每个会话默认只能看见自己的上下文。当你已经在 A 会话里把某段问题问清楚、模型也给过结论,却要在 B 会话里接着用这段结论时,常见做法是复制问题与回答,附件还要再传一遍。内容一多,既容易漏附件,也容易把聊天记录搅乱。

下面介绍社区插件 dsh-cross-session-ref(维护者 kanmanJO,分类:记忆)。它把「把 A 会话里某张问答卡片拿到 B 会话继续用」做成拖拽操作:引用关系保存在本机,下一轮在目标会话正常提问时,被引用的卡片(问题原文、当时的回答、附件)会动态拼进 Prompt,供模型使用,但不会在聊天主体里伪造一条用户气泡。

这是什么

dsh-cross-session-ref 是 DSH 的持久化 UI 插件:在侧边栏打开「跨会话引用」整页面板,把任意会话里的问答卡片拖到另一个会话;拖入的是「引用」,源会话卡片不变。目标会话下一次提问时,Host 在 agent/pre-step 阶段把这些引用注入为「本会话更早的对话记录」,只注入一次,用完可通过右键从本会话移除引用。

插件以 MIT 许可证发布,当前 npm 包版本 0.2.1,要求 DSH Desktop 0.2.x(README 注明在 0.2.1-rc.3 上测试)。目录页:https://www.skillhub.cn/plugins/kanmanJO/dsh-cross-session-ref;源码与说明:https://github.com/kanmanJO/dsh-cross-session-ref。

核心功能

面板与实时同步

Host 监听 session/created、session/event、session/title、session/disposed 等事件,经 SSE 推送到面板,新建会话、新问答、改标题、删除会话都会即时更新,无需轮询快照。

左侧为等高会话方块(210 × 80),显示 DSH 的 AI 总结标题(session/title);运行中的会话在方块右侧有绿点。右侧为问答节点(宽 200px,摘要默认前两行约 20 字,有附件时显示 📎 与数量)。12 个色槽由 Host 写入 colors.json 并持久化:同一会话卡片同色,不同会话异色;跨会话拖入的卡片保留来源会话颜色,便于辨认出处。

拖拽与非破坏性引用

卡片任意位置按住即可拖(6px 防误触),拖到目标会话方块或节点之间松手完成引用。悬停可看完整【问】【答】与附件名。源会话内容不受影响;同一张卡可同时引用到多个会话。右键引用卡片可选「从本会话移除」。

动态注入 Prompt

被引用的内容不会出现在聊天主体里冒充用户消息。下一轮提问的第一步(step === 1),Host 读取源会话日志,把引用折叠成上下文,构造 source.kind === 'cross-session-ref' 的消息,插在本轮用户消息之前。聊天记录里表现为灰色「上下文行」,不是用户气泡。已注入过的卡片不会重复注入;纯文本总预算 60000 字符,单条问答截断到 20000 字符。附件以 file / image 块原样携带。

本机数据与接口

插件不改写 DSH 会话日志格式,本地新增:

路径 内容
<DSH_HOME>/cross-session-ref/links.json 引用关系
<DSH_HOME>/cross-session-ref/colors.json 会话颜色分配

DSH_HOME 依次取环境变量 DSH_HOME → DSH_PROFILE_DIR 的父目录 → ~/.dsh。Host 在同源 HTTP 下提供 /cross-session-ref/state、/cross-session-ref/stream(SSE)、/cross-session-ref/link、/cross-session-ref/unlink 等路由,不额外开端口。README 说明插件不发起外部网络请求,数据仅留在本机该目录。

安装与启用

安装前请确认已有可用 profile,并了解插件与 DSH 进程同权限运行;安装前可查阅仓库源码与 MIT 许可证。

方式一:npm 或 GitHub(web profile)

CLI 会把 dsh plugin 转发给对应 profile 的 pnpm;不能直接对 Desktop 的 desktop profile 用此方式,桌面用户见方式二。

# 从 npm(已发布 0.2.1)
dsh plugin --profile web add dsh-cross-session-ref
# 或直接从 GitHub 仓库
dsh plugin --profile web add github:kanmanJO/dsh-cross-session-ref

dsh web --profile web

也可在 DSH 插件市场搜索「跨会话引用」安装。

方式二:本地 bundle(Desktop 推荐)

  1. 获取仓库目录(README 提供 clone 或下载 zip 解压)。
  2. 在 DSH「插件」页选择安装本地插件(bundle),指向 dsh-cross-session-ref 目录。
  3. 重载插件或重启 DSH,再 Ctrl+Shift+R 硬刷新。

安装成功后,侧边栏会出现「跨会话引用」图标,点击进入整页面板。

典型用法

经过上面的安装步骤,可按 README 中的流程操作:

  1. 点击会话方块展开该会话下的问答节点。
  2. 按住任意卡片拖到另一个会话的方块或节点之间,松手完成引用(虚线框提示插入位置)。
  3. 切换到目标会话,再发一条正常提问;注入发生在下一步的第一步,模型应能利用被引卡片的问题、回答与附件。
  4. 若不再需要:右键该引用卡片 →「从本会话移除」;节点消失后,后续轮次不再注入(已注入过的历史上下文不会自动撤回)。

README 还提供「5 分钟验收清单」,涵盖双窗口实时增卡、弹性展开、拖拽幽灵与边缘滚动、来源色保留、灰色上下文行、右键移除等项,可按清单自测。

适用场景与注意

适合:多会话并行时,把已在某会话验证过的 Q&A 与附件「挂」到另一个会话,避免重复粘贴;需要模型在目标会话里把拖入内容当作已有上下文继续推理,而不是重新回答拖入里的旧问题。

边界与兼容(均来自 README):

  • 依赖 DSH 内部 webServer、sessionQuery、workspaceRegistry 等;大版本升级后可能需要插件适配。
  • 面板只展示当前工作区会话,排除 subagent 子会话、已归档会话等。
  • 12 色槽用完后循环复用,会话极多时颜色可能不再唯一。
  • 删除源会话后,引用约 6 秒内对账清理;卸载插件后还可手动删除 <DSH_HOME>/cross-session-ref/。
  • 只对「继续提问」生效,不会改写历史消息。

社区插件目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;选用前请自行评估源码与权限范围。

结尾

dsh-cross-session-ref 用拖拽建立跨会话引用,用 pre-step 一次性、非破坏性地把问答与附件注入 Prompt,并在本机 links.json / colors.json 持久化关系与配色。若你经常在 DSH 里开多个会话协作,可以按上文安装命令启用,并用 README 验收清单确认行为是否符合预期。

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

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

小夜