🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

网页标注提需求 heshuren371/dsh-annotator

DeepSeek Harness
heshuren37177 天前有提交已提供中文文档扫描:含敏感能力

在网页或图片上画框写描述,让 Agent 拿到精确需求

31/100
综合分
7
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add heshuren371/dsh-annotator
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 77 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-annotator(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 06:04:05

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 10 处,展示前 10 条)
  • 发起网络请求
    annotate-live.js:191
    fetch(BASE + '/annotate/api/cancel', {
  • 发起网络请求
    annotate-live.js:421
    fetch(BASE + '/annotate/api/submit', {
  • 读取本地文件
    annotate.mjs:156
    const info = await stat(p).catch(() => undefined)
  • 发起网络请求
    annotate.mjs:205
    const res = await fetch(side.location, {
  • 读取本地文件
    annotate.mjs:232
    html = await readFile(side.location, 'utf8')
  • 读取本地文件
    annotate.mjs:274
    const injectSrc = (await readFile(new URL('./annotate-live.js', import.meta.url), 'utf8'))
  • 读取本地文件
    annotate.mjs:289
    const shell = isWin ? 'cmd' : (existsSync('/bin/zsh') ? '/bin/zsh' : '/bin/bash')
  • 执行外部命令来自配置/变量
    annotate.mjs:291
    const child = spawn(shell, shellArgs, { stdio: ['pipe', 'pipe', 'pipe'] })
  • 读取本地文件
    annotate.mjs:327
    const html = await readFile(new URL('./annotate-page.html', import.meta.url), 'utf8')
  • 读取本地文件
    annotate.mjs:363
    const data = await readFile(abs).catch(() => undefined)
扫描于 2026/11/3(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 网页图片画框标注
  • 附带文字描述需求
  • 多轮对比评审闭环

数据标注 agent preset for DeepSeek Harness (dsh):在网页/图片上画框+描述,Agent 拿到 DOM 级精确需求,多轮对比评审闭环

README

由 DeepSeek 最新模型翻译生成
dsh-annotator · 数据标注模式 让"提需求"从靠文字猜变成指着画面说:在网页上直接画矩形框 + 填描述,Agent 拿到的不再是模糊的"把上面那个按钮改一下",而是框选位置 + 文字描述 + 命中的 DOM 元素三合一的精确需求。 一个 DeepSeek Harness (dsh) 的 agent preset(代理模式/插件模式),在标准编码 agent 之上叠加一套完整的数据标注交互闭环。 live 模式:在真实页面上标注,动画完整可见 为什么做这个 用纯文字描述视觉需求时,大模型其实是在猜:猜中了你满意,猜错了重来。数据标注把这种猜测消掉——你框选的区域就是需求的位置,你填的描述就是需求的内容,提交时自动附带该区域的 DOM 元素(tag/class/选择器/HTML 片段),Agent 可以直接读到"框1位置"的网页实现代码。
展开完整文档(README 剩余 1 节)
dsh-annotator · 数据标注模式

让"提需求"从靠文字猜变成指着画面说:在网页上直接画矩形框 + 填描述,Agent 拿到的不再是模糊的"把上面那个按钮改一下",而是框选位置 + 文字描述 + 命中的 DOM 元素三合一的精确需求。

一个 DeepSeek Harness (dsh) 的 agent preset(代理模式/插件模式),在标准编码 agent 之上叠加一套完整的数据标注交互闭环。

live 模式:在真实页面上标注,动画完整可见

为什么做这个

用纯文字描述视觉需求时,大模型其实是在猜:猜中了你满意,猜错了重来。数据标注把这种猜测消掉——你框选的区域就是需求的位置,你填的描述就是需求的内容,提交时自动附带该区域的 DOM 元素(tag/class/选择器/HTML 片段),Agent 可以直接读到"框1位置"的网页实现代码。

效果

| 代理模式:原网页 vs 结果页对比标注 | live 模式:框选真实页面的动画区域 |
| 对比标注 | live 框选 |

| 提交确认 |
| 提交 |

特性

- 三种标注形态
- 🌐 代理模式(默认):网页 URL / 本地 HTML,标注界面与 dsh GUI 同源,框选自动提取 DOM 元素(IoU 匹配 + 同形去重,canvas/容器优先)
- ⚡ live 真实浏览器模式:通过 ego-browser 打开真实页面注入标注层——动画完整播放、复用登录态;JS 重度站点自动检测自动升级(module scripts / crossorigin 脚本 / SPA 根标记)
- 🖼️ 图片/设计稿标注:png/jpg/gif/webp/svg 文件或 URL,框坐标即图片像素
- 对比评审闭环:compare 参数把 Agent 的成果页与原网页并排展示,逐框标记 😊满意保留 / 🤏差点意思 / ❌不要了,多轮迭代直到满意
- 框选生成 E2E 测试:每个框可选测试动作(👆点击 / ⌨️填写 / 👁断言可见 / 🔀断言跳转 / 📝断言文本),配合自动返回的 selector,Agent 直接生成确定性测试步骤
- 复刻提速:标注元素自带关键计算样式(style)、精确尺寸坐标(box)、资源 URL(assets)——Agent 无需重复抓取原站,一轮实现所有框
- 长页面滚轮滚动、取消标注(Agent 端 annotate_collect 收到 cancelled 并重新与你确认目标)
- 安全:静态资源限制在目标目录子树(防路径穿越)、提交体大小限制、会话 TTL

快速安装

仓库根目录就是一个合法的 dsh preset,直接克隆到 preset 目录即可
git clone https://github.com/heshuren371/dsh-annotator.git ~/.dsh/.agent-presets/annotator

然后:

1. 重启 dsh(GUI / dsh web 进程)——preset 的 .mjs 在进程内只加载一次
2. 新建会话,选择 「数据标注模式」
3. 直接说:复刻 https://example.com,或 用标注流程评审我的 index.html

手动安装

1. 下载本仓库 ZIP 并解压(Code → Download ZIP)
2. 把解压后的文件夹重命名为 annotator,整个复制到 ~/.dsh/.agent-presets/ 下
- 最终路径形如 ~/.dsh/.agent-presets/annotator/agent.cordis.yml
3. 重启 dsh,同上选择「数据标注模式」

使用流程

你给 URL/文件 → Agent annotate_open 打开标注界面 → 你画框 + 填描述(可滚轮翻页、可取消) → Agent annotate_collect 收到精确需求(位置+描述+DOM) → Agent 实现(完整标准编码能力:读写文件/跑命令/起服务) → Agent annotate_open(compare=结果页) 请你对比评审 → 你逐框标记 满意/差点意思 → 迭代收敛

- 代理模式:打开 Agent 发你的链接(与 dsh GUI 同一端口)
- live 模式:到 ego-browser 窗口(任务空间 dsh-annotator)操作,面板有「✏️画框 / 👀浏览」切换

可选依赖:ego-browser

live 模式需要 ego-browser CLI 在 PATH 中(macOS/Linux 经登录 shell 解析,Windows 经 cmd)。未安装时 live 自动回退代理模式并给出警告,其余功能不受影响。

测试

node test/run.mjs # 29 项集成测试(最后一项真实启动 ego-browser,约 10-30s)

架构一句话

preset 行 annotate.mjs 是一个 Cordis host 插件:用 host 的 webServer 服务注册 /annotate prefix 路由(与 GUI 同服务器,零额外端口),用 tools 注册 annotate_open/annotate_collect 两个模型工具,用 systemPrompt 注入标注工作流提示词。代理模式通过抓取 HTML + 注入 实现同源化;live 模式把 annotate-live.js 注入 ego-browser 的真实页面,提交经 CORS 回传。

兼容性

在 dsh 0.1.0-rc.6 上开发验证。依赖 host 服务:webServer(含 port)、tools、systemPrompt。

Roadmap

- [ ] 英文界面(i18n)
- [ ] dsh 插件市场上架
- [ ] PDF 标注
- [ ] live 模式双页对比

License

MIT

English Summary
dsh-annotator 是 DeepSeek Harness 的一个“数据标注”智能体预设。它不再用文字描述视觉需求(然后让模型去猜),而是让你直接在目标网页/图片上画矩形框并附上说明;智能体会收到精确坐标,以及每个框命中的 DOM 元素(标签/类名/选择器/HTML 片段)。它支持带代理的标注工作台、将覆盖层注入真实 ego-browser 标签页的实时模式(针对 JS 密集型 SPA 自动检测)、图片标注、并排评审轮次、取消以及滚轮滚动。安装:git clone ~/.dsh/.agent-presets/annotator,重启 dsh,选择“数据标注模式”预设。MIT 许可。
预览分享卡片长什么样 ↓heshuren371/dsh-annotator
分享 · DeepSeek Harness Hub
heshuren371/dsh-annotator

在网页或图片上画框写描述,让 Agent 拿到精确需求

这是你的仓库?认领条目

回到顶部