做浏览器 Agent,Gemini Computer Use 转正后先补这 3 个环
Gemini API 的 Computer Use 已转为 GA。要把现有 UI 自动化迁进生产,先把截图回传、受限执行环境和人工确认这三件事接上。
一个浏览器 Agent 最危险的误会,是把“模型会点网页”听成“模型能替你把网页流程上线”。
Google 在 10 月 30 日把 Gemini API 的 Computer Use 转为 GA,支持浏览器、移动端和桌面端。它能看截图,返回点击、输入、滚动这类 UI 动作;Gemini 4 和 3.x 的动作里还会带上 intent,告诉你它觉得这一步要干什么。对于已经有 Playwright、浏览器回归测试或内部录入机器人的团队,这当然是个值得试的入口。
不过,GA 不是给自动化系统发了一张“可以直接碰生产环境”的通行证。官方的说明里有一句很关键:模型负责建议动作,客户端执行环境仍由你实现。谁来执行、能执行到哪里、走错一步怎么停,仍然是工程侧的工作。
我更愿意把这次升级看成一个迁移机会。别急着把旧脚本换成新模型,先补齐三个环。
先把截图回传当成状态,不是日志
Computer Use 不是一次请求换一串鼠标坐标。正常流程是:应用把目标、工具配置和当前截图交给模型;模型返回一个 function_call;客户端在浏览器里执行;再截一张新的图,连同执行结果回传。模型根据这个新状态决定下一步。

图:按 Google 官方接口里的请求、动作和 function_result 关系整理;不是官方产品界面截图。
这件事听起来像实现细节,实际会决定任务是不是可复现。网页在点击后跳转、弹出登录框、加载慢半拍,或者右下角冒出一条通知,下一张截图都可能变了。若只记“模型建议点了哪里”,复盘时根本分不清是模型判断错、坐标缩放错,还是页面状态已经变了。
所以接入时至少把每一轮保存成一条可追的记录:输入目标、截图版本、模型返回的动作和 intent、实际执行结果、执行后的 URL 或截图摘要。这样遇到“它说完成了,但表单根本没提交”这类情况,工程师有地方下手,而不是对着一段聊天记录猜。
官方示例把坐标归一化在 1000×1000 的空间,执行器再按当前视口换算。这个换算别藏在 SDK 的角落,单独测。尤其是缩放、移动端模拟和远程浏览器混在一起时,错误往往不是大偏移,而是刚好点到旁边一个看起来也合理的按钮。
# 每一步都回传新状态;不要把多个 UI 动作攒成黑箱
action = next_action(current_screenshot)
result = executor.run(action)
next_screenshot = page.screenshot()
record(action, result, next_screenshot)
这不是为了多存几张图。它是在给 Agent 加一个“看见自己刚刚做了什么”的回路。
再把执行器关进一个小房间
文档建议在沙盒 VM、容器,或权限受限的专用浏览器配置文件里运行 Agent。这个建议很朴素,却常常在 demo 跑通后被跳过:反正只是点页面嘛。
问题是,能点页面的执行器同样能碰到浏览器会话、下载目录、内网地址和已登录账户。把它直接接到工程师日常使用的 Chrome,相当于让一个会看屏幕、会输入文字的程序坐到你的主机前,再希望它永远只做题目里那一件小事。

图:生产接入时,模型动作应先落在受限执行环境,再经由允许列表和确认闸门。
第一版不需要造一套很大的平台。挑一个无登录、无付款、可重复重置的数据录入或测试站点,开一个干净浏览器上下文,只允许访问固定域名。下载、上传、导航到新域名和写入外部系统,先全部拒绝。
这能让你先验证最有价值的一段:模型能不能在真实页面变化里持续读取状态、完成一个小任务、留下可解释的轨迹。等这一段稳定,再逐步放开权限。反过来,一上来就拿订单后台、客服系统或个人浏览器做样本,得到的不是“更接近生产”,而是一次很难解释的混合实验。
截图里的提示词注入也别只当成文档里的风险词。Google 提供了可选的截图扫描,默认并不打开。接入网页、邮件、评论区或任何外部内容时,应显式启用它;更重要的是,检测命中后执行器要真的停下来,不能只在日志里写一行 warning 然后继续点。
最后让“需要确认”真的能刹住车
Computer Use 的响应可能带 safety_decision:普通允许、require_confirmation,或阻断。它的价值不在于替你判断所有风险,而在于给执行器一个结构化的刹车信号。
迁移旧自动化时,可以先把规则写得很窄:凡是登录、发送消息、提交表单、修改数据、读取或上传文件,一律进入确认队列。用户确认后再回传 acknowledgement,继续下一步;超时或页面状态变化,就作废这次动作,重新看截图。
这里最容易偷懒的一点,是把“用户之前说过要完成这个任务”当成每一步的永久授权。实际的网页流程会变:本来是保存草稿,按钮旁边突然多了提交;本来只读,页面跳转后要求上传附件。确认应该绑在当前动作、当前页面和当前后果上,而不是绑在任务标题上。
官方也明确提醒,重要任务、敏感数据以及无法纠正严重错误的操作,需要密切监督。把这条写进代码审查清单,比在演示视频结尾补一句“请谨慎使用”有用得多。
一个下午能完成的迁移顺序
如果你手里已经有 Playwright 执行器,可以先不动业务流程,只做一条最小通路:给模型一张测试页截图,接收一个动作,按当前视口换算坐标,执行后回传新截图。跑通后,检查记录里是否能完整还原每一步。
第二轮才把浏览器放进隔离上下文,加入域名允许列表和下载禁令。第三轮再接 safety_decision、截图注入检测和确认队列。每加一层,都用同一条可重置的测试任务验收;不要等它去碰真实客户数据才知道哪一层没有接上。
Gemini Computer Use 转正,给的是一个更稳定的模型接口和官方约定,不是把执行责任收走。真正能带进生产的,不是“它会点网页”这件事,而是你能清楚回答:它刚看到了什么、准备做什么、实际做了什么,以及哪一步必须等人点头。
你们团队现在的浏览器自动化,哪一个动作最应该先拆成“模型建议”和“人工确认”两段?
—— 小岛AI