跳到主要内容
返回时间线
arXiv来源发表:

网页智能体不再边看边决定:Baya先编译成程序再执行,注入攻击成功率降到0%

核心概要

网页智能体通常按ReAct方式边读页面边选下一步动作,页面里混入的不可信内容因此能改写它的控制流。Baya把用户请求先编译成调用可信网站API的Python程序,规划模型不接触实时网页内容,只有程序在执行时读取数据。在581个WebArena Verified任务上,Baya聚合效用为77.8%,高于仅浏览器ReAct的55.1%和可用API的ReAct的66.7%;在WASP上攻击成功率为0%,两个ReAct基线分别为16.2%和25.5%。

AI-generated editorial illustration: Securing Web Agents with the Compile-Then-Execute Paradigm

深度剖析

网页智能体的动作选择不再依赖运行时读到的页面内容,而是由执行前固定下来的程序决定。 此前的ReAct式智能体在每一步把最新页面观察和用户目标一起交给模型,再让模型选下一个动作,控制流直到运行时才确定。 在581个WebArena Verified任务上,Baya聚合效用77.8%,仅浏览器ReAct为55.1%,可用API的ReAct为66.7%;在WASP上Baya攻击成功率0%,两者分别为25.5%和16.2%。

Baya把任务编译成一段可执行的Python程序,程序只通过可信网站API访问网站。 编译阶段由沙箱中的编码智能体生成程序,并用模拟测试验证,全程不访问实时网站;执行阶段由独立引擎在实时网站上运行该程序。 可信网站API由人工为每个目标网站构建,把原生REST端点与用Playwright补齐的仅界面功能统一成带类型签名、前置条件、后置条件和错误域的接口。

不可信网页数据只能填充程序变量或在编译期已定义的支路间选择,不能新增操作。 执行失败时,只有可信API实现显式产生的错误诊断会回传给编译器用于重规划,最多重试三次。 627个生成程序中13个(2.1%)含模型调用路径,11个(1.8%)在执行时实际调用;616次执行(98.2%)中检索到的网站内容从未送入运行时模型。

启示与展望

演示范围限于控制流可事先确定的任务,即安全任务与需运行时语义处理但操作和分支可预先固定的任务;评估覆盖WebArena Verified的四个自托管网站和WASP的GitLab、Postmill攻击模板,可信网站API由人工为这些固定环境构建。

需要运行时数据决定新操作的任务不在支持范围内;Baya的延迟与成本高于ReAct基线,每任务平均327.15秒、约137万token、0.70美元;在部分模型与网站上其良性任务效用低于ReAct,例如Postmill上Claude Sonnet-4.6时Baya为61.1%、可用API的ReAct为91.7%。