浏览器代理工具
智能体进行浏览器自动化时只获得一个工具:
browser- doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act/requests/errors/text/emulate
映射关系如下:
browser snapshot返回稳定的 UI 树(AI 或 ARIA)。- 快照
query会保留包含所有以空白分隔的查询标记的行,且忽略大小写。匹配的行会保留元素引用;结果会报告匹配数量并遵守maxChars。该查询会在返回的快照中搜索,因此如果源内容被截断,请增大快照范围。 browser requests读取已收集的网络日志。可选的filter用于匹配 URL 或资源类型中的子字符串;limit保留最近的条目(默认 50)。结果会报告匹配的已收集请求总数total以及返回的条目数returned;输出预算可能会进一步减少该数量。clear=true会在读取后清除整个已收集日志,包括因过滤或限制而省略的条目。browser errors读取已收集的页面错误。limit保留最近的条目(默认 50)。结果会报告已收集错误总数total以及返回的条目数returned;输出预算可能会进一步减少该数量。clear=true会在读取后清除整个已收集日志,包括因限制而省略的条目。页面错误仍然属于不可信的外部内容。browser text使用第一个显式selector匹配项提取可见正文,否则使用第一个article、main或body。maxChars必须为正数;其默认值为 40,000 字符,且不能超过该值。工具的输出预算可能会进一步截断。页面文本仍然属于不可信的外部内容。browser emulate应用以下一项或多项设置:device(Playwright 设备名称)、colorScheme(dark、light、no-preference,或用于清除的none)、timezoneId和locale。这些设置按该顺序应用,并返回一个applied列表;它们不是原子操作。这四个操作支持本地(local)和节点(node)目标,但不支持 Chrome MCP 的现有会话配置文件。browser navigate还会内联返回已加载页面的快照(高效的交互层级,因此有效负载保持紧凑且有界),因此智能体无需再调用快照。报告跨文档导航的批量act结果也会包含相同的全新页面状态。解析为下载的导航会跳过该快照。browser act使用快照的refID 来执行点击/输入/拖拽/选择。 当捕获的控件消失时,其绑定的 ref 会失效。在重试操作前,请先获取新快照。browser screenshot捕获像素(整页、元素或带标签的 refs)。- 如果截图超时,而浏览器仍在捕获或恢复页面设置,那么在该标签页上继续截图、调整大小或更改设备将返回恢复错误。请在捕获完成后重试。如果仍然卡住,请关闭并重新打开受影响的标签页;其他标签页仍然可用。
browser doctor检查 Gateway、插件、配置文件、浏览器和标签页的就绪状态。browser接受以下参数:profile:用于选择指定的浏览器配置文件(openclaw、chrome 或远程 CDP)。target(sandbox|host|node):用于选择浏览器所在位置。- 在沙箱会话中,
target: "host"要求设置agents.defaults.sandbox.browser.allowHostControl=true。 - 如果省略
target:沙箱会话默认使用sandbox,非沙箱会话默认使用host。 - 自动路由优先使用主机浏览器。如果本地浏览器能力不可用,则可以使用单个已连接的浏览器节点。显式指定
target="node"、使用node选择器或已配置的节点固定会覆盖该偏好;target="host"则保持本地。
这样可以让智能体保持确定性,并避免脆弱的选择器。
智能体工具参数示例(可复用来自 tabs 或 open 的 targetId):
对于浏览器仪表盘,请使用其稳定的组件名称,而不是标签页 ID:
dashboard 选择器适用于当前会话。请先使用 dashboard 工具创建已保存的 browser:dashboard 组件;其 props 用于选择 URL 和可选受管配置文件。browser 会解析仪表盘中显示的同一页面,用于快照、点击、输入和导航。不要将该选择器与显式配置文件、节点或 target ID 结合使用。open 会显式恢复已停止的仪表盘,close 会停止其正在运行的浏览器。其他操作会让已停止的仪表盘保持停止状态。普通的原始标签页关闭无法关闭仪表盘拥有的标签页。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw