前言¶
DeepSeek Harness (DSH) 的理念是「一切皆插件」。在构建需要联网能力的模型时,通常面临两个痛点:一是调用 Shell 命令受到严格限制,二是需要频繁进行权限批准。aurora-lucas/dsh-chrome-browser 插件提供了一个面向模型的 chrome 工具,它通过 Chrome DevTools Protocol (CDP) 直接驱动机器上已安装的 Google Chrome,让模型能够导航、截图、检查和交互真实渲染的页面,且无需每次调用都进行 shell 或沙盒批准。
插件介绍¶
该插件由 Aurora-Lucas 维护,遵循 MIT 许可证。它是一个联网工具,本质上是 DeepSeek Harness 生态中的一个浏览器自动化模块。它运行在 Harness Host 进程内部,这意味着它继承了 Host 进程的权限特性。
核心功能¶
- 真实浏览器驱动:直接操作已安装的 Google Chrome 或 Chromium,而非模拟器。
- 真实渲染与截图:返回真实图片截图,并将截图保存为 PNG 文件。模型在流式响应中看到图片,人类也可以打开保存的文件查看。
- 内容获取:支持获取 DOM 元素的
outerHTML、元素的innerText以及运行 JavaScript 表达式。 - 调试与诊断:可查看控制台日志、未捕获异常以及网络请求。
- 交互控制:支持模拟鼠标点击、键盘输入等真实输入事件。
- 权限与沙盒优势:运行在 Host 进程中,调用过程被视为普通工具调用,无需额外批准;不受 shell 沙盒限制(例如在 Linux 上可规避 Landlock 限制)。
安装与启用¶
该插件需通过 npm 打包后安装到 Harness 的 profile 目录中,不能直接作为链接引用。
- 在插件目录下执行打包命令:
npm pack
- 这会生成一个 tarball 文件(例如
local-dsh-chrome-browser-1.0.4.tgz)。 - 使用 Harness 插件管理器(如
plugin_manager或action: install_bundle)安装该 tarball,目标为 tarball 的绝对路径。 - 安装后 Host 会提示
restart-required,需重启dsh web以加载新模块。
典型用法¶
该工具定义了一个 chrome 动作,通过 action 参数区分操作类型。页面 ID(如 p1)由 open 命令生成,后续操作可选指定 page,否则默认使用最近打开的页面。
- 打开页面:
chrome open url width height... - 页面导航:
chrome goto url page - 截图:
chrome screenshot path...(保存 PNG) - 获取 DOM:
chrome dom selector(返回元素 outerHTML) - 获取文本:
chrome text selector(返回元素 innerText) - 运行 JS:
chrome eval expression - 模拟点击:
chrome click selector - 模拟输入:
chrome type selector text - 查看控制台:
chrome console clear limit - 查看网络:
chrome network clear limit
系统要求与配置¶
- 运行环境:支持 Linux、macOS 和 Windows。
- 依赖:需要 Node.js 22+ 和 Google Chrome 或 Chromium(开发基于 Chrome 155)。
- 字体:若处理包含中文的页面,必须安装 CJK 字体(如 Noto CJK),否则截图中汉字会显示为空框。
- 平台差异:
- Linux:默认运行
--no-sandbox,因为 Host 进程通常以 root 运行,且受限 shell 无法启动 Chrome。 - Windows:默认不开启
--no-sandbox,关闭控制台窗口,使用taskkill终止进程树。 - macOS:同 Linux 路径,默认开启
--no-sandbox。
- Linux:默认运行
适用场景与注意¶
该插件适合需要模型直接操作真实网页、进行前端调试或自动化测试的场景。由于插件以当前 DSH 进程的权限运行,在安装前应检查源码与许可证。插件支持通过环境变量 DSH_CHROME_PATH 或配置项 chromePath 指定浏览器路径,自动探测列表包含主流安装路径。
总结¶
该插件通过 CDP 协议将真实的浏览器环境引入 DeepSeek Harness,使得模型能够像人类一样操作网页,同时规避了常规 Shell 调用的沙盒限制。更多细节可参考 GitHub 仓库 或 插件目录页。