前言¶
DeepSeek Harness(DSH)桌面版运行时,模型通过工具层与右侧边栏的 Guest 客户端通信。Agent 浏览器插件在 DSH 里增加了一个名为「Agent 浏览器」的右侧栏 Tab,模型调用 browser_* 系列工具时,由插件在右侧栏创建一个 <webview> 实例,用户全程可见 Agent 在操作的内容。
是什么¶
这是一个给 DSH 桌面版装上「看得见的手」的插件。它不是用 Playwright 或 Puppeteer 启动一个无头浏览器,而是复用 DSH 右侧栏里一个用户可见的 <webview>,让模型通过 15 个工具来「看见」并「操作」这个页面。
插件由 66jiujiu99 维护,分类为「联网工具」,目前星标数为 0。
核心功能¶
15 个工具¶
| 工具 | 作用 |
|---|---|
browser_open |
打开 URL 并回快照 |
browser_snapshot |
重拍快照,可控制返回范围与文本内容 |
browser_click |
点 @ref 或视口坐标 |
browser_type |
输入文本 |
browser_press |
按键(Enter/Tab/Escape/方向键/PageUp/PageDown/Home/End/Space) |
browser_scroll |
滚动页面 |
browser_nav |
back/forward/reload/goto |
browser_find |
按名字/文字找元素 |
browser_deep_snapshot |
CDP 深度模式:读取无障碍树(a11y) |
browser_screenshot |
截图并落盘为 PNG |
browser_tabs |
list/new/switch/close |
browser_console |
页面控制台近况 |
browser_network |
请求近况 |
browser_eval |
执行 JS |
browser_close |
释放页面 |
快照与增量更新¶
快照默认只返回视口内元素、不返回正文,最大头。动作类工具(open/click/type/press/scroll/nav)回快照时同样默认视口 + 无正文。隐藏/零尺寸元素会被几何剔除,不占用 token。
同一 URL 的动作后走增量 [delta]:只报 added/removed/changed(textChanged 时短采样 + textSample),stats 按增量文本自身计并附 +a -r ~c total=N。URL 变化 / 首帧 / 找不到上一帧自动回全量。
@ref 稳定:同一元素在多次快照里保持同一个 ref。页面重渲染把节点换掉后,点击会按「角色 + 名字」自动找回语义相同的元素(并在结果里标 recovered),找不到才回 NO_REF 让你重拍快照。
穿透 Shadow DOM 与同源 iframe¶
快照递归进入 open shadow root 与同源 iframe(含嵌套),点它们时坐标自动换算到顶层视口。跨源 iframe 受浏览器安全边界限制读不到,快照里会明确写「N 个跨源 iframe 的内容不可见」。
深度模式(CDP,可选)¶
普通快照只能看到 DOM 能读到的部分:跨源 iframe 和 closed shadow root 内容读不到。深度模式改用本机 CDP 端口直连 Chromium,读无障碍树(a11y),因此能看到这些内容,并给出顶层视口坐标。
启用深度模式需要:
1. 完全退出 DSH(含托盘)
2. 运行 tools/start-dsh-debug.cmd(或 .ps1)
3. 在插件配置里打开 deepMode.enabled: true,重新 apply 插件
用完关掉 DSH、用普通方式重启,端口就消失了。
深度模式多看到的东西包括:
- closed shadow root 里的元素
- aria-label 纯图标按钮
- 跨源 iframe 里的按钮/链接(给出顶层视口坐标)
- 但读不到 canvas 里画出来的文字(a11y 树里没有节点)
安装与启用¶
第 0 步:解除下载锁(仅限 ZIP 安装)¶
从 GitHub 下载 ZIP 并解压后,Windows 会给每个文件打上 “Mark of the Web” 标记。对 .cmd 这类可执行文件,这个标记会让 Windows 每次双击都弹「无法验证发布者,你确定要运行此软件吗」。先跑一次把它清掉:
tools\unblock-folder.cmd
只删 Zone.Identifier 数据流,不改内容、权限、所有者。默认处理本插件目录(含子目录),也可 -Path "C:\某个解压目录";想先看会改什么而不动手就加 -WhatIf。
第 1 步:拿到代码¶
# 推荐:git clone(不产生 MOTW,不会弹安全警告)
git clone https://github.com/66jiujiu99/dsh-agent-browser-auto.git
也可以 GitHub → Code → Download ZIP 解压(那就回到第 0 步先解除下载锁)。
本插件不发布 npm 包,也不需要 npm install,它零依赖,直接就是可加载的 DSH 插件目录。
第 2 步:装进 DSH¶
# 在 DSH 里(需要 danger-full-access 或逐次批准)
# target 传你 clone / 解压出来的那个目录的绝对路径
plugin_manager install_bundle target=C:\path\to\dsh-agent-browser-auto
以本地目录方式安装时,DSH 用的是 link:,package.json 的 files 字段在此模式下不生效(打包/发布时才生效)。因此目录里的 tools/、test/ 会一起留在原地,属正常现象。
安装后 Host 半边立即生效;Client 半边在桌面窗口里按需加载(首次安装若没看到 tab,按 Ctrl+R 刷新窗口一次)。
改了 index.js / lib/*.js 之后:Host 代码不会热更(loader 不监听文件),需要重新 apply:
plugin_manager set_plugin include:agent-browser-auto enabled=false → enabled=true。
改了 client.js:Client HMR 会自动热替换(可在 ~/.dsh/storages/agent-browser-auto/debug.jsonl 里看到新 clientId)。
卸载¶
plugin_manager set_plugin include:agent-browser-auto enabled=false # 先停用
plugin_manager remove_bundle target=dsh-agent-browser-auto # 再移除
审计/调试数据不会自动删除,如需清理:删掉 ~/.dsh/storages/agent-browser-auto/ 即可。
配置¶
配置项在 cordis.patch.yml 里 agent-browser-auto 行的 config 下:
| 键 | 默认 | 含义 |
|---|---|---|
allowedHosts |
[] |
非空时只放行这些主机(后缀匹配) |
blockedHosts |
[] |
优先拒绝的主机 |
enableEval |
false |
是否允许 browser_eval |
commandTimeoutMs |
45000 |
单条命令等待上限 |
pollWaitMs |
20000 |
长轮询挂起上限 |
maxResultBytes |
12000 |
工具结果上限 |
auditDir |
"" |
审计目录,空 = ~/.dsh/storages/agent-browser-auto |
debug |
true |
是否写 debug.jsonl |
deepMode.enabled |
false |
是否启用 CDP 深度模式 |
deepMode.portFile |
"" |
空 = %APPDATA%\@deepseek-ai\dsh-desktop\DevToolsActivePort |
deepMode.endpoint |
"" |
空 = 读 portFile 拼 http://127.0.0.1:<port>;非空直接用(仅允许 loopback) |
deepMode.maxNodes |
200 |
深度快照默认最多返回节点数 |
deepMode.timeoutMs |
8000 |
单条 CDP 命令超时 |
适用场景与注意¶
适合需要 DSH 桌面版与真实网页交互的场景,比如:
- 模型需要操作右侧栏里的某个网页
- 需要读取页面上可见的元素(包括 shadow DOM、同源 iframe)
- 需要截图、控制台、网络请求等调试信息
注意:
- 插件以当前 DSH 进程权限运行
- 深度模式(CDP)端口没有认证,只绑 127.0.0.1,运行期间本机任意进程都能通过它控制这个 DSH 实例(含执行任意 JS),所以默认关闭、端口随机;不用时用普通方式重启 DSH 即可让端口消失
- 安装前应检查源码与许可证,确认信任这份代码
总结¶
这个插件为 DSH 桌面版提供了一个「看得见的手」,让模型可以通过 15 个工具来操作右侧边栏里一个用户可见的浏览器页面。它复用用户眼前的真实页面,而不是启动一个额外的无头浏览器,降低了成本与复杂度。深度模式(CDP)可以读取无障碍树,补足了普通快照看不到的部分。
- 目录页:https://www.skillhub.cn/plugins/66jiujiu99/dsh-agent-browser-auto
- GitHub:https://github.com/66jiujiu99/dsh-agent-browser-auto