dsh-quote-to-agent:划词引用到当前对话或子智能体

前言

在 DeepSeek Harness(DSH)里和主对话、子智能体并行协作时,常见做法是复制粘贴某段 AI 回复,再切到另一个输入框。会话变长、子会话变多之后,这段路径既慢,也容易丢上下文。社区插件 dsh-quote-to-agent 把「选中会话记录里的文字 → 引用到当前对话或分派到子智能体」做成划词动作,引用落在输入框上方的引用条里,发送时自动拼进消息;需要子智能体时可在右侧同屏开格,没有子会话时还能挂起引用并自动接续派生流程。

下面按定位、能力、安装与用法说明,事实以仓库 README 与 package.json 为准。

这是什么

dsh-quote-to-agent 是维护者 gongstudent 发布的 DSH Web 端纯客户端插件(dsh.client,platform: "web"),目标宿主版本为 DSH 0.2.0-rc.2。当前包版本 0.1.1,许可证 MIT。

一句话:在会话记录里划词,把选中内容引用到当前对话,或分派到子智能体对话。与同生态里其他 dsh-quote-* 插件相比,本插件的差异在于可把引用分派到子智能体会话,并在尚无子智能体时自动派生一个(旧名 dsh-quote-dispatch 已弃用)。

社区目录站点与 DeepSeek / 幻方无官方从属关系;插件以你安装 DSH Desktop 后、该 profile 加载的客户端权限运行,安装前请自行阅读源码与许可证。

核心功能

划词后的动作

场景 行为
主对话里划词 引用到当前对话 / 引用到子对话
子智能体里划词 引用到主对话 / 引用到当前对话 / 引用到另一个子对话

引用到当前对话

引用条出现在输入框最左侧正上方的横向区域:收起时显示条数,悬停可展开原文列表,每条可单独 × 删除;发送消息时引用会自动拼进草稿。

引用到子对话

在右侧新开一格打开对应子智能体会话(与主对话同屏,分隔条可拖动),引用出现在该子会话的引用条上。若当前还没有子智能体,插件会挂起这条引用,并把「派生一个子智能体…」类文案写入输入框;新子会话出现后自动接续挂起的引用。

有多个子智能体时会弹出候选列表;只有一个时直接打开。候选列表只列直接子会话,不列孙代(README 写明客户端拿不到 listDescendants)。

实现形态(便于排查)

  • 通过 cordis.patch.yml 插入组合树;业务逻辑在 lib/client.js,lib/index.js 的 host 半边为空 apply,仅供 Loader 扫描入口。
  • 挂载面按依赖拆分:引用条等 slots;动作条另等 sessions / sidebarRight / conversation;各挂载面有独立 ErrorBoundary,失败时渲染 null。
  • 引用条不做跨刷新持久化(有意与 DSH 草稿持久化解耦)。点击引用跳回原文并高亮尚未实现。

安装与启用

全局 dsh CLI 不能管理 desktop profile,须使用 Desktop 自带的 CLI。将 <安装目录> 换成本机 DeepSeek Harness 安装路径,<本仓库目录> 换成克隆或解压后的插件目录路径。

$env:ELECTRON_RUN_AS_NODE='1'
& "<安装目录>\DeepSeek Harness.exe" --expose-internals `
  "<安装目录>\resources\app.asar\dsh\node_modules\@deepseek-ai\dsh-desktop-host\lib\cli.js" `
  plugin --profile desktop add "<本仓库目录>"

安装完成后必须重启 Desktop 应用(静态客户端插件在服务启动时加载),再在界面内 Ctrl+Shift+R 强刷页面。

卸载时将上述命令中的 add 改为 remove,插件 id 为 dsh-quote-to-agent:

# 同上,把 add 换成 remove
... plugin --profile desktop remove dsh-quote-to-agent

典型用法

  1. 在主对话或子智能体的 AI 回复中,用鼠标选中一句或多句。
  2. 在出现的动作条上选择:
    - 留在当前输入:引用到当前对话 → 看输入框左上方引用条,确认后发送。
    - 交给子智能体:引用到子对话 → 右侧打开或选中子会话,引用条出现在该会话;若无子会话,按提示派生后再自动挂上引用。
  3. 在子智能体里划词时,可按需把片段引用回主对话或转到另一个子对话。

升级 DSH 后若功能「静默失效」,README 建议按四步自检:划词动作条是否出现、引用条是否在输入框左上方、回车或点发送是否带上引用、「引用到子对话」能否在右侧打开子会话(前两项多与 DOM 锚点、槽位 key 相关)。

开发与验证(可选)

仓库提供 Node 侧门禁与冒烟,无需浏览器即可跑客户端 bundle 的部分断言:

node scripts/check.mjs    # 门禁
node scripts/smoke.mjs    # 冒烟
node scripts/audit.mjs    # 自审

只读检查 desktop profile 组合树时,可使用 scripts/inspect-profile.cjs(参数与路径见 README)。

适用场景与注意

适合谁:经常在 DSH 主对话与子智能体之间搬运同一段回复、希望少切换、少手工粘贴的用户;已使用或计划使用 DSH 0.2.0-rc.2 线 Desktop Web 客户端的场景。

依赖与风险:插件依赖若干非官方 DOM 锚点(如 [data-conversation-scroll]、[data-composer-seat] 等)和槽位 key(如 conversation.input.dock、shell.overlay)。宿主 UI 变更可能导致划词、引用条或发送注入静默失效;README 将资源地址、宿主 mode 校验等标为可见失败面。发送注入在捕获阶段处理回车与主发送按钮点击;Shift+Enter、输入法组合态回车、图片上传 busy 等路径 README 标明仍需真机确认。

权限:插件不声明 peerDependencies,并通过官方草稿 API 写入,全局副作用经 audit.mjs 自审;仍以你本地安装的源码为准做安全判断。

结尾

dsh-quote-to-agent 把「划词 → 引用条 → 发送」和「划词 → 子智能体同屏分派」接到一条链路上,并处理无子会话时的挂起与自动接续。需要安装步骤与界面示意时,见 SkillHub 目录页 与 GitHub 仓库 README。

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

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

Xiaoye