前言¶
DeepSeek Harness (DSH) 采用插件化架构,允许通过插件扩展 Harness 的能力。@kasenri/dsh-browser 是一个社区插件,旨在解决 AI 代理无法直接操作浏览器的问题。它通过 Harness 原生的基础设施(agents, tools, sessions),将浏览器自动化能力注入到 DSH 流程中。
插件介绍¶
这是一个让 AI 真正操作浏览器完成任务的插件。它通过 ctx.browserAutomation 提供 BrowserAutomationService,并对外暴露 agent_browser 工具,用于驱动底层的 agent-browser CLI(版本 0.33.2,必须处于 PATH 环境中)。
插件支持打开网页、点击、输入、翻页、读取内容和下载文件等操作。这些能力可用于网页测试、信息采集和自动化流程。插件提供域名限制等安全控制,并对输出进行了保护机制处理。
安装与启用¶
安装该插件需要 DSH 处于开发者预览阶段。安装命令如下:
dsh plugin --profile web add @kasenri/dsh-browser
安装后需要重启 profile(或开启新会话)以生效。该包声明了一个 dsh.bundle 补丁,注册时会自动将其作为 profile layer。
插件依赖于以下组件:
- @deepseek-ai/dsh (版本 0.1.5-rc.2)
- @deepseek-ai/cordis (版本 4.0.2)
- agent-browser (版本 0.33.2,必须在 PATH 中)
- Node.js (版本 >= 22.19.0)
如果 agent-browser 未在 PATH 中,可以通过 command、executablePath 配置项,或设置环境变量 DSH_BROWSER_EXECUTABLE_PATH 来指定可执行文件路径。
核心功能¶
插件提供以下核心能力:
- 浏览器操作:支持打开网页、点击、输入、翻页、读取内容和下载文件。
- 多种输入模式:
agent_browser工具支持多种输入模式,包括args(原始参数)、semanticAction(语义动作)、job(批量步骤)、qa(页面质检)、electron(CDP 连接)、sourceLookup(DOM/React 证据查找)和networkSourceLookup(网络请求证据查找)。 - 标准工作流:推荐的工作流为
open→snapshot -i→ 使用@refs→click/fill/select→ 再次snapshot -i。
安全与保护机制¶
为了防止自动化过程中的意外和风险,插件内置了多层保护机制:
- 防止过时引用:refs 是页面作用域的,插件会阻止对非最新快照中目标进行操作。
- 防止标签漂移:如果活动目标发生变化(包括
about:blank),插件会触发恢复机制,而不是盲目猜测。 - 验证磁盘产物:截图、下载文件、PDF、HAR/trace 等产物在报告成功前,会验证其存在性、大小和类型。
- 阻止敏感信息:
.agent-browser状态、密码存储、cookie 数据库被阻止;所有工具输出中的凭证形状值会被脱敏。 - 域名限制:配置
allowedDomains后,会进行预检,并在启动时注入--allowed-domains参数。启用限制后,拒绝 CDP attach (electron/connect),因为无法在现有浏览器上下文中强制执行。 - 强制人工验证:插件不会绕过 CAPTCHA、OTP、passkey、WebAuthn 和 2FA,遇到这些情况会停止并报告。
配置说明¶
插件支持以下配置项:
| 配置项 | 默认值 | 说明 |
|---|---|---|
command |
agent-browser |
要调用的可执行文件名称。 |
namespace |
— | 可选的 agent-browser 命名空间。 |
executablePath |
DSH_BROWSER_EXECUTABLE_PATH |
指向 Chromium/Chrome 可执行文件的路径。 |
timeoutMs |
35000 |
每次子进程调用的默认超时时间。 |
maxOutputChars |
8000 |
内联输出的字符预算,超过则写入 spill 文件。 |
maxOutputLines |
120 |
内联输出的行预算,超过则写入 spill 文件。 |
spillDir |
~/.dsh/browser-artifacts |
写入紧凑化输出的目录。 |
allowedDomains |
[] |
严格的域名白名单,用于域名隔离。 |
registerTool |
true |
是否注册 agent_browser 工具。 |
注意事项¶
- 版本依赖:插件仅针对特定版本的 DSH 和相关依赖进行了测试,不保证与其他版本兼容。
- 权限运行:插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
- 状态管理:插件通过验证磁盘产物来确认操作成功,这意味着必须在文件系统中留下痕迹。