前言¶
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 推荐)¶
- 获取仓库目录(README 提供 clone 或下载 zip 解压)。
- 在 DSH「插件」页选择安装本地插件(bundle),指向
dsh-cross-session-ref目录。 - 重载插件或重启 DSH,再
Ctrl+Shift+R硬刷新。
安装成功后,侧边栏会出现「跨会话引用」图标,点击进入整页面板。
典型用法¶
经过上面的安装步骤,可按 README 中的流程操作:
- 点击会话方块展开该会话下的问答节点。
- 按住任意卡片拖到另一个会话的方块或节点之间,松手完成引用(虚线框提示插入位置)。
- 切换到目标会话,再发一条正常提问;注入发生在下一步的第一步,模型应能利用被引卡片的问题、回答与附件。
- 若不再需要:右键该引用卡片 →「从本会话移除」;节点消失后,后续轮次不再注入(已注入过的历史上下文不会自动撤回)。
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 验收清单确认行为是否符合预期。