dsh-web-annotation:在 DSH 侧栏 Browser 里批注网页并随消息发送

前言

在 DeepSeek Harness(DSH)里让模型改网页或评审线上页面时,常见做法是截图、圈画,再手打「左上角那个按钮」「第二屏留白」这类描述。信息容易丢、模型也难对齐到具体 DOM。DSH 右侧边栏自带 Browser 标签页,可以在同一会话里打开 http(s) 页面;若能在该页面就地选元素、框选区域并写下意见,再把结构化报告并入下一条用户消息,往返会短很多。下面介绍社区插件 dsh-web-annotation(维护者 HXwHSJS,分类:联网工具),它只做「网页批注 + 截图 + 本地报告 + 随消息发送」,不接管官方 Browser/Chat 提供方。

这是什么

dsh-web-annotation 在 DSH 桌面端右侧边栏的 Browser 标签页里启用批注:点选元素、点击空白位置或拖动框选区域,在气泡里写修改意见;插件自动保存截图与结构化报告,并把合并后的批注报告随你的下一条消息一起发送。

社区目录与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;安装前请自行查看源码与许可证。插件在 DSH Host 进程权限下运行,批注会注入当前 <webview> 并读取被批注页面的 DOM 信息(仅在批注模式启用时)。

核心功能

批注与编辑

  • 连续批注:点选元素、点空白(「点击位置」批注)、拖动框选区域;保存后可继续下一条。
  • 就地编辑:气泡内输入意见,Enter 保存、Shift+Enter 换行、Esc 取消;已保存批注点编号可重新编辑,✓ 保存、垃圾桶删除。
  • 页面干扰抑制:批注模式下透明捕获层挡住页面悬浮弹层/链接跳转;跨域 iframe 可按整个元素/区域批注(内部元素受浏览器限制无法精确批注)。

证据与落盘

  • 截图证据:每条批注自动裁剪元素/区域截图(点击位置带上下文),保存为 NN.png。
  • 报告落盘:每一批生成 report.md、annotations.json 和截图,目录为 $DSH_HOME/annotations/<sessionId>/<timestamp>/(默认 ~/.dsh/annotations)。

与会话联动

  • 合并发送:多次结束批注、多个页面的批注会合并成一份总报告(按页面分组,报告路径合并列出),不重复标题。
  • 自动附加:发送消息时由 Host 把报告并入你正在发送的那条用户消息——消息可见、可回放,模型直接收到;插件不直接改写会话日志。
  • 中途发送也完整:批注模式未结束就发送时,后台先把当前批注落成截图/报告并随消息发出;消息被消费后自动退出批注模式,同一批批注不会重复附到下一条。

与同类插件的定位

DSH 社区已有多款批注类插件(如 cslkkl/dsh-web-annotator、zhxnix/dsh-sidebar-annotations 等)。本插件刻意保持窄而轻:只做网页批注、截图、报告与随消息发送;差异化在证据与落盘(每条批注有截图和本地报告,报告作为普通消息文本持久化)。代价是没有源码映射/组件链、画布内对象标注、模型侧浏览器工具等重型能力。

安装与启用

要求 DSH 桌面端 0.2.1-rc.2(README 在此版本实机验证)。插件需要 Host 半代码,安装或更新后需完全退出并重启 DSH。

方式 A:插件管理页(桌面端推荐)

  1. 从 Releases 下载 dsh-web-annotation-0.1.1.tgz;
  2. 打开 DSH 设置 → 插件,用安装入口选择本地 tgz 或填入 tgz 绝对路径(Desktop 的 desktop profile 由 Electron 管理,CLI 可能拒绝直接 add);
  3. 完全退出并重新打开 DSH。

方式 B:CLI 管理的 Web / Headless profile

dsh plugin --profile <profile> add \
  https://github.com/HXwHSJS/dsh-web-annotation/releases/download/v0.1.1/dsh-web-annotation-0.1.1.tgz

也可从 GitHub 源码安装(无构建脚本,不需要 allowBuilds):

dsh plugin --profile <profile> add github:HXwHSJS/dsh-web-annotation#<commit-sha>

安装后重启对应 profile 的 Host,并刷新页面。

方式 C:本地开发

git clone https://github.com/HXwHSJS/dsh-web-annotation.git
dsh plugin --profile <profile> add "link:/absolute/path/to/dsh-web-annotation"

典型用法

  1. 在会话右侧打开 Browser 标签页并访问任意 http(s) 页面;
  2. 点击侧栏控件条上的批注图标(分栏/全屏按钮左侧)进入批注模式;
  3. 点元素 / 点空白 / 拖动框选,在气泡里写意见,Enter 保存;可继续下一条;
  4. 退出批注模式后,输入框上方出现「批注 xN」小块;
  5. 正常输入并发送消息——批注报告会并入这条消息。

批注模式未退出就直接发送也可以:后台保存当前批次并随消息发出,发送后自动退出批注模式。

发送后消息中可见类似结构(节选):

网页批注(共 3 条)

页面:控制台(https://example.com/#dashboard)
页面源文件(推断):./src/pages/dashboard.html
1. [元素] 「导出」:按钮颜色太浅,和背景对比度不够
2. [区域] 640×240:这块留白太大,压缩一半
...
完整批注报告:.../report.md;...
批注数据:...;...
截图目录:...;...

适用场景与注意

适合谁:需要在 DSH 里对「正在 Browser 中打开的页面」提精确 UI/交互修改意见,并希望模型在同一条用户消息里收到合并报告与路径引用;截图默认留在本地,文字与报告路径会随消息发给模型。

隐私:无外网请求、无遥测;HTTP 路由由本机 DSH Host 提供。安全细节见仓库 SECURITY.md。

已知限制(安装前宜知晓):

  • 仅桌面端(依赖右侧栏 Browser 的 Electron <webview>);Web 版右侧栏为跨域 iframe,无法注入。
  • 侧栏批注按钮无官方插件扩展位,依赖 DOM 插入;DSH 升级若改侧栏结构可能需要小修。
  • 跨域 iframe 内部、closed Shadow DOM、Canvas 内部对象无法精确批注;页面导航/刷新后页面内标记会丢失(已落盘/已发送的报告不受影响)。
  • 自动附加依赖 Host 的 agent/pre-step 与会话日志接口,以 0.2.1-rc.2 为验证基线;DSH 大版本更新后建议做一次「批注 → 发送 → 重启 → 会话能加载」回归。

结尾

dsh-web-annotation 把侧栏 Browser 里的元素/区域批注、截图和本地 report.md 串成一条可回放的用户消息,适合轻量 UI 评审与改页协作。安装与用法以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/HXwHSJS/dsh-web-annotation
  • GitHub:https://github.com/HXwHSJS/dsh-web-annotation
羽毛球分组比赛记分
小程序二维码

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

Xiaoye