前言¶
DeepSeek Harness (DSH) 的核心设计理念是“一切皆插件”。在智能体开发中,有时需要让模型直接操作浏览器环境。dsh-browser 插件通过一个配套的 Chrome/Edge MV3 扩展,将 DSH 与用户的浏览器标签页连接起来,使其能够读取页面内容并执行交互操作。
组件与架构¶
该插件在生产环境中采用三层架构,通过 WebSocket 和原生消息通信:
- DeepSeek Harness:运行在 DSH 环境中,提供
browser_*工具和 Web 设置卡片。 - Native Messaging Host:本地可执行文件,负责验证扩展 ID、转发消息并完成身份认证。
- 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¶
- 在浏览器中打开
chrome://extensions(或 Edge/Brave 的对应页面)。 - 开启“开发者模式”。
- 点击“加载已解压的扩展程序”,选择上述命令打印的目录。
- 复制显示的 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. 配置与验证¶
- 打开 DSH 的 Settings > Plugins > Plugin configuration > DSH Browser。
- 在扩展弹窗中确认状态显示为 Connected。
- 询问智能体列出浏览器标签页以验证连接。
工具列表¶
插件默认注册以下工具,可在 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 提供了直接控制浏览器的能力,将其纳入模型上下文、会话日志和审批流程。开发者可根据上述步骤进行安装和配置,构建需要直接操作网页的智能体应用。