浏览器工具要可暂停恢复
浏览器 Agent 的关键能力正在从“一组点状 API”变成“可暂停、可恢复、可审计的一段执行”。Cloudflare Agents 0.16.0 把原来的多个浏览器工具重建成单一 durable tool:browser_execute,让模型在沙箱代码里通过 cdp connector 操作页面;更重要的是,执行状态记录在 CodemodeRuntime Durable Object 上,遇到审批可以暂停,恢复后仍能拿回同一个浏览器会话、tab 和 cookies。
这件事对 Agent Engineer 的提示是:浏览器不是普通工具,它更像带资源句柄的远程运行时。点击、登录、跳转、抓取都依赖页面 session、target、CDP socket 和 cookie 状态;如果每次 tool call 都当成无状态 RPC,暂停审批、人工接管、长任务恢复、错误重放都会变成“看起来能跑,线上很脆”。Cloudflare 的设计里,cdp.attachToTarget 返回的是稳定 handle,而不是裸 CDP session id;pause 时不销毁浏览器,terminal status 才 dispose;session sweep 还会留下 tombstone,避免恢复时偷偷开一个新浏览器假装继续。
常见误区是把浏览器自动化理解成“给模型更多 Playwright/CDP 函数”。真正的工程边界反而是更少、更稳定的工具表面:一个 browser_execute 包住代码执行、连接器、会话模式、审批恢复和错误解释。模型不需要在十几个低层工具之间猜调用顺序,平台也能把一次浏览器任务当成可记录、可中断、可回放的 execution,而不是散落在聊天上下文里的多次工具调用。
如果 OPC 要做能操作后台、网页控制台、第三方 SaaS 的 Agent,我们现在的浏览器能力是“临时脚本执行”,还是已经有 execution id、session ownership、pause/resume、资源清理和可解释失败这些运行时契约?
来源:
- Cloudflare Agents 0.16.0 release: https://github.com/cloudflare/agents/releases/tag/agents%400.16.0
- PR #1656: https://github.com/cloudflare/agents/pull/1656
- Commit 4c2d1a7: https://github.com/cloudflare/agents/commit/4c2d1a7f7f337bf426b0b35e3c9e8e4901c6360b