前言¶
审阅一条很长的 AI 回复时,麻烦往往不在提出意见,而在说清楚「我说的是哪一句」。常见做法是把原文复制进输入框,再补一段解释,几轮下来上下文就散了。dsh-annotation 的思路是把意见直接留在对应句子旁边:选中原文、就地写下注解、攒齐多条后一次发送,模型按编号逐条回答。下面介绍这个插件。
插件简介¶
dsh-annotation 是一个 DSH Web 插件,作者 ruisenbai,MIT 许可证,当前版本 0.5.2,分类为客户端插件。它的定位一句话概括:为 DeepSeek Harness 助手回复提供内联、可批量提交的注解,最终通过官方输入框发出。
需要说明的是,作者在 README 中写明:这套交互是独立、非官方地复刻 ChatGPT 的正文注解功能,只复用使用流程,项目与 OpenAI 无隶属或官方合作关系。
核心功能¶
选中即批注¶
1、在已完成的助手回复内选中文字,弹出带「添加注解」和「复制」的浮条;蓝色选区保持可选,随时可 Ctrl+C 复制。
2、点击「添加注解」后,在选区旁就地编辑,输入停止 400ms 后自动保存,完整处理中文输入法的组合输入。
3、支持普通注解(note)和空内容注解(仅标记原文,highlight-only)。
4、选区重叠时合并到原有草稿,避免高亮堆叠歧义。
草稿与发送¶
- 注解草稿默认自动附加到官方输入框,可在配置中关闭自动附着,或用标题栏回形针手动切换。
- 官方输入框是唯一发送入口:文字、注解、图片合并为一条任务发送。
- 输入框上方显示「注解 ×N」紧凑概览,点击展开完整注解列表;数量随新增、删除、附着、发送实时更新。
- 斜杠命令自动放行:附着状态下输入以
/开头的内容时,命令不携带注解、不触发发送。 - 发送失败时文字、图片和注解全部保留,重试沿用同一 submissionId,幂等去重。
模型逐条回复¶
- 模型按注解顺序逐条回答,每段以「注解 N:」开头。
- 回复中通过隐藏标记关联,渲染可悬浮查看的注解芯片。
- 协议跟随 DSH 中英文 locale,回复解析兼容「注解 N:」「注解 N:」「Annotation N:」等格式。
数据保存与恢复¶
- 每条注解保存完整原文、前后文选择器、助手消息 ID、事件序号、注解 ID 与提交 ID;代码记录语言与起止行,表格记录起止行列。
- 使用 localStorage 恢复未发送草稿、编辑中内容和不可变重试记录,用提交 ID 派生的稳定消息 ID 去重重试。
- 支持撤销最近一次草稿删除、导出当前 Session 恢复 JSON、清空未提交草稿、显示本地存储占用。
兼容性¶
- 可选兼容 dsh-focus-chat,未安装时正常启动、不等待任何服务。
- 浏览器不支持 CSS Custom Highlight API 时,仍保留编号标记和定位能力。
安装与启用¶
宿主要求比较严格:
- DSH Web
0.1.2-rc.1(精确版本,运行dsh --version检查) - Node.js
^22.19.0或>=24.0.0 webProfile
推荐直接安装 GitHub Release 提供的预构建包,共三步:
curl -fL -o dsh-annotation.tgz https://github.com/ruisenbai/dsh-annotation/releases/latest/download/dsh-annotation.tgz
dsh plugin --profile web add ./dsh-annotation.tgz
dsh web
第一条命令下载最新发行版的 Tarball,第二条把插件加入 web Profile,第三条启动 DSH Web。如果 DSH Web 已在运行,安装后需要重启。
如果宿主版本不一致,可按版本映射选择对应发行版:v0.5.2 / v0.5.1 / v0.5.0 适配 DSH 0.1.2-rc.1,v0.4.0 适配 0.1.2-alpha.3,v0.3.0 适配 0.1.2-alpha.1,v0.2.4 适配 0.1.1-rc.2。
也可以从源码构建:
git clone https://github.com/ruisenbai/dsh-annotation.git
cd dsh-annotation
corepack enable
pnpm install
pnpm verify
dsh plugin --profile web add .
dsh web
先克隆仓库并启用 corepack,pnpm install 解析依赖,pnpm verify 通过校验后,把当前目录加入 web Profile 再启动。
典型用法¶
1、打开 DSH Web 页面,在一条已完成回复中选中文字,点击浮条中的「添加注解」打开紧凑输入框,填写意见后按 Enter 或点击对号创建草稿。
2、草稿出现在官方输入框上方并默认附加;可选地填写任务文本、附加图片,按官方 Enter 或点击发送按钮,文字、注解和图片会作为一条任务一起发出。
3、在 设置 → 插件 → 插件配置 的「注解」卡片中,可开关「启用 DSH 注解」「新增注解后自动附着到输入框」「显示本地数据控件」,默认都开启。
可覆盖配置¶
Bundle 会在 Profile 中插入 dsh-annotation 行,可在 Profile Composition 中覆盖以下默认值:
| 配置项 | 默认值 |
|---|---|
commandName |
annotation_submit |
maxPayloadBytes |
524288 |
maxAnnotationsPerSubmission |
100 |
warnSelectionChars |
12000 |
各配置项的具体作用见仓库 README 的配置表;需要留意的是,README 的表格在 warnSelectionChars 处被截断,可能还有未展示的配置项,以仓库文档为准。
适用场景与注意¶
适合的场景:在 DSH Web 里审阅长回复、意见需要精确到某一句或某段代码、希望把多条反馈合并成一次发送的工作流。
安装前有几点需要确认:
1、插件以当前 dsh 进程权限运行,安装前应自行检查源码与许可证(本项目为 MIT)。
2、宿主版本是精确要求,先运行 dsh --version 确认是否为 0.1.2-rc.1。
3、DSH 仍处于预发布阶段,升级前建议阅读仓库内的 docs/compatibility.md 兼容性说明。
小结¶
dsh-annotation 解决的是审阅长回复时「指哪说哪」的问题:批注留在原文旁,多条攒齐一次发送,模型按编号逐条回应,本地草稿可恢复、失败可重试。如果你日常在 DSH Web 里做逐句反馈,值得一试。
- 社区目录页:https://www.skillhub.cn/plugins/ruisenbai/dsh-annotation
- GitHub 仓库:https://github.com/ruisenbai/dsh-annotation