dsh-browser:DeepSeek Harness 的 Playwright 浏览器自动化插件

前言

DSH 的插件化方式,让 agent 可以把外部能力拆成工具调用。浏览器操作是其中一类常见需求:打开页面、填写表单、点击按钮、读取 SPA 渲染后的内容,再截图回看。社区插件目录是独立站点,与 DeepSeek / 幻方无官方从属关系。dsh-browser 解决的是让 agent 直接驱动真实 Web 页面。

这是什么

dsh-browser 是一个 Playwright 驱动的 DeepSeek Harness 浏览器自动化插件,提供一组 browser_* 工具,用于打开页面、导航、点击、输入、选择选项、截图、执行 JavaScript,并读取页面内容。

仓库地址:

https://github.com/ben7am1n/dsh-browser

核心工具

下面是已核实资料中列出的工具能力:

  • browser_open:打开或复用浏览器,可选导航到 URL。
  • browser_navigate:导航当前页面并等待加载。
  • browser_click:通过 CSS 选择器点击元素。
  • browser_type:在输入框输入文本,可选按 Enter。
  • browser_select:在 <select> 中选择选项。
  • browser_screenshot:捕获 PNG 到 <workspace>/browser-screenshots/,可用 read_image 查看。
  • browser_eval:在页面中执行 JavaScript 并返回 JSON。
  • browser_get_text / browser_get_html:读取可见文本或 outer HTML。
  • browser_wait:等待慢页面或懒加载内容。
  • browser_close:关闭浏览器,且可被任意工具重新打开。
  • browser_install:解释或验证浏览器可用性。

浏览器状态会跨工具调用保持。可以先用 browser_open 打开一次,再多次调用其他工具驱动同一个浏览器,完成后再用 browser_close 关闭。

默认以 headless 方式运行;已核实资料提到 headed 模式可能后续提供。

安装与启用

先为目标 profile 添加插件:

dsh plugin --profile <name> add dsh-browser

该插件依赖 playwright-core,并且需要 Chromium-based 浏览器。它会按以下顺序自动尝试通道:

chromium → chrome → msedge

如果当前环境没有可用浏览器,可以安装 Chromium:

npx playwright install chromium

也可以在插件配置中指定浏览器可执行文件或通道,例如配置 launch.executablePathlaunch.channel

配置项

下面是已核实资料中列出的配置字段:

字段 默认值 含义
launch.executablePath 浏览器二进制的绝对路径,优先级更高
launch.channel auto(chromiumchromemsedge 浏览器通道
launch.navigationTimeoutMs 默认导航/操作超时
launch.viewport 1280×800 页面视口
screenshotDir browser-screenshots workspace 下的截图目录

如果要在 profile 中覆盖浏览器通道和超时,可以写类似下面的配置:

# profile cordis.patch.yml
- id: browser
  config:
    launch:
      channel: chrome
      navigationTimeoutMs: 30000

这段示例表示将浏览器通道固定为 chrome,并把导航/操作超时设置为 30000 毫秒。

典型用法

可以按下面的顺序使用:

1、添加插件并确认 profile 加载成功。

2、确认浏览器可用;如果不可用,执行下面的命令,或配置 launch.executablePath / launch.channel

npx playwright install chromium

3、让 agent 调用 browser_open 打开目标 URL,或复用已有浏览器。

4、按页面需要调用 browser_clickbrowser_typebrowser_selectbrowser_wait 等工具。

5、需要页面内容时调用 browser_get_textbrowser_get_htmlbrowser_eval

6、需要视觉判断时调用 browser_screenshot。截图会保存在调用 agent 的 workspace 中,默认位于 browser-screenshots 目录,随后可以用 read_image 读取。

7、任务完成后调用 browser_close 关闭浏览器。

依赖与版本约束

package.json 中声明的版本为 0.1.1。其中与运行环境相关的依赖包括:

{
  "dependencies": {
    "@deepseek-ai/schemastery": "^3.18.1",
    "playwright-core": "^1.49.0"
  },
  "peerDependencies": {
    "@deepseek-ai/cordis": "^4.0.1",
    "@deepseek-ai/dsh-agent": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-tools": "^0.1.0-rc.6"
  }
}

这意味着部署环境除了安装插件本身,还需要满足对应的 peer 依赖版本约束,并且具备可用的 Chromium-based 浏览器。

适用场景与注意

dsh-browser 适合需要在 DSH agent 工作流中处理真实网页的开发者,例如表单填写、多步点击、SPA 内容读取、JavaScript 求值,以及截图后回看。

需要注意:

  • 插件会以当前 dsh 进程权限运行。它能在页面中执行 JavaScript、读取页面内容、操作表单和截图,安装前建议先检查源码、依赖和许可证。
  • 许可证为 MIT。
  • 默认 headless 运行;headed 模式在已核实资料中被描述为可能后续提供。
  • 截图位于调用 agent 的 workspace,模型需要使用 read_image 读取。

结尾

dsh-browser 的价值在于把“打开浏览器、操作页面、读取结果、截图回看”这些步骤变成 DSH 工具调用的一部分,减少为每个 agent 单独写浏览器脚本的重复工作。

GitHub:

https://github.com/ben7am1n/dsh-browser

目录页:本文未给出链接。

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

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

小夜