前言¶
在 DeepSeek Harness(DSH)里写智能体时,经常需要引用前文中的某一段作为上下文。最直接的方式是手动复制粘贴,但这不仅容易出错,还打断了输入流。DSH 的插件体系允许扩展行为,但当前没有现成的“选中消息文本并引用到输入框”的组件。
lifenrir/dsh-selection-quote 插件为这个场景提供了一个轻量解决方案。它不改变 DSH 的核心流程,而是在用户或助手消息内选中文字后,通过工具栏提供“Quote”按钮,将选中文本以引用块的形式插入到输入框中,并保留来源角色与跳转能力。
这是什么¶
这是一个 DSH 客户端插件,负责将用户或助手消息内的选中文本快速引用到输入框。插件名称为 @lifenrir/dsh-selection-quote,由 LiFenrir 维护,在 GitHub 开源,采用 MIT 许可证。
它解决了“如何在不离开输入框的情况下,为模型提供带来源的引用文本”这一具体问题。
核心功能¶
-
一键引用
- 在任意用户或助手消息中选中文字,工具栏会浮现在选中区域上方。
- 点击“Quote”按钮,插件会在光标处插入一个引用块,并将光标移到引用块之后。 -
非破坏性插入
- 插入操作不会影响输入框中已有的草稿内容或其他引用块。
- 插入是一个可撤销的步骤,可以通过一次撤销恢复原状。 -
来源角色标注
- 引用块开头会标注[Quote] User message或[Quote] Assistant reply(本地化),帮助模型区分说话人,且不包含行号。 -
代码块保留
- 如果选中文本完全位于一个代码块内,插件会保留代码块标记与语言标识,部分选中则退化为纯文本,避免未闭合的代码块。 -
安全输出
- 引用内容始终为纯文本,不会生成 HTML。
- 引用内容中的分隔符会被转义,过长的引用(超过 4000 个代码点)会被截断并添加标记。 -
跳转回源消息
- 发送消息后,引用内容会以卡片形式展示在消息上方。
- 点击引用块或卡片,会自动滚动到原消息位置并高亮显示其轮廓。 -
键盘与主题支持
- 工具栏可通过 Tab 键聚焦,使用 Enter 或 Space 激活,Esc 关闭。
- 工具栏样式使用 DSH 主题令牌,并遵循prefers-reduced-motion。 -
本地化
- 插件支持中文和英文,跟随 DSH 的 UI 语言设置。
安装与启用¶
安装前请确保你的 DSH 版本满足要求:>= 0.2.1-rc.2,Node.js 版本为 ^22.19 || >=24。
从 npm 安装¶
dsh plugin add @lifenrir/dsh-selection-quote
从本地目录安装¶
git clone https://github.com/LiFenrir/dsh-selection-quote.git
cd dsh-selection-quote
pnpm install
pnpm build
dsh plugin add /absolute/path/to/dsh-selection-quote
从 git 安装¶
dsh plugin add git+https://github.com/LiFenrir/dsh-selection-quote.git
安装完成后,刷新 Web UI 或重启配置文件即可生效。
典型用法¶
-
引用一段话
- 在对话消息中用鼠标选中一段文字。
- 点击工具栏上的“Quote”按钮。
- 在输入框中可以看到一个引用块,光标位于其后。 -
发送并查看引用卡片
- 在输入框中继续输入内容并发送消息。
- 消息列表中会显示引用内容为一张卡片,顶部标注来源角色。 -
跳转回原消息
- 点击输入框中的引用块,或消息卡片中的引用内容。
- 会自动滚动到原消息,并高亮显示该消息的轮廓。
适用场景与注意¶
- 适合需要频繁引用前文上下文的智能体开发与调试场景。
- 插件以客户端方式运行,安装前建议查看源码与许可证(MIT)。
- 当前版本仅支持消息文本的引用,工具结果与推理内容暂不支持。
- 引用长度上限为 4000 个代码点,没有内置的历史管理与“新建会话引用”流程。
短结尾¶
lifenrir/dsh-selection-quote 为 DSH 用户提供了从对话中快速提取并引用文本的能力,减少手动复制粘贴的误差与中断。安装后即可在任意用户或助手消息中体验一键引用。
- 目录页:https://www.skillhub.cn/plugins/LiFenrir/dsh-selection-quote
- GitHub:https://github.com/LiFenrir/dsh-selection-quote