9 月 7 日,OpenAI Labs 成员 Sharif Shameem 展示了一段演示:GPT-6 Astra 连续完成了网页游戏《I'm Not a Robot》的全部 48 关,并拿到游戏给出的“人类认证”。这则消息来自雷锋网的报道,核心看点不在于验证码本身,而在于 AI 在陌生图形界面上的连续操作能力。

游戏前半段是常见的图片识别与文字判断,后半段则迅速升级为拖拽、停车、视觉搜索、节奏控制和逻辑小游戏。Astra 全程通过看屏幕、操作鼠标键盘,再根据页面变化继续执行下一步,直到通关。

CAPTCHA 过去依赖的能力差正在被填平。 传统验证码假设机器难以看懂陌生界面、判断空间关系并连续操作,而 Astra 展示的正是把视觉理解、GUI 定位、状态保持和动作控制连成稳定闭环的能力。与此同时,现实网站的反自动化系统早已从图片挑战迁移到浏览器环境、服务端风险判断和行为链分析。

从技术角度看,早期 CAPTCHA 近似一次静态推理:模型看到图片,输出答案,任务结束。但 Computer Use 的输入输出关系完全不同——模型产生的动作会反过来改变下一次输入。网页存在一个内部状态,截图只是这个状态暴露出来的观测。Astra 在每一步产生点击、拖拽或键盘动作后,网页进入新状态,模型随后看到新截图,却无法直接读取浏览器内部完整状态,只能利用当前画面、此前画面和动作历史推断自己处在任务的哪个位置。

停车关卡很能说明问题:当前画面里能看到汽车,却看不到模型前几步为什么把汽车开到这里;节奏任务更麻烦,因为环境在模型推理期间仍可能继续变化。因此 GUI Agent 不只是识别屏幕内容,还需要维护一个隐含的状态估计,把已执行动作和新的视觉反馈拼成连续世界。

报道提到,ScreenSpot-Pro 用于测试语义到空间的落地能力,Astra 在无工具条件下达到 92.7%,GPT-5.6 Sol 为 76.9%。但 grounding 分数高,并不能直接推出长流程稳定。点击一次按钮时,一次定位错误只影响一个动作;连续任务里,一次错误会改变后面的环境。Agent 如果把取消点成确认,下一帧页面已经进入另一条状态分支,后续计划即便推理正确,也可能建立在错误前提上。

所以长程 Computer Use 需要一个常被忽略的模块:动作后的状态校验。模型执行操作后,需要比较实际页面和预期页面是否一致。如果预期是弹窗关闭,新截图里弹窗仍然存在,系统应把这一步判为失败,重新定位或修改策略。没有这一层,单步误差会沿任务链持续放大。

速度提升也有技术意义。Computer Use 每执行一步,通常要经历重新获取环境、模型推理、生成动作、执行动作,再读取结果。报道引述 OpenAI 公布的数据:Astra 在 OSWorld 2.0 得到 72.6%,GPT-5.6 Sol 为 65.7%;模拟任务耗时从约 75 分钟降到约 40 分钟。延迟下降影响的不只是等待时间——动态 GUI 存在状态过期问题,模型依据截图开始推理后,真实页面可能已经继续变化,推理越慢,最终动作作用在过期状态上的概率越高。更快的感知-动作循环可以缩短观测和执行之间的时间差,也允许 Agent 用更高频率重新检查结果。

报道同时指出一个技术边界:Sharif 的公开视频没有披露完整测试框架,也没有公开说明整个过程是否严格限制为纯像素输入,是否存在其他页面结构输入。因此 48/48 本身不能当成严谨的纯视觉基准,Astra 在 ScreenSpot-Pro 和 OSWorld 上的正式成绩才提供了更可比较的 Computer Use 证据。

现代 CAPTCHA 已经不把答案当成完整证据。 当视觉 Agent 可以识图、拖拽和操作动态页面,继续把安全性押在一道认知题上会越来越脆弱。Google 和 Cloudflare 的技术路线已经把判断向浏览器和服务器内部迁移。reCAPTCHA v3 的设计中,浏览器针对 login、register 等 action 请求 reCAPTCHA,随后把 token 交给后端验证,服务端得到风险 score,并结合当前 action 决定后续处理。Google 没有公开完整风险模型和全部输入特征,因此不能简单把它描述成鼠标轨迹检测器;公开机制能够确认的是,它采用基于交互上下文的 score,而不是依赖一次可见图片题的二元结果。

Turnstile 把前端测量和后端决策拆得更清楚。浏览器会执行一组轻量 JavaScript challenge,包括计算挑战、空间证明、Web API 探测、浏览器差异和行为信号。完成客户端挑战后生成 token,网站后端仍然必须调用 Siteverify 验证;token 有效期为 300 秒,并且只能兑换一次。Cloudflare 还明确指出,即便 bot 完成 challenge,其他 bot 信号仍可能导致 token 无效。

这时的安全架构可能已经发生根本变化。图片 CAPTCHA 的证据来自答案本身,Turnstile 的 token 更接近一次由挑战平台签发、需要服务器再次确认的短期证明。攻击者修改网页 JavaScript 显示验证成功没有意义,因为业务服务器仍然拿不到一个可以通过 Siteverify 的有效结果;截获别人已经使用过的 token 同样会因为单次使用机制失败。

防线继续往下还能进入浏览器和网络层。Cloudflare Bot Management 暴露 JA3、JA4 等字段,它们来自 TLS 客户端握手特征;JavaScript Detections 又可以持续采集浏览器侧信号。这样一来,系统能够同时看到页面运行环境和网络连接特征,而视觉 Agent 看到的屏幕只是其中一个层面。这也解释了为什么 Astra 通关 48 关和攻破现代反机器人系统之间还有很长距离——Astra 擅长的是界面层的感知和动作,但服务器还可以观察它看不到的状态:请求来自怎样的 TLS 客户端、JavaScript 环境是否符合预期、token 有没有过期、此前请求序列是否异常。

不过这层防线也不会永久稳定。Computer Use Agent 如果直接运行在完整 Chrome 环境中,它天然会继承真实浏览器的大量协议和运行时特征,和简单的 Selenium 脚本已经不是同一种自动化。Cloudflare 文档目前仍明确表示,Selenium、Puppeteer、Playwright 等自动化框架不支持用于生产 challenge,但未来 Agent 越来越深地运行在真实浏览器栈里,单纯依赖浏览器指纹区分机器也会越来越困难。因此现代 bot detection 正在进入一个更棘手的阶段:认知信号正在失效,浏览器信号也可能逐渐趋同,服务器只能把更多证据放进时间序列和业务上下文里联合判断。

Agent 时代,Web 看的是机器身份和权限。 还有一个更深的问题:未来大量机器访问本身就是合法流量。用户让 Agent 查询航班、填写企业系统、修改 CRM 或跨网站处理任务时,服务器面对的确实是一台机器,但把它拦下来反而会破坏正常功能。传统 CAPTCHA 的人类/机器二元分类开始失去足够的信息量。

Cloudflare 今年上线的 Web Bot Auth 已经出现这种转向。它基于 HTTP Message Signatures,让 Agent 生成 Ed25519 密钥,用私钥给 HTTP 请求签名,并通过公开目录发布对应公钥。Cloudflare 收到请求后,可以根据公钥验证这次请求确实来自持有该私钥的 Agent,同时检查被签名的请求内容是否被修改。不过这和 CAPTCHA 还是有区别的:CAPTCHA 依靠行为特征做分类,本质上是在估计访问者属于哪一类;请求签名解决的是密码学认证,服务器得到的是可验证的主体身份。模型视觉能力继续提高,并不会让它凭空计算出另一个 Agent 私钥对应的有效 Ed25519 签名。

Web Bot Auth 还通过 created 和 expires 限制签名请求的时间窗口,降低请求被截获后重复提交的价值。Cloudflare 当前文档也说明,它暂未维护完整的 nonce 重放数据库,因此短有效期仍承担着重要防重放作用。这个细节说明 Agent 身份基础设施还处在快速建设阶段。

但机器身份只是认证,授权是另一层问题。一个服务器确认请求确实来自某个 Agent,并不意味着这个 Agent 可以读取和修改全部资源。更合理的模型是用户把有限权限委托给 Agent,例如允许读取订单和修改配送日期,同时不开放取消订单;主 Agent 再调用子 Agent 时,下游拿到的权限还应该继续收窄。技术上,这会把 Web 安全从 bot classifier 推向一条可验证的委托链。服务器最终判断的条件会更接近:Agent 身份有效、用户委托有效、token 尚未过期、资源属于授权范围、当前 action 没有越界,同时风险系统没有发现异常。

这种结构和 CAPTCHA 差别很大。CAPTCHA 尝试证明机器不在场;Agent 时代的安全体系反而需要承认机器就在这里,然后严格限定它是谁、代表谁、可以做什么。

CAPTCHA 的边界到了协议层。 Astra 通关 48 关,其实没有让 reCAPTCHA 或 Turnstile 一夜失效。它削弱的是 CAPTCHA 很早依赖的一层假设:视觉理解、空间判断和连续 GUI 操作足以把机器挡在界面之外。Computer Use 正在跨过这层门槛。ScreenSpot-Pro 反映 grounding,OSWorld 反映长程交互,Astra 的变化说明屏幕理解、状态估计、动作执行和失败恢复已经开始形成更稳定的闭环。

防御体系则继续向后迁移:从视觉题移动到浏览器信号,从浏览器信号移动到服务端验证,再从人机分类移动到 Agent 的密码学身份和细粒度授权。二十多年前,CAPTCHA 的问题是屏幕对面到底有没有人。当机器也能稳定使用这块屏幕后,Web 要解决的问题已经变成:这台机器是谁,谁把权限交给了它,以及这一次请求究竟被允许做到哪里。