前言¶
智能体通常运行在容器、虚拟机或 CI 环境中,这些环境没有图形界面。当自动化流程遇到登录、双因素认证(2FA)、二维码登录或验证码时,纯无头浏览器自动化就会中断。同时,将 Cookie 或 storageState 复制到这些环境中往往不可靠,因为设备绑定凭证、指纹和 WebAuthn 无法直接迁移。
dsh-embedded-browser(原名 dsh-browser-panel)解决这一问题。它将浏览器嵌入在 DSH 主机内部,为每个会话提供独立的标签页。AI 通过 browser_embedded_* 工具控制该标签页,而人类可以在 DSH Web UI 的右侧边栏中实时查看或接管同一个标签页。
插件介绍¶
插件名称:imroc/dsh-browser-panel / dsh-embedded-browser(v0.3.0 重命名)
维护者:imroc
许可证:MIT
该插件提供了一套工具集,允许 AI 在后台驱动浏览器,同时允许人类在 Web UI 中通过侧边栏与页面交互。所有会话共享同一个持久化配置文件(Profile),因此一次登录的凭证在所有后续会话中保持有效。
核心功能¶
插件包含 12 个工具,用于控制、监控和与浏览器交互。这些工具采用惰性注册机制,不会在插件加载时立即注册,而是在满足特定条件时才可用。
工具列表¶
browser_embedded_status:报告状态,包括当前运行情况、URL、标题以及是否有待处理的操作。browser_embedded_navigate:打开 URL,首次使用时会启动浏览器;newTab选项可替换当前会话的页面。browser_embedded_snapshot:读取页面快照,返回标题、URL、可点击/可输入元素的编号列表及可见文本。browser_embedded_click:通过元素编号或可见文本点击。browser_embedded_type:在字段中输入文本,支持 React/Vue 友好的插入;submit参数可按 Enter 键提交。browser_embedded_press:模拟按键,如 Enter、Tab、Escape、方向键等。browser_embedded_scroll:滚动页面,支持上下左右及顶底方向。browser_embedded_emulate:模拟环境变化,包括设备预设(如iphone-14)、视口大小(width/height)或深色/浅色主题(theme)。reset: true可恢复默认设置。browser_embedded_eval:在页面中执行 JavaScript 并返回有限的 JSON 投影,可用于切换主题属性、读取计算样式或断言状态。browser_embedded_screenshot:截取页面 PNG 图片作为附件返回给模型。browser_embedded_ask_human:唤起当前会话的浏览器标签页,显示指令并等待用户按下“我已完成”。browser_embedded_close:关闭当前会话的标签页,配置文件保持不变。
惰性加载机制¶
这 12 个工具默认不会在插件加载时注册。它们会在以下任一情况被激活:
1. 成功调用 browser-use 技能;
2. 人类输入 /browser-use 手势;
3. 在会话日志中发现过去成功调用过这些工具。
因此,没有 browser-use 技能,这些工具不会出现。安装此插件时,建议同时安装 browser-use 技能。一旦激活,工具会在整个主机进程期间保持可用,包括后续创建的所有会话。
侧边栏交互¶
在 DSH Web UI 中,右侧边栏会根据需要打开一个“浏览器”标签页,实时镜像 AI 正在操作的标签页。该标签页支持鼠标、滚轮、键盘和 IME 输入,并非截图查看器,事件会实时回放。当需要人工介入时,会话标签页会显示横幅和“我已完成”按钮。
安装与启用¶
环境要求¶
- Node.js:>= 22.19
- DeepSeek Harness (DSH):>= 0.1.5-rc.2
插件配置¶
插件使用持久化配置文件:
$DSH_HOME/embedded-browser/profile
如果你是从旧版本(0.2.0,原名 dsh-browser-panel)迁移,可以通过配置 profileDir 指向旧的 browser-panel/profile 目录来保留登录状态。
典型用法¶
使用 browser_embedded_emulate 模拟设备或主题,随后截图验证效果:
browser_embedded_emulate { "device": "iphone-14" }
browser_embedded_screenshot
browser_embedded_emulate { "theme": "dark" }
browser_embedded_screenshot
browser_embedded_emulate { "reset": true }
注意事项¶
- 依赖技能:必须安装并使用
browser-use技能才能看到browser_embedded_*工具。 - 版本兼容:v0.3.0 对应
dsh-embedded-browser,v0.2.0 对应dsh-browser-panel,工具前缀已统一为browser_embedded_。 - 安全性:插件以当前 DSH 进程的权限运行,请确保从可信来源安装并检查许可证。
总结¶
dsh-embedded-browser 为运行在无头环境中的智能体提供了图形化交互能力。通过将浏览器嵌入主机,结合 AI 的自动化控制和人类在侧边栏中的实时接管,解决了传统无头自动化在登录、验证码等场景下的痛点。