dsh-browser-bridge:通过本地 WebSocket 控制/读取浏览器

前言

DeepSeek Harness(DSH)采用了插件化架构。当智能体需要直接操作真实浏览器(如读取页面、点击交互)时,直接编写 HTTP 请求或 JS 代码通常不够灵活。dsh-browser-bridge 插件通过本地 WebSocket 建立了一条通道,让 DSH Agent 能够通过标准的浏览器工具接口调用浏览器扩展的功能。

插件定位

这是一个 DeepSeek Harness(DSH)插件,配合浏览器扩展使用。它允许 DSH Agent 通过 ws://127.0.0.1:3080/ 读写和控制真实浏览器。维护者是 liyongzheng666,协议为 MIT。

核心功能

服务端提供 13 个模型端工具,分为以下几类:

  • 状态与导航

    • browser_status:检查连接状态
    • browser_list_tabs:列出所有标签页
    • browser_activate_tab:激活指定标签页
    • browser_navigate:导航到指定 URL
  • 页面读取与快照

    • browser_snapshot:获取页面快照(HTML)
    • browser_read_page:读取页面内容
    • browser_screenshot:截取页面截图
  • 交互操作

    • browser_click:点击元素
    • browser_type:输入文本
    • browser_press:按键
    • browser_scroll:滚动页面
    • browser_wait:等待
  • 代码执行

    • browser_eval:在页面上下文中执行 JavaScript

安装与启用

安装分为服务端插件和浏览器扩展两部分。

1. 安装服务端插件

使用官方安装命令:

dsh plugin --profile web add dsh-browser-bridge

2. 安装浏览器扩展

以 Firefox 为例:

  1. 打开 about:debugging#/runtime/this-firefox。
  2. 点击「临时加载附加组件…」。
  3. 选择仓库中的 extension/manifest.json 文件。

配置项

默认配置如下(具体路径取决于 DSH 配置文件):

  • path: /bridge (WebSocket 路径)
  • commandTimeoutMs: 60000 (命令超时时间)
  • screenshotDir: ~/.dsh/browser-bridge (截图保存目录)
  • maxMessageBytes: 8 MiB (WebSocket 最大消息大小)

典型用法

在 DSH 对话中输入:

browser_status

在输出中应能看到连接成功的标识:

Browser bridge: connected

注意事项

  • 安全范围:插件默认只绑定 127.0.0.1,无鉴权,仅建议在本地使用。
  • 权限风险:browser_eval 工具可执行页面 JS,功能强大,请仅授权可信 Agent 使用。
  • 扩展权限:浏览器扩展需要 <all_urls> 权限以读取标签页和操作任意网页。

总结

该插件通过轻量级的本地桥接方案,实现了 Agent 与真实浏览器的无缝交互。源码与详细说明请访问:GitHub。

羽毛球分组比赛记分
小程序二维码

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

小夜