DeepSeek Harness 浏览器运行时插件 (dsh-browser-runtime)

前言

DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。当智能体需要处理网页交互时,直接将 Playwright 调用硬编码进 Agent 或使用独立的浏览器脚本,往往会导致状态管理混乱、环境隔离不足以及与 Agent 上下文割裂。dsh-browser-runtime 插件旨在解决这一痛点,它将 DeepSeek Harness Agent 扩展为一个具备真实浏览器能力的 Agent。

该插件由 LHKong7 维护,目前是模型推理分类下的一个开源项目。它不是简单的 Playwright 调用集合,而是一个完整的浏览器运行时环境,负责管理浏览器生命周期、序列化操作、检查点恢复以及与 Agent 的隔离通信。

安装与先决条件

在使用前,请确保环境满足以下条件:

  • DeepSeek Harness 已安装并运行。
  • Node.js 版本为 ^22.19 或 >=24。
  • pnpm 版本为 10。

安装插件时,使用官方提供的命令即可完成插件、Provider 和工具链的捆绑安装:

dsh plugin --profile web add -w dsh-browser-runtime

安装完成后,需要安装内置的 Chromium 运行时并验证环境:

dsh-browser-runtime install chromium
dsh-browser-runtime doctor

dsh-browser-runtime doctor 命令会报告 Node 版本、插件版本、Chromium 路径以及 Provider 的可用性。如果环境检查未通过,该命令会以非零状态码退出。

若从本地 Git 仓库安装,在 pnpm 10 环境下可能需要在 profile 的 pnpm-workspace.yaml 中添加构建许可:

allowBuilds:
  dsh-browser-runtime: true

核心功能

插件提供了 18 个常用的浏览器工具,覆盖导航、观察、交互、等待和结构化提取等场景。这些工具通过 Agent 的系统提示进行引导,使其能理解如何使用这些工具。

1. 浏览器操作与观察

  • browser_open: 打开指定 URL 并返回观察结果。
  • browser_observe: 刷新页面文本和交互元素引用。
  • browser_observe_next: 读取最新观察结果的下一页内容。
  • browser_wait: 等待页面或元素状态变化后再观察。

2. 交互与表单处理

  • browser_click: 点击观察结果中的引用元素。
  • browser_fill: 填充非密码字段。
  • browser_fill_credential: 使用存储的凭据填充字段(需配置凭据源)。
  • browser_press: 向焦点元素发送按键。
  • browser_select: 选择下拉选项。
  • browser_check: 设置复选框或单选框。
  • browser_scroll: 滚动页面。

3. 导航与截图

  • browser_back / browser_forward / browser_reload: 管理浏览器历史记录。
  • browser_screenshot: 保存全页或视口截图。

4. 结构化提取

  • browser_extract_list / _table / _links / _article: 从指定区域提取结构化数据。

运行时特性

隔离与状态管理

每个 DSH Agent 对象都拥有独立的 BrowserContext 和 Page。这意味着多个并行运行的 Agent 不会共享 Cookie、导航状态或页面引用。这解决了多 Agent 并发时的状态污染问题。

检查点恢复

插件支持 resume 检查点功能。通过保存 Cookie 和 localStorage,Agent 可以在浏览器重启后恢复到之前的会话状态。同时,支持 ephemeral 模式,用于启动全新的、无状态的浏览器环境。

安全与证据

插件内置了严格的公共网络默认策略、有界输出限制以及批准感知的凭据通道。每次 admitted action(许可操作)都会记录前后证据、耗时、结果以及机器可路由的恢复行,以便在失败时进行诊断和重试。

引用机制与防过期

Agent 接收的是从最新观察中生成的引用(ref),而非模型自行编写的 CSS 选择器或 JavaScript。运行时和 Provider 会进行 stale-reference checks(防过期检查),在执行前验证目标元素是否仍然有效,避免因页面 DOM 变化导致的操作失败。

典型用法

安装并验证完成后,在 Web Profile 下启动 Agent,并用自然语言描述任务。Agent 会自动接收 browser_* 工具及其使用指导。

例如,让 Agent 打开 Hacker News 并提取前十条故事:

  1. 启动 Web Profile。
  2. 描述任务:“打开 Hacker News,提取前十条故事”。
  3. Agent 执行 browser_open 和 browser_observe,获取页面引用。
  4. Agent 调用 browser_extract_list 等工具提取数据。

在 Product Hunt 的实战示例中,Agent 在非无头模式下记录运行,成功打开了 Product Hunt,抓取了 24 个最新产品的链接,并在 1 分 13 秒内生成了一份 Markdown 报告,期间未依赖网页搜索作为后备方案。

注意事项

  • 权限与运行时:插件以当前 DSH 进程的权限运行,因此请确保在安装前仔细审查源码和许可证(MIT)。
  • 性能建议:对于成百上千条静态记录的列表,建议优先使用官方 API 或直接抓取,而非依赖浏览器的分页和提取工具。

总结

dsh-browser-runtime 通过将 Playwright 封装为标准的 DSH 插件,为 DeepSeek Harness Agent 提供了生产级的浏览器交互能力。它通过隔离环境、状态检查点、操作证据记录以及安全的凭据处理机制,使得构建复杂的网页自动化 Agent 变得更加可靠和易于维护。

  • 插件目录:https://www.skillhub.cn/plugins/LHKong7/dsh-browser-runtime
  • GitHub 仓库:https://github.com/LHKong7/dsh-browser-runtime
羽毛球分组比赛记分
小程序二维码

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

小夜