DeepSeek Harness 插件 dsh-browser

前言

DeepSeek Harness (DSH) 的核心设计理念是“一切皆插件”。在智能体开发中,有时需要让模型直接操作浏览器环境。dsh-browser 插件通过一个配套的 Chrome/Edge MV3 扩展,将 DSH 与用户的浏览器标签页连接起来,使其能够读取页面内容并执行交互操作。

组件与架构

该插件在生产环境中采用三层架构,通过 WebSocket 和原生消息通信:

  1. DeepSeek Harness:运行在 DSH 环境中,提供 browser_* 工具和 Web 设置卡片。
  2. Native Messaging Host:本地可执行文件,负责验证扩展 ID、转发消息并完成身份认证。
  3. Chrome/Edge MV3 扩展:安装在浏览器中,负责观察页面、显示控制状态并执行具体的浏览器动作。

安装与启用

安装该插件需要满足前置条件:Node.js 22.19 或更新版本,以及安装了支持 MV3 和原生消息的 Chrome、Chromium、Edge 或 Brave 浏览器。

1. 安装 Harness 插件

将插件安装到 Web 配置文件中:

dsh plugin --profile web add github:justwe-bot/dsh-browser

2. 准备扩展目录

执行安装包内的脚本,将扩展打包到 DSH_HOME 下:

dsh plugin --profile web exec dsh-browser-native-install --prepare-extension

该命令会打印扩展目录的路径,通常为 $DSH_HOME/browser-extension。

3. 获取扩展 ID

  1. 在浏览器中打开 chrome://extensions(或 Edge/Brave 的对应页面)。
  2. 开启“开发者模式”。
  3. 点击“加载已解压的扩展程序”,选择上述命令打印的目录。
  4. 复制显示的 32 位字符扩展 ID。

4. 安装原生消息主机

使用获取到的 ID 安装原生主机:

dsh plugin --profile web exec dsh-browser-native-install \
  --extension-id <extension-id> \
  --browser chrome

这会将主机可执行文件写入 $DSH_HOME/browser-native-host/,并生成配置文件 browser-native-host.env。

5. 启动 Harness

在启动 Harness 的 shell 中加载生成的环境变量:

source ${DSH_HOME}/browser-native-host.env && dsh web

6. 配置与验证

  1. 打开 DSH 的 Settings > Plugins > Plugin configuration > DSH Browser。
  2. 在扩展弹窗中确认状态显示为 Connected。
  3. 询问智能体列出浏览器标签页以验证连接。

工具列表

插件默认注册以下工具,可在 Agent 的工具目录中使用:

  • 观察:browser_list_tabs(列出标签页)、browser_snapshot(获取快照)、browser_wait(等待)。
  • 标签页与导航:browser_new_tab(新建标签页)、browser_navigate(导航)、browser_back、browser_forward、browser_reload。
  • 页面操作:browser_click(点击)、browser_type(输入)、browser_scroll(滚动)、browser_key(按键)。
  • 脚本评估:browser_evaluate。若不需要该工具,可在配置中设置 browser-tools.config.enableEvaluate: false。

注意事项

  • 直接模式(Direct mode):该模式仅用于本地开发和诊断,不适用于生产环境。
  • 权限限制:模型工具无法激活标签页或聚焦浏览器窗口。browser_new_tab 总是打开后台标签页。
  • 页面限制:仅支持 HTTP/HTTPS 页面。不支持浏览器内部页面、扩展页面以及 file: URL。
  • 元素引用:快照中的元素引用仅在当前快照的 documentId 下有效,导航或文档替换后引用会失效(返回 STALE_REF)。
  • 审批机制:突变工具(如点击、输入)在默认 workspace-write 权限下需要审批。在 danger-full-access 策略下无需提示,但仍受 HTTP/HTTPS 限制。
  • 环境变量:DSH 会拒绝从 $DSH_HOME/.env 加载敏感的 DSH_* 变量,必须通过专用的 .env 文件加载。

结语

dsh-browser 为 DeepSeek Harness 提供了直接控制浏览器的能力,将其纳入模型上下文、会话日志和审批流程。开发者可根据上述步骤进行安装和配置,构建需要直接操作网页的智能体应用。

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

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

小夜