DeepSeek Harness 插件:dsh-embedded-browser

前言

智能体通常运行在容器、虚拟机或 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 的自动化控制和人类在侧边栏中的实时接管,解决了传统无头自动化在登录、验证码等场景下的痛点。

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

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

小夜