浏览器自动化
智能体替你操作浏览器 —— 导航、点击、输入、读取,以及排查页面到底在做什么。
智能体通过内置工具集控制浏览器,因此你可以让它在网页上做事,而不仅是回答问题。
它能做什么
- 导航 —— 打开 URL,前进/后退。
- 读取 —— 获取页面文本或 Markdown,以及页面结构的无障碍树(accessibility tree)快照。
- 交互 —— 点击、输入、填写字段、滚动、按键、上传文件。
- 检查 —— 查找元素、查询 DOM、读取元素详情。
- 标签页 —— 列出、查询并在已打开的标签页间切换。
- 截图 —— 抓取屏幕截图。
- 执行 JS —— 在页面上运行 JavaScript。
- 等待 —— 在继续前等待元素或条件。
- 调试 —— 在你点名要求时,读取页面的控制台和网络请求(见下文)。
它还具备**智能输入(smart input)**引擎(browser_input):探测目标字段,选择最佳输入
策略 —— 包括 ProseMirror、Slate、Draft.js、Lexical 等富文本编辑器 —— 并回读结果加以验证。
如何定位元素
页面快照会给每个可交互元素标上 [e12] 这样的 id。智能体按 id 操作:
browser_click_by_id、browser_type_by_id、browser_fill_by_id;自 v0.3.16 起,
browser_input、browser_probe、browser_upload_file 和 browser_wait_for 也接受
element_id。id 精确对应某一个节点;如果页面已变化、元素已不存在,调用会被拒绝,智能体
会重新取快照,而不是去操作此时恰好匹配的其他元素。
CSS 选择器形式(browser_click、browser_type、browser_fill)是给没有 id 的元素用的
后备手段。它们默认不提供给智能体:智能体必须用 load_selector_tools 主动加载,加载后
它们就是普通的工具调用,受同样的权限检查。
控制台与网络调试
有两个只读工具用于排查"这个页面哪里坏了"。只有当你自己的消息里包含该工具的确切名称 时,智能体才会拿到它 —— 只说"这个页面为什么慢"是不够的。这是有意为之:网络日志可能包含 凭据,所以除非你明确点名,否则什么都不会被记录。
调用 browser_console_messages,告诉我这个页面报了哪些错。调用 browser_network_requests —— 我先把结账流程点一遍,然后告诉我哪些 API 调用失败了。browser_console_messages 读取该标签页所有 frame(包括跨源 iframe)的控制台输出和
未捕获的 JavaScript 错误(级别、文本、来源、行号、时间戳)。它读的是浏览器本来就保留的
缓冲区,因此你提问之前记录的消息也包含在内,无需重新加载。消息文本按页面原样返回 ——
不做脱敏,所以页面若把令牌打到控制台,智能体和你的模型提供商都会看到。
browser_network_requests 列出请求 —— URL、方法、状态码、资源类型、耗时、线上字节数,
以及白名单内的请求头。录制方式如下:
- 录制从点名该工具的那一轮开始时启动,覆盖所有标签页。在此之前发出的请求看不到, 所以请在提问后再加载(或重新加载)页面。
- 录制会跨轮次持续 —— 你可以自己在页面上操作后再问 —— 直到智能体调用
browser_network_capture_stop或满 30 分钟为止。用完后请让智能体停止录制。 - 请求体和响应体从不记录。
Authorization、Cookie、Set-Cookie的值显示为<redacted>。 - 每次调用最多返回 100 条。智能体可按资源类型(如
xmlhttprequest、fetch)和/或只看 失败请求(4xx、5xx、网络错误)来缩小范围。
这两个工具都需要真实浏览器。部分部署使用的无头进程内引擎会按名称拒绝它们,而不是返回一份 会被误读为"页面什么也没做"的空日志。
示例
打开 Hacker News,给我热门前 5 条的标题。用我 User 资料里的信息填写此页的注册表单,但在提交前停下来让我先检查。权限
浏览器操作遵循你的 Agent execution 档位:
| 智能体的操作 | 从哪一档起无需询问 |
|---|---|
| 导航、读取、快照、截图、等待、查找元素、读取控制台/网络 | Read-only(所有档位) |
点击、输入、填写、滚动、按键、切换标签页(browser_activate_tab) | Browser auto |
智能输入(browser_input)、上传文件、执行 JavaScript | Full auto |
切换标签页算作交互(v0.3.16):它会改变你眼前看到的内容。智能输入和文件上传不属于浏览器 交互这一档,所以在 Full auto 以下都会询问 —— 上传是因为它要读取你磁盘上的文件。
Pack 站点规则可以针对特定 网站,在档位之上再加一道询问或拒绝。点击或填写按其所在标签页的 URL 判定。