dsh-edge-bridge:让 DeepSeek Harness 直接操作你的 Edge 浏览器

前言

DeepSeek Harness(DSH)是一个基于 Electron 的本地智能体框架,插件是其扩展能力的主要方式。在构建需要浏览器交互的场景时,通常有两种做法:一是使用 Playwright/Puppeteer 等无头浏览器,二是手动操作用户日常使用的浏览器。前者需要额外的渲染环境,后者则缺乏统一的控制接口。dsh-edge-bridge 插件解决了这个问题:它通过一个本地 WebSocket 桥接和 Edge 扩展,让 DSH 直接控制你正在使用的 Edge 浏览器窗口,提供快照、点击、输入、滚动、截图等 14 个工具。

插件说明

dsh-edge-bridge 是一个分类为「联网工具」的 DSH 插件,由维护者 zbc200205-spec 开发。插件不使用无头浏览器,而是直接操作用户打开的 Edge 窗口。它通过本机服务 127.0.0.1:17373 与 Edge 扩展通信,使用随机 token 握手,并将 14 个 edge_* 工具注册到 DSH 的 ctx.tools 中。插件完全使用 Node 内置模块,零 npm 依赖,安装后无需 pnpm install。

核心功能

插件提供 14 个工具,覆盖浏览器操作的主要场景:

  • edge_status:检查桥接服务是否运行、扩展是否连接、当前标签页数量。
  • edge_launch:启动一个带扩展的 Edge 浏览器(独立 profile),支持指定 URL、无头模式、窗口大小。
  • edge_tabs:标签页列表、打开、激活、关闭。
  • edge_navigate:导航到指定 URL 并等待加载完成。
  • edge_snapshot:读取页面内容,包括标题、URL、视口、可见文本,以及可交互元素(带 ref)。
  • edge_click:点击元素,支持通过 ref、selector 或文本定位,可设置点击次数和 trusted 标志。
  • edge_type:输入文本,支持清空、回车提交和 trusted 模式。
  • edge_key:发送按键或快捷键。
  • edge_scroll:滚动页面或元素,支持相对滚动或滚动到指定位置。
  • edge_wait:等待条件满足,支持选择器、文本、URL 包含或自定义表达式。
  • edge_screenshot:截取视口或整页,支持保存到磁盘和作为附件,支持调整格式。
  • edge_eval:在页面主世界执行 JavaScript,可绕过页面 CSP。
  • edge_highlight:高亮指定 ref 的元素,便于人工核对。
  • edge_open_bridge_tab:打开一个常驻桥接页,避免 service worker 被回收导致的连接中断。

插件支持两种点击/输入模式:默认使用 DOM 合成事件(isTrusted=false),不挂调试器,适合日常场景;trusted: true 时走 chrome.debugger 发送真实鼠标/键盘事件(isTrusted=true),适合需要严格校验真实事件的站点,但会挂上调试器并在浏览器顶部显示提示条。

安装与启用

从 GitHub 安装:

dsh plugin --profile desktop add github:zbc200205-spec/dsh-edge-bridge

从 npm 安装:

dsh plugin --profile desktop add dsh-edge-bridge

desktop 是 profile 名称,可按需替换。装完后 DSH 会自动重新加载插件(约 2 秒),可通过 edge_status 检查版本是否对上。如果工具未出现,可重启 DSH。也可在 DSH 市场中搜索 dsh-edge-bridge。

典型用法

装好后在对话中直接调用工具。例如,列出页面上的链接:

  1. 调用 edge_launch 打开目标页面。
  2. 调用 edge_snapshot 获取页面内容。
  3. 在返回的 ref 中筛选链接并调用 edge_click 打开。

典型流程为:

edge_status → edge_launch → edge_snapshot → edge_click [ref] → edge_type → edge_screenshot

配置

配置通过覆盖插件包自带的 cordis.patch.yml(dsh.bundle.patch)实现。按 id 覆写,不要使用 insert。示例:

- id: dsh-edge-bridge
  name: dsh-edge-bridge
  config:
    port: 17373          # 桥端口,扩展会在 17373–17380 范围内探测
    host: 127.0.0.1
    edgePath: ''         # msedge.exe 路径,默认自动探测
    extensionDir: ''     # 扩展目录,默认使用插件包内的 edge-extension
    userDataDir: ''      # edge_launch 的独立 profile 目录

适用场景与注意事项

本插件适合需要在 DSH 中直接操作用户 Edge 浏览器的场景,例如自动化测试、信息采集、表单填写等。安装前应检查源码与许可证,确保符合使用要求。

插件以当前 DSH 进程的权限运行,除本机回环地址外不联网。桥接服务只监听 127.0.0.1,并校验来源必须是回环地址,局域网内其他机器无法连接。扩展申请的权限包括 tabs scripting storage alarms debugger webNavigation + <all_urls>。其中 debugger 仅在 trusted 模式、整页截图和 edge_eval 时使用。

安装后,你的智能体将能够看到浏览器中的页面内容,仅在信任该智能体的前提下使用。部分页面(如 edge://、chrome://、PDF)不允许注入脚本,需要切换到普通 HTTP/HTTPS 页面。

开发与独立模式

插件仓库发布的是可安装的包本体(lib/、bin/、edge-extension/ + 文档),没有构建步骤。如需快速自查,可在仓库中运行:

node -e "import('./lib/index.js').then(m => console.log(m.VERSION))"
node bin/edge-bridge.mjs --launch-edge
curl http://127.0.0.1:17373/health

在不安装插件的情况下,也可直接运行:

node bin/edge-bridge.mjs --launch-edge --headless
curl http://127.0.0.1:17373/health

总结

dsh-edge-bridge 提供了一套从快照到交互的完整工具集,让 DSH 能直接控制用户日常使用的 Edge 浏览器。通过本地 WebSocket 桥接和 MV3 扩展,它实现了零依赖、本地运行、权限可控的浏览器自动化方案。更多细节可参考插件目录页与 GitHub 仓库。

  • 插件目录:https://www.skillhub.cn/plugins/zbc200205-spec/dsh-edge-bridge
  • GitHub:https://github.com/zbc200205-spec/dsh-edge-bridge
羽毛球分组比赛记分
小程序二维码

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

Xiaoye