前言¶
在 DeepSeek Harness (DSH) 的使用中,通过引用之前的会话上下文来延续对话是常见需求。DSH 原生缺乏标准的引用机制,手动输入标题或链接容易出错。dsh-copy-session-ref 插件通过在会话行菜单和悬浮卡片中添加“复制引用”入口,生成标准的 @[名称](dsh-session:...) 格式,解决了这一问题。
插件简介¶
- 名称:
azazo1/dsh-copy-session-ref - 维护者:
azazo1 - 功能:在会话行菜单和悬浮卡片中添加复制引用入口,生成规范的 mention 格式,粘贴到输入框后可召回该会话上下文。
- 许可证:MIT
核心功能¶
复制入口¶
插件在两个位置添加了“复制引用”功能:
1. 会话行菜单:在会话行的省略号菜单中添加,位于“归档”之后。
2. 会话行悬浮卡片:鼠标悬停时展开的卡片中,第一行为“复制引用”。
* 注意:只有已经有第一条消息的会话行才显示此行。
* 点击该行复制的不是会话标题,而是规范的 mention 格式,且不会触发卡片自身的复制行为。
命名规则¶
复制前会按可配置的正则规则处理会话标题,生成引用名称。默认规则按顺序应用:
1. \s+ (flags: gu) 替换为 -(将空格转换为连字符)。
2. " (flags: gu) 替换为 \"(转义双引号)。
3. ^([\s\S]*)$ (flags: u) 替换为 "$1"(包裹外层引号)。
示例:
* raw title -> @["raw-title"]
* my "cool" title -> "my-\"cool\"-title"
* 空标题 -> @""
配置管理¶
在 DSH 中进入 设置 -> Plugins -> dsh-copy-session-ref:
* 支持增删规则、调整顺序、勾选启用。
* 可修改正则表达式、flags 和替换文本。
* 表单修改为暂存语义,保存后才写入 profile 的 patch 层,离开页面丢弃未保存的编辑。
* 正则或 flags 非法时表单会标红并阻止保存。
安装与启用¶
Web 端¶
在 Web profile 中安装:
dsh plugin --profile web add github:azazo1/dsh-copy-session-ref
桌面端¶
桌面端不支持通过命令行参数 --profile desktop 安装,需在 DSH 应用内的插件管理器中操作:
1. 在插件安装入口填入包名 github:azazo1/dsh-copy-session-ref 或本地目录。
2. 安装后重启应用并刷新窗口(Client metadata 的扫描结果会在进程内缓存)。
引擎版本要求¶
插件依赖 DeepSeek Harness 引擎 >=0.2.0-rc.1 且在 0.2.x 版本线上(devDependencies 写作 >=0.2.0-rc.1 <0.3.0)。
典型用法¶
- 安装并重启 DSH 应用。
- 在会话列表中找到目标会话。
- 点击会话行的“复制引用”或悬停卡片上的“复制引用”。
- 将生成的
@[名称](dsh-session:...)粘贴到新消息输入框并发送。 - 模型将接收该 mention 并检索对应会话的上下文。
技术细节与限制¶
- 插件不解析或克隆宿主 DOM,会话身份与菜单开合由框架提供。
- 规则按顺序应用,支持
$1和$&。 - 名称中包含
]时,引用能解析,但气泡不会折叠成 chip。 - 规则仅做最小转义(
\和]),双引号处理由默认规则负责,避免双重转义。
结语¶
该插件通过标准化的 mention 格式,简化了会话上下文的召回流程。规则可配置,能适应不同的命名习惯。更多细节可参考 GitHub 仓库。