前言¶
DeepSeek Harness (DSH) 的生态以插件化著称,开发者可以通过挂载不同的能力来扩展智能体的行为。在进行网页自动化任务时,如何让 AI 代理复用已有的登录状态、在真实环境中操作,并处理登录拦截、验证码或原生弹窗,是常见的痛点。dsh-browser-playwright-codex 插件通过 Playwright 提供了一套解决方案,它不依赖无头模式,而是驱动一个可见的浏览器窗口,并将控制权在遇到障碍时交还给用户。
插件定位¶
这是一个联网工具类插件,由开发者 miqian-nomad 维护。它的核心作用是让 AI 能够利用用户已有的浏览器登录账号,在真实网页上执行表单填充、列表抓取和多标签页操作。插件运行在一个可见的浏览器窗口中,用户可以随时接管操作,遇到需要人工介入的环节(如验证码)时,它会自动停止并等待指令。
核心功能¶
该插件提供了以下能力:
- 账号复用与状态保持:利用 Playwright 的 Profile 机制,插件可以使用用户已经登录的账号进行后续操作。即使窗口关闭或 Harness 重启,只要 Profile 未变,登录状态通常得以保持。
- 可见窗口与焦点管理:浏览器窗口会在桌面上显示,用户可以看到 AI 的操作过程。在窗口最小化时,插件不会抢夺系统的焦点,允许用户在后台继续使用电脑。
- 交互中断与等待:遇到登录页面、两步验证、验证码或原生弹窗(alert/confirm/prompt)时,插件会自动停止并报告状态,等待用户通过
browser_dialog等工具进行干预,而不是盲目点击。 - 稳定元素引用:通过
browser_snapshot获取页面快照后,插件会为可见元素分配ref编号。这种引用方式比 CSS 选择器更稳定,引用失效时会快速失败并提供解释。 - 多标签与截图:支持 Tab 的管理、切换、打开和关闭,支持页面截图,以及结构化数据提取(需启用对应能力)。
安装与启用¶
安装该插件需要指定一个 Harness Profile。插件已发布至 npm(自 v0.5.1 起),也可以直接从仓库安装。
dsh plugin --profile <name> add dsh-browser-playwright-codex
安装后,插件会自动挂载相关工具。需要注意的是,默认情况下 browser_evaluate(JavaScript 执行)和 browser_cdp(Chrome DevTools Protocol)这两个强力工具是未注册且禁用的,这有助于降低安全风险。
典型用法¶
安装完成后,无需额外配置即可开始使用。插件默认工具前缀为 browser_。
以下是一些常见的使用场景:
- 抓取列表:让 AI 打开特定网页,并提取前五条故事的标题和链接。
Open https://news.ycombinator.com and list the titles of the first five stories with their links.
- 查询订单:访问需要登录的站点,提取最近一次订单的配送地址。
Go to my orders page on <site> and tell me the delivery address on the most recent order.
- 表单填写与预览:填写联系表单,但在提交前停止,展示已填写的内容。
Fill in this contact form, but stop and show me the filled form before you submit it.
注意事项¶
使用该插件时,有几个关键点需要注意:
- 必须先获取 Snapshot:任何基于
ref的操作(点击、填充等)必须先运行browser_snapshot来获取有效的元素引用。 - 引用失效:
ref是基于文档上下文的,如果页面结构变化,引用会失效,插件会快速报错并说明原因,避免点错元素。 - 不可逆操作:提交表单、支付、删除或发送消息属于不可逆操作,建议在执行前先阅读表单内容,或让 AI 在执行前停止。
- 安全限制:出于安全考虑,
browser_evaluate存在严重发现已被关闭。如需启用高级功能,需在部署层面开启相应的 Capability。
结语¶
dsh-browser-playwright-codex 解决了智能体在真实网页环境中操作时的状态同步与可视化问题。它通过可见窗口和中断机制,降低了自动化调试的难度。如果你需要在 DSH 环境中处理复杂的登录流程或需要人工确认的场景,这是一个值得尝试的工具。