前言¶
在 DSH Web 对话里,模型往往只能看到当前输入框里的文字。若你想针对聊天记录里某一段提问,常见做法是整段复制进输入框,或手动 @ 某个文件。前者容易把上下文撑得很长,后者需要先自己落盘。下面介绍社区插件 dsh-quoted(注释引用 / Annotation Capture):在对话区选中一段文字,写成工作区下的临时 Markdown 注释文件,并以引用 chip 挂到输入框;模型在本轮读完该文件后,插件会按规则自动回收。插件由 mengyundawang123 维护,在 SkillHub 目录中归类为「记忆」,当前 GitHub 星标为 0;无运行时依赖,无需构建步骤。
这是什么¶
dsh-quoted 面向使用 DSH Web UI 的开发者:把「对话里某段原文」变成可 @ 的工作区文件引用,而不是长期污染仓库的笔记。落盘目录为工作区内的 .dsh-annotations/,目录内自带 .gitignore,避免误提交。宿主侧注册同源路由 POST /api/dsh-quoted,仅接受带请求头 x-dsh-quoted: 1 的 POST;写入目录由 Host 决定,客户端传来的 cwd 只有落在已注册工作区内才会被采纳。
核心功能¶
- 选区捕获:在
[data-chat-flow]内、且不在输入框里的选区上触发「引用」,将选中文字写入.dsh-annotations/<时间戳>-<随机>.md。 - 输入框 chip:输入框出现形如
📄 注释 17:51的 chip,原文在对话区淡蓝高亮并带序号;发送后消息里体现为@.dsh-annotations/xxx.md形式的文件引用。 - 生命周期管理:模型在本轮 read 过且文件属于本轮时,回合正常结束即删除;本轮未读则保留,由 1 小时后清扫处理;回合中断不删,便于重发。同一段文字 3 秒内重复触发只生成一个文件;输入法组词期间会延后写入。
- 安全与体积:无外部网络请求与遥测;单次请求体上限 256 KiB。
已验证环境:dsh 0.2.1-rc.2(Windows + Web UI)。许可证为 MIT(见仓库 package.json,版本 v0.1.0)。
安装与启用¶
安装命令以仓库 README 为准:
# npm(推荐:预构建,装完即用,不需要构建授权)
dsh plugin --profile web add dsh-quoted
# 或直接从 GitHub 源码安装(本插件没有构建步骤,不需要 allowBuilds)
dsh plugin --profile web add github:mengyundawang123/dsh-quoted#v0.1.0
装完后重启 dsh web,在对话里选中一段文字验证是否出现「引用」入口。
插件以当前 dsh 进程权限 在工作区写文件;安装前请自行查看 GitHub 源码 与许可证。DSH 社区目录(SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系。
典型用法¶
- 在对话区选中一段文字(只认
[data-chat-flow]之内、且不在输入框里的选区)。 - 右键选择「引用」,或点输入框工具行左侧的「引用」按钮。
- 确认输入框出现注释 chip,原文在对话区已高亮并标序号。
- 接着输入问题并发送。
文件流转可概括为:
选中 → 写 <工作区>/.dsh-annotations/<时间戳>-<随机>.md
→ 发送(消息里是 @.dsh-annotations/xxx.md)
→ 模型 read 该文件
→ 本轮正常结束 → 删除
宿主解析 @ 引用需要前导空白:消息开头或 @ 前有空格/换行时才会解析为蓝色文件引用;若文字紧贴 @(如 1111@path)则按纯文本显示。插件默认 SEPARATOR 为空格,chip 之后须保留独立空格文本节点;若希望 chip 单独一行、引用恒为蓝色,可在 client.js 中将 SEPARATOR 改为 '\n',改完刷新页面即可,无需重启 DSH。
失败与限制¶
按钮失败时悬停可见原因码,例如:no-workspace(无法确定写入目录)、no-draft(读不到输入框草稿)、forbidden(请求头缺失)、write-failed(落盘失败)、network / http-error(请求或服务异常)。
已知限制包括:用户消息气泡为纯文本渲染,chip 是文件引用而非原生引用卡片;输入框内若有 /命令 chip,重建草稿时可能退化为纯文本;Host 侧改动需重启 DSH,客户端改动刷新页面即可。README 还说明测试套件对真浏览器高亮、真并发等有部分覆盖不到的仿真边界。
适用场景¶
- 针对长对话中某一两句提问,又不想每次手动建文件或整段粘贴。
- 希望引用随本轮对话自动清理,减少
.dsh-annotations里堆积的临时文件(未读文件会保留至清扫,避免静默丢内容)。 - 需要零依赖、无构建的 Web 侧插件,与
dsh plugin --profile web工作流一致。
不适合期待「气泡内原生引用卡片」或完全脱离工作区文件模型的场景。
结尾¶
dsh-quoted 把「选中对话片段 → 临时注释文件 → 输入框 chip → 模型 read → 回合结束回收」串成一条可复现路径,适合在 DSH Web 里做轻量上下文锚定。目录页:SkillHub - dsh-quoted;源码与详细说明:GitHub - mengyundawang123/dsh-quoted。