前言¶
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.executablePath 或 launch.channel。
配置项¶
下面是已核实资料中列出的配置字段:
| 字段 | 默认值 | 含义 |
|---|---|---|
launch.executablePath |
— | 浏览器二进制的绝对路径,优先级更高 |
launch.channel |
auto(chromium → chrome → msedge) |
浏览器通道 |
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_click、browser_type、browser_select、browser_wait 等工具。
5、需要页面内容时调用 browser_get_text、browser_get_html 或 browser_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
目录页:本文未给出链接。