前言¶
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 并提取前十条故事:
- 启动 Web Profile。
- 描述任务:“打开 Hacker News,提取前十条故事”。
- Agent 执行
browser_open和browser_observe,获取页面引用。 - 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