浏览器
真正可被 Agent 驱动的无头浏览器 —— 导航、点击、输入、截图、跑 JS。
ToShop 自带一个托管的无头浏览器(Playwright)。Agent 能端到端驱动它:打开 URL、读页面的可访问性树、按引用点元素、填表单、截图、甚至跑 JavaScript。
是真浏览器,不是 web fetch
browser_* 工具会启动真正的 Chromium —— JavaScript 跑得起来、登录态保留、网络请求可拦截。不是裁剪版的 HTTP 客户端。
三种"浏览器形态"能力
托管无头浏览器(Playwright)。 完整 DOM、JS、Cookie、会话。
何时用: Agent 需要交互 —— 点击、输入、抓渲染后内容、登录。
代价: 延迟更高,上下文更大(每次 snapshot 都不小)。
仅 HTTP,不渲染。 返回 markdown 抽取的页面正文。
何时用: Agent 只需要原始文本,且页面是服务端渲染的。
代价: 最低 —— 快、上下文便宜。
把 URL 递给系统默认浏览器。
何时用: Agent 给的建议里有链接,接下来由你来读。
代价: 对 Agent 来说零成本 —— 链接打开后它就退出了。
browser_* 工具集
| 名称 | 说明 |
|---|---|
browser_navigate | 在无头浏览器里打开 URL。 |
browser_snapshot | 返回页面的可访问性树(交互元素带引用如 @e5、@e12)。 |
browser_screenshot | 全页或视口截图。 |
browser_click | 按可访问性引用点击元素。 |
browser_type | 在表单字段里输入。 |
browser_press | 发送键盘按键(Enter、Tab、Esc 等)。 |
browser_scroll | 滚动页面。 |
browser_evaluate | 在页面上下文里跑 JavaScript。 |
browser_wait_for | 等到指定文本出现、选择器匹配、URL 变化、或加载状态满足。 |
browser_network | 查看或录制网络请求(HAR 风格)。 |
browser_download | 跟踪页面动作触发的下载。 |
browser_tabs | 列出、聚焦、关闭标签页。 |
browser_advanced | PDF 导出、上传文件、对话框处理、悬停、拖拽、下拉选择、批量填表。 |
典型流程
导航
browser_navigate("https://example.com")决定动哪个元素
Agent 读树,选元素。
动手
browser_click(ref="@e5")
browser_type(ref="@e12", text="...")等页面稳定
browser_wait_for(state="networkidle")需要时视觉验证
browser_screenshot()Snapshot vs Screenshot
Snapshot —— 用于交互
可访问性树给稳定的引用让 Agent 点 / 输入。不怕布局变化。重复使用便宜。
Screenshot —— 用于验证
给用户看、视觉验证、或解决 CAPTCHA 这类树拿不下的问题。
Agent 两个都用:snapshot 干活,screenshot 确认。
浏览器会话
一次任务内多次 browser_* 调用会话持久 —— Agent 登录一次,后续都在已登录状态里操作。任务结束会话也结束,除非你设了持久 Profile。
持久 Profile
在 设置 → 浏览器 → Profile 里配 —— 适合"始终保持 Shopify Admin 登录态"这种跨任务复用。
权限与安全
何时不用浏览器
不要过早升级
Agent 只需要页面内容(文章正文、JSON API 响应、静态 HTML)时,web_fetch 更快、更轻、消耗更少上下文。Agent 默认选 web_fetch,需要 JS、登录或交互时再升级到 browser_*。
如果你接下来要自己看,用 open_url 在你自己的浏览器里打开(带你的 Cookie 和扩展)。
ToShop文档