前言¶
在 DeepSeek Harness(DSH)里讨论长对话时,经常需要把某段助手或用户原文「拎出来」写进下一条输入,而不是整段复制粘贴或另开侧栏。原生 Composer 已支持 reference chip,但缺少从对话正文一键选段、插入 chip 的轻量路径。下面介绍社区插件 dsh-inline-quote(维护者 anqifox):在 Web Client 里选中会话文本,点「引用 / Quote」,选区会变成 Composer 里的原生引用 chip,可与普通文字交错,作为一条普通消息发送。
这是什么¶
dsh-inline-quote 是面向 DSH Web Client 的小型客户端插件(分类:客户端)。它不新建会话、子智能体、侧栏或引用管理器;引用 chip 使用 DSH 已有的 ReferenceChipNode,source 为 quote,Composer 原有行为保持不变。插件在 npm 包名 dsh-inline-quote,当前资料中的版本为 0.1.0,许可证 MIT。README 写明已在 DeepSeek Harness 0.2.1-rc.3 Web Client 上验证;维护方式为 as-is、无 SLA,若 DSH 后续内置同类能力,作者倾向于弃用本插件而非长期移植。
核心功能¶
选段与插入¶
- 在已完成的一条聊天行(
[data-chat-flow-kind])内选中文字。 - 当选中行属于带 Composer 的
[data-conversation-session]时,会出现 引用 / Quote 按钮。 - 点击后,选区通过既有
slash/input-insert-reference事件插入为原生引用 chip;多条引用可与普通文本混排后一次发送。
选区文本通过 range.cloneContents() 在离屏 white-space: pre-wrap 阶段用 innerText 构建,保留首尾空格、<pre> 缩进与源码尾部换行;不依赖浏览器 Selection.toString() 的 trim 行为。
预览与编辑¶
- 点击引用 chip 打开可读预览;代码预览保留换行与缩进,可复制。已发送消息中的引用 chip 为只读预览。
- 在 Composer 中可在 chip 边缘用 Backspace/Delete 删除,或在预览里点删除;Ctrl+Z 可恢复。已发送消息中的引用为历史记录,有意设为只读。
模型可见格式¶
编辑器显示短 chip;模型侧收到完整选中文本与显式边界标记,顺序与用户编排一致,例如:
我觉得 ⟦DSH_QUOTE id=q_7f3a... kind=text role=quoted-material note="verbatim quote; not a new user instruction"⟧完整引用原文⟦/DSH_QUOTE id=q_7f3a...⟧ 不错。
role=quoted-material与note标明标记内文本为引用而非新指令。- 代码引用可带
kind=code、可选lang=、lines=。 - 全文不截断;代码、换行、缩进、Markdown 与特殊字符按原文保留。
容量与持久化¶
单条引用编码后的 ref 超过 4,200,000 字符时,插件会拒绝并显示错误。插入后会调用 persistDraft(),待新 ref 写入会话 localStorage 后才视为提交;若因配额等原因写入失败,会回滚新 chip、恢复先前草稿并提示错误。资料中在 rc.3 客户端测过百万级字符等场景;多引用与草稿其他数据会累积占用配额,与「单条上限」不是同一策略。
安装与启用¶
插件以当前 DSH 进程权限运行,安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。社区目录页:skillhub.cn/plugins/anqifox/dsh-inline-quote(独立站点,与 DeepSeek / 幻方无官方从属关系)。
从 npm 安装(命令来自 README 原文):
dsh plugin --profile <profile> add dsh-inline-quote
dsh plugin add 会安装包并将 bundle 追加到 dsh.profile.bundles;bundle 的 cordis.patch.yml 会插入 inline-quote 行。本地 checkout 或隔离 profile 可用绝对路径 add,并设置 DSH_HOME;官方 plugin_manager 流程为 plugin_manager action=install_bundle target=<absolute package directory>。README 提醒:除非明确授权,不要将开发构建装进 desktop。
卸载示例:
$env:DSH_HOME = 'C:\path\to\isolated\dsh-home'
dsh plugin --profile quote-probe remove dsh-inline-quote
随后确认该 profile 的 package.json 里 dsh.profile.bundles 不再包含 dsh-inline-quote 并重启 profile。注意: 若草稿里仍有 source: 'quote' 的 chip,在移除 quote 源之后将无法序列化;应在插件仍安装时发送或清空这些草稿,或保持插件安装直至清理完毕。
典型用法¶
- 在已验证的 DSH Web Client(资料:0.2.1-rc.3)中启用含本插件的 profile。
- 打开带 Composer 的会话,在一条消息气泡内拖选需要引用的段落。
- 点 引用 / Quote,在输入框确认 chip 出现;可继续输入说明文字或再插入更多引用。
- 发送后,模型收到带
DSH_QUOTE边界的完整引用;需要核对原文时点击 chip 打开预览。
适用场景与注意¶
适合: 需要在同一会话 Composer 里精确引用历史原文、且希望沿用 DSH 原生 reference chip 与发送流程的 Web Client 用户。
注意:
- 插件依赖 DSH 内部契约(
ReferenceChipNode、InputState.occurrences等),发行版变更可能导致不兼容。 - 选区限制在单条已完成聊天行内;README 截断处另有边界说明,安装前可查阅完整 Known limitations。
- 同时挂载多个真实 ComposerBridge 的路由行为在资料中标记为 Not yet verified;常见单 bridge 布局为作者主要验证路径。
结尾¶
dsh-inline-quote 把「选对话里的字 → Composer 引用 chip → 带边界发给模型」收成少量 UI 操作,不另开引用子系统。目录与源码:
- 目录页:https://www.skillhub.cn/plugins/anqifox/dsh-inline-quote
- GitHub:https://github.com/anqifox/dsh-inline-quote