前言¶
DeepSeek Harness (DSH) 采用插件化架构,允许通过扩展功能增强能力。dsh-agent-browser 是一个插件,旨在让模型通过工具调用直接控制 DSH 右侧边栏浏览器。它提供了读取页面内容、操作元素、导航、切换视口大小以及截取视口截图的能力,使模型能够像人类一样与网页交互。
核心功能¶
该插件提供以下工具,用于浏览器控制:
- browser_tabs:列出当前会话的浏览器标签页。信息包含 id、title、url、加载状态、失败状态、验证状态、挂载状态以及载体信息(carrier)。
- browser_read:读取标签页内容。支持
mode: 'text'(默认,读取可见文本)、mode: 'elements'(读取可交互元素)、mode: 'html'(读取页面 HTML)。读取前应检查failed状态,失败页面读取结果为空。 - browser_act:执行页面操作。支持
click、type、press、scroll、select、reload、wait。操作目标可通过ref(来自 elements 模式)或 CSS 选择器指定。wait支持固定延迟或选择器状态等待(visible、attached、hidden)。 - browser_screenshot:截取当前视口。支持预设
phone、tablet、desktop以及custom尺寸。 - browser_navigate:打开新标签页或导航到指定 URL。
- browser_viewport:切换标签页的视口大小。预设包括
auto、phone(390×844)、tablet(834×1112)、desktop(1280×800) 以及custom。 - browser_close:关闭指定的标签页。
- browser_eval:在页面中运行 JavaScript。该功能默认禁用,需配置
enableEval: true才能使用。
安装方式¶
该插件可通过以下方式获取:
- 技能库目录:https://www.skillhub.cn/plugins/guanhaisen/dsh-agent-browser
- GitHub 仓库:https://github.com/guanhaisen/dsh-agent-browser
典型用法¶
以下为模型进行自动化浏览的典型工具调用流程:
browser_navigate { url: "https://example.com" }
browser_read { mode: "elements" } // 获取可交互元素的引用
browser_act { action: "type", ref: "e1", text: "hello" }
browser_act { action: "click", ref: "e2" }
browser_read { mode: "text" } // 确认变更
browser_screenshot { preset: "desktop" }
browser_viewport { preset: "phone" }
browser_close { tabId: "tab4" }
注意事项¶
- 平台限制:仅支持桌面端(使用 Electron
<webview>)。在 Web 配置文件中,侧边栏浏览器使用<iframe>,无法读取 DOM,相关操作会返回明确原因。 - 配置要求:
browser_eval功能默认禁用,需在配置中开启enableEval: true才能使用。 - 状态字段:标签页有四个关键状态字段。
mounted表示 DOM 已挂载且可驱动;loading表示导航正在进行;failed表示加载失败(显示错误页);unverified表示渲染器无响应或文档不可达。 - 截图限制:当页面处于
failed或unverified状态时,截图操作会被拒绝。 - Wait 行为:
wait支持固定延迟或基于选择器状态(visible/attached/hidden)的等待。