前言¶
在 DSH 里让模型「看网页、点按钮、填表单」,常见做法是 HTTP 抓取或无头浏览器脚本:前者拿不到完整交互后的 DOM,后者往往和你在桌面里用的浏览器不是同一套运行时,调试也不直观。dsh-browser(@istarry/dsh-browser)走的是另一条路——在 harness home 下安装并复用一套 Chromium,通过 browser_open 与 browser_interact 给 Agent 一个真实的有头浏览器,多次工具调用之间会话状态保持。下面介绍它是什么、怎么装、使用时要注意什么。
这是什么¶
维护者 iStarryDust 在 GitHub 开源的 DSH 插件,社区目录分类为联网工具。一句话定位:在 DSH 进程里管理 Chromium 运行时,并向 Agent 暴露两个浏览器工具,页面状态在同一会话内可延续。
当前包版本为 0.1.1(见仓库 package.json),许可证 MIT。
核心功能¶
两个 Agent 工具¶
browser_open:打开页面,返回可交互的页面状态。browser_interact:在同一浏览器会话里点击、输入、滚动、读取;状态在多次调用之间保持。
设置页与 Chromium 管理¶
插件包含设置 UI(包 @istarry/dsh-client-ui-settings-browser),用于:
- 控制是否允许 Agent 使用浏览器(配置项
agentUseBrowser)。 - 编辑自定义请求头(例如特定 UA、Referer)。
- 查看 Chromium 安装状态。
Chromium 不随 npm 包分发,由插件在运行时检测、安装并复用,安装在用户目录下的 harness home(~/.dsh),不写入系统全局浏览器路径。
包结构(职责拆分)¶
| 包 | 职责 |
|---|---|
@istarry/dsh-browser |
Chromium 运行时管理、browser_open / browser_interact 工具、安装/检测 Remote |
@istarry/dsh-client-ui-settings-browser |
设置页:Agent 使用开关、请求头编辑、安装状态 |
安装与启用¶
在 DSH 环境中执行官方安装命令:
dsh plugin add @istarry/dsh-browser
装完后重启 DSH 服务。README 写明:首次使用需要在设置页里安装 Chromium(约 400MB 下载、数百个文件),装好后不会重复下载。
典型用法(工作流)¶
README 未给出逐条对话示例,可复现的流程如下:
- 安装插件并重启 DSH。
- 打开插件设置页,完成 Chromium 安装;按需配置请求头,并决定是否开启
agentUseBrowser。 - 在会话中让 Agent 调用
browser_open打开目标 URL,拿到页面状态。 - 在同一会话中继续调用
browser_interact完成点击、输入、滚动或读取内容;无需每次重新开浏览器。
工具名与行为以仓库 README 为准;peer 依赖包括 @deepseek-ai/cordis、@deepseek-ai/dsh-tools、@deepseek-ai/dsh-session 等(见各包 package.json)。
权限、兼容性与适用场景¶
务必知晓的行为¶
这部分在 README 里单独强调,安装前应读完:
- 会下载并安装 Chromium 运行时到
~/.dsh(首次约 400MB,需要网络)。 - 会启动有头浏览器进程(不是无头),占用内存并出现窗口。
browser_interact允许模型操作真实网页(点击、输入、提交表单)。只有在设置页明确开放agentUseBrowser时,才应让 Agent 使用;模型可能接触到你打开的任何页面。
插件以当前 DSH 进程权限运行;安装前建议查看 源码与 LICENSE,确认符合你的安全策略。
兼容性¶
- README 记载实测环境:DSH
0.2.0-rc.2。 - Chromium 由插件在用户目录安装,与系统已安装的 Chrome/Chromium 相互独立。
适合谁¶
- 需要在 DSH 里做可交互网页操作(登录后页面、表单、动态渲染)的智能体开发者。
- 希望用有头 Chromium 对照页面行为,而不是只靠静态 HTTP 或无头脚本的场景。
不适合只想轻量抓公开 HTML、且不愿在本机多一个浏览器进程与约 400MB 运行时下载的环境。
结尾¶
dsh-browser 把「真实有头 Chromium + 会话保持」收进 DSH 插件:两个工具覆盖打开与交互,设置页管 Chromium 安装、请求头与 Agent 开关。社区目录与 GitHub 如下,细节以 README 为准。