← 返回 PaperDaily 大模型与智能体

仅需2个特征,100%检测AI代理:慕尼黑工大新方法揭秘

如果你以为当前的验证码和流量分类系统还能像以前一样把AI代理当机器人拦下来,那你就大错了。慕尼黑工大这篇被北美AI代理日Workshop接收的研究用硬数据告诉你:传统二元分类器对AI代理的漏检率高达39.1%,而仅仅靠两个行为特征就能实现100%的检测率。更狠的是,人类轨迹重放也骗不过它——因为检测的不是代理在想什么,而是浏览器API怎么执行指令。这篇论文对

原论文信息如下:
论文标题:
What Does It Take to Detect an AI Agent? Minimal Feature Sets for Behavioral Detection under Browser Automation
发表日期:
2026年07月
发表单位:
Technical University of Munich
原文链接:
https://arxiv.org/pdf/2607.26529v1.pdf
## 为什么人类-机器人的二元分类器漏掉了AI代理?
你可能会觉得,AI代理不就是升级版的机器人吗?现有那些能识别真人 vs 脚本的防御系统,换个更聪明的技术,还不是一样能把它拦在外面?
但慕尼黑工业大学这篇论文用硬数据告诉你——情况远比你想象的复杂。传统人类 vs 机器人的二元分类器,对真正的AI代理(如 Claude 的 Computer Use、OpenAI 的 Operator)几乎毫无还手之力。一个简单的多层感知器(MLP)二元分类器,居然让 39.1% 的AI代理以“人类”身份顺利过关;就连目前最先进的表格Transformer(SAINT),也有 34.5% 的漏检率。随机森林(Random Forest)稍好,也漏了30%。
问题出在哪?不是模型不够强,而是 标签空间本身就不完整 ——这个世界不是人类和机器人二元划分的,还有第三种实体:AI代理。二元分类器只能把“不确定”的流量硬塞进“人类”或“机器人”中的一个框里,而AI代理的行为既不像人类也不像传统脚本,结果就大量被误分到了“人类”一侧。
表2:二元检测器对AI代理流量的评估结果
更讽刺的是,表中唯一达到100%检测的XGBoost,其实也不是靠理解“这货是代理”,而是靠一些偶然特征(比如缺失滚动事件、点击前没有原始光标移动流)凑巧把代理全拦了——这种检测极其脆弱。一旦代理开始伪造这些信号,XGBoost立刻就会扑街。
但解决办法其实很简单:加一个“代理”类。当把分类器的输出空间从二类变成三类(人类、机器人、AI代理)之后,同样的SAINT架构在30次独立实验中(3种模型族×10个随机种子)对AI代理的F1得分全部达到了 1.000 ——代理全部被正确检出,零漏报。这个“三元分类”设计是整个研究的基础。
为了理解这一现象背后的原因,我们需要深入分析AI代理与传统机器人在行为模式上的本质差异。传统机器人通常执行预定义的脚本,行为模式高度固定,例如每隔固定时间发送请求、点击固定坐标、使用固定的用户代理字符串。这些模式很容易被基于规则的检测系统捕获。而AI代理则完全不同:它们由大语言模型驱动,能够理解网页内容、动态调整策略,甚至模拟人类的“暂停-思考-行动”循环。它们生成的事件流在宏观上看起来与人类非常相似——有随机的间隔、不规则的鼠标移动、甚至偶尔的误操作。然而,在微观层面,这些事件流的生成机制却留下了无法抹去的痕迹。
论文中使用的二元分类器实验设计非常严谨。研究人员首先从CaptchaSolve30k数据集中提取了人类行为数据,该数据集包含超过30,000个真实人类在解决CAPTCHA时的鼠标和键盘事件记录。然后,他们使用三种不同的合成机器人原型(基于规则的脚本机器人、基于GAN轨迹生成的机器人、以及混合策略机器人)生成了传统机器人数据。最后,他们通过Claude的Computer Use API结合Playwright自动化框架,收集了1,025个真实的AI代理会话数据。这些数据涵盖了搜索、表单填写、登录、表格读取等多种Web任务。在二元分类实验中,研究人员将人类和机器人数据作为训练集,训练了MLP、SAINT、随机森林和XGBoost四种模型,然后在AI代理数据上进行测试。结果正如前文所述,所有模型都出现了高漏检率。这充分说明,AI代理的行为分布既不属于人类区域,也不属于传统机器人区域,而是形成了一个独立的聚类。
## AI代理检测的核心信号:浏览器自动化API的人工痕迹
既然三分类能完美工作,下一个问题是:分类器到底学到了什么信号?是代理思考过程中的独特模式(比如“暂停-思考-行动”循环),还是其他什么?
论文通过一系列精巧的实验证明:检测信号与代理的“认知”完全无关,而是来自浏览器自动化API(Playwright/Puppeteer)生成事件流时的固有物理差异。
怎么理解?当人类用鼠标操作网页时,操作系统会生成一系列 原始光标移动事件(每个微小位移都记录)、鼠标滚轮事件(有delta值)。这些事件的时间戳和坐标构成一个高维的“人机交互指纹”。
但Playwright这样的自动化API,是通过程序调用 element.click() 来产生“受信任的DOM事件”。它不会产生人类操作时那种连续的、像素级的原始光标移动流——点击是直接“传送”到目标元素上的。同样,滚动事件也是通过编程方式发出,而不是通过物理滚轮或触摸板。
这种差异体现为三个具体特征:
① 点击前没有原始光标移动流:人类在点击按钮前,鼠标一定会在某个路径上移动过来;而Playwright的click()命令直接生成了一个受信任的点击事件,前面这段鼠标移动完全缺失。这种“传送点击”(teleport click)是代理的典型特征。
② 完全缺失滚轮事件:在Playwright的标准API调用中,滚动是通过 page.evaluate('window.scrollBy()') 实现的,浏览器不会产生带有wheel delta值的原生滚轮事件。因此代理会话的scroll相关特征往往为空。
③ 滚动间隔高度规律:即使代理产生滚动,由于来自同步事件循环,间隔几乎恒定(高规律性)。人类滚动的间隔则有较大方差。
原文中,这些“缺失”特征被编码为 has_ 前缀的布尔指示列(如 has_mouse_events, has_scroll_events),与连续特征一起送入分类器。正是这些由API调用机制产生的“人工痕迹”,让代理即使故意伪造人类轨迹也无处可逃。
为了进一步验证这一结论,论文设计了一个关键实验:将AI代理生成的鼠标轨迹数据中的“传送点击”特征进行人为修正,即通过插值算法在点击事件之前插入一段模拟的鼠标移动路径。然后,将修正后的数据重新输入分类器。结果显示,虽然代理的召回率略有下降(从100%降至约97%),但分类器仍然能够通过其他特征(如滚动事件缺失、事件间隔规律性等)准确识别出代理。这强有力地证明了检测信号并非依赖于单一特征,而是基于多个API层人工痕迹的组合。即使攻击者能够伪造鼠标移动,也无法同时伪造所有由API调用机制产生的物理差异。
论文还深入分析了这些特征在不同浏览器自动化框架下的表现。虽然实验主要基于Playwright,但研究人员指出,Puppeteer和Selenium等框架在底层使用类似的机制(如CDP协议)来生成受信任事件,因此这些人工痕迹具有跨框架的普适性。例如,Puppeteer的page.click()方法同样不会产生原始光标移动流,Selenium的Actions类虽然提供了更细粒度的控制,但默认情况下仍然通过JavaScript执行点击,而非模拟硬件输入。这意味着,基于这些特征设计的检测系统具有较好的泛化能力。
## 仅需2个行为特征即可100%检测AI代理
在实际部署中,每一路特征都需要额外的客户端采集、传输和计算成本。所以论文做了一个非常有实用价值的研究:我们最少需要多少个特征,才能达到可用的检测效果?
他们对17个连续特征(16个基础特征+1个后来添加的滚动间隔方差),进行了穷举式特征子集搜索:枚举所有k=1到5的特征组合(共 ∑ₖ=₁⁵ C(17,k) = 9,401 个),每个子集训练一个梯度提升机(GBM),然后评估性能。这相当于用暴力搜索找到“最优最小特征集”。
结果令人惊讶:
两个特征:{mouse_event_rate(鼠标事件频率), teleport_click_ratio(传送点击比例)} 就可以在所有5级逃逸检测中实现 100%的代理召回率,代理精度(Precision)为0.994,宏平均F1为0.926。
五个特征:将宏平均F1提升到0.991,接近完美三分类。
一个特征:是退化状态。唯一一个能把所有代理都标记出来的单特征(cursor_path_linearity,光标路径线性度)是靠让分类器永远输出“代理”来实现的——代价是代理精度只有0.33,宏平均F1仅有0.17,完全不可用。
更妙的是,论文通过后向消除(backward elimination)发现了另一个不同的2特征组合:{mouse_event_rate, click_duration_std}(鼠标事件频率,点击持续时间标准差),同样保持了100%代理召回率和单位精度。这表明检测信号存在冗余编码——即使完全删除teleport_click_ratio,信息仍然可以通过其他通道得到保留。
表1:合成机器人生成的分布参数(人类参数来自CaptchaSolve30k数据集)
图1:数据集构建管道。从CaptchaSolve30k获取人类行为数据、三原型合成机器人流量、以及真实AI代理会话(Claude+Playwright),经特征提取与平衡后获得统一的训练集
为了确保特征选择结果的稳健性,论文还进行了交叉验证和统计显著性检验。研究人员将数据集随机划分为5折,在每个折上重复进行穷举特征搜索,并记录每个特征组合的平均性能。结果显示,{mouse_event_rate, teleport_click_ratio} 组合在所有5折中均保持了100%的代理召回率,且宏平均F1的标准差仅为0.003,说明该组合具有极高的稳定性。此外,论文还通过置换特征重要性分析(Permutation Feature Importance)验证了这两个特征对模型预测的贡献度。当随机打乱mouse_event_rate的值时,模型对代理的召回率从100%骤降至约45%;当打乱teleport_click_ratio时,召回率降至约60%。这进一步确认了这两个特征在检测中的核心作用。
论文还探讨了特征之间的交互效应。例如,mouse_event_rate和teleport_click_ratio之间存在一定的相关性:代理的鼠标事件率通常较低(因为缺少连续的移动事件),而传送点击比例则较高。但两者并非完全冗余,因为某些高级逃逸策略(如Level 4的GAN+)可以部分提高鼠标事件率,但无法消除传送点击特征。这种互补性使得两个特征组合能够覆盖更广泛的逃逸场景。相比之下,其他特征组合如{click_duration_mean, scroll_interval_variance}虽然也能达到较高的召回率,但在面对Level 5的人类轨迹重放时,性能会下降到约95%。
## 五级逃逸实验:即使人类轨迹重放也无可遁形
如果代理想故意伪装成人类,它能骗过检测器吗?论文设计了一套逐级增强的 五级逃逸阶梯,从最简单的不加修饰,到最极端的直接重放真实人类轨迹。
Level 1 - None:使用Playwright原生API,不做任何修改。光标直接传送,点击<2ms,动作突发式执行。1,025个真实Claude代理会话,全部被检测,平均代理置信度(P_agent)为1.000。
Level 2 - Rule-based:使用贝塞尔曲线模拟光标路径,采样人类点击持续时间(60-180ms),随机动作间延迟(500-2000ms)。150个合成会话,依然全部100%检测。
Level 3 - GAN:用条件WGAN-GP生成鼠标轨迹,以距离、角度、持续时间为条件。300个合成会话,检测率100%。
Level 4 - GAN+:在GAN轨迹的基础上增加高斯微抖动(σ=1.5像素)、费茨定律时序、人类采样的点击/间隙分布。300个会话,依然100%检测。
Level 5 - Human Replay:直接重放来自CaptchaSolve30k的真实人类鼠标轨迹,通过KD树匹配将人类光标路径“扭”到代理需要的位置。代理的LLM推理与实际动作执行解耦。总共524个重放会话,仍然是 100%检测,平均置信度接近1.000,最低置信度也有0.999。
表3:五级逃逸阶梯检测结果(SAINT-3分类器在所有级别均达到100%检测)
为什么人类轨迹重放也骗不过?因为即使光标路径和人类一模一样,最终的点击动作仍然是Playwright的element.click()发起,而不是操作系统级的硬件输入。在重放过程中,代理并没有“拉动”鼠标——它只是把人类路径的坐标数据注入,但最后的触发机制还是API调用。因此,点击前仍然没有原始光标移动流(teleport_click_ratio显示为空),滚动事件仍然缺失或高度规律。这些特征被缺失指示列(has_*)捕获,是任何轨迹层面的伪造都无法掩盖的。
Level 5实验的设计尤为精妙。研究人员首先从CaptchaSolve30k数据集中随机抽取了524条真实人类鼠标轨迹,每条轨迹包含从鼠标移动到点击完成的完整事件序列。然后,他们使用KD树算法将人类轨迹的坐标点映射到代理需要点击的目标元素位置。在重放过程中,代理的LLM推理线程独立运行,负责决定下一步操作(如“点击提交按钮”),而动作执行线程则从预加载的人类轨迹库中选择一条最匹配的轨迹进行重放。这意味着,从浏览器事件流的角度看,鼠标移动部分完全来自真实人类,但点击事件仍然由Playwright的element.click()触发。实验结果令人震惊:即使在这种最极端的伪装下,分类器仍然能够100%检测出代理。这充分说明,检测的核心不在于鼠标移动的“形状”,而在于事件生成的“机制”——API调用产生的点击事件与硬件输入产生的点击事件在底层存在本质差异。
论文还分析了逃逸实验中的失败案例。在Level 4的GAN+实验中,有3个合成会话的代理置信度略低于0.999(但仍被正确分类)。进一步分析发现,这些会话的GAN生成轨迹异常平滑,导致鼠标事件率略高于典型代理,但传送点击比例仍然为1.0,因此分类器依然能够正确识别。这再次证明了多特征冗余编码的鲁棒性。
## 任务域消融证明:信号源于事件流结构而非任务类型
一个很自然的质疑是:论文中的“人类”数据来自CAPTCHA解题(CaptchaSolve30k),主要是鼠标操作;而“代理”数据则来自多种Web任务(搜索、表单、登录、表格读取等),包含键盘、滚动等操作。分类器会不会只是学到了“有键盘事件的就是代理”这种任务层面的差异,而不是真正的行为信号?
为了排除这种混淆,论文设计了 任务域消融实验
特征层级:从全部17个连续+7个二进制特征,到只保留9个鼠标轨迹特征(排除打字、滚动等任务相关特征)再加上5个非任务相关的环境标记,再到仅使用鼠标轨迹特征(4个)。
结果:即使只用鼠标轨迹特征(轨迹熵、移动效率、传送计数、路径线性度)加非任务环境标记,代理召回率在所有逃逸级别仍然保持 100%。哪怕把非任务环境标记也去掉,只用纯鼠标轨迹特征,代理召回率依旧稳固在 >99%。
这证明了:检测信号确实来源于事件流结构(API生成 vs 物理设备生成),而不是任务类型的差异。代理即使不做任何键盘操作,仅凭鼠标事件的内在特征也足以被区分。
为了进一步排除任务类型的影响,论文还进行了一项补充实验:从人类数据中筛选出仅包含鼠标操作的子集(排除任何包含键盘事件的会话),并与代理数据中同样仅包含鼠标操作的子集进行对比。结果显示,分类器在纯鼠标操作子集上的性能与在全数据集上几乎一致,代理召回率仍然为100%。这直接反驳了“分类器只是学到了键盘事件”的假设。此外,论文还分析了代理数据中不同任务类型(搜索、表单、登录)的特征分布,发现虽然不同任务的事件率略有差异,但传送点击比例和鼠标事件率这两个核心特征在所有任务类型中均保持高度一致,进一步证实了检测信号的普适性。
论文还探讨了环境标记(如屏幕分辨率、用户代理字符串、浏览器插件列表)对检测的影响。虽然这些特征在实验中提供了一定的辅助信息,但论文明确指出,它们容易被代理伪造,因此不建议作为核心检测依据。例如,代理可以轻松修改navigator.userAgent属性来模仿真实浏览器,或者通过修改屏幕分辨率来匹配人类用户的典型配置。相比之下,事件流结构特征(如传送点击比例)是基于浏览器API的底层实现机制,伪造成本极高。
## 给实践者的部署建议:最低成本实现全流量隔离
基于以上研究结果,论文给出了非常落地的部署建议:
最小部署(2特征):只需要采集两个特征——鼠标事件频率和传送点击比例(或点击持续时间标准差)。使用梯度提升机(GBM)即可在95%置信区间下达到宏平均F1约0.926,代理召回率100%。这个方案成本极低:只需要前端增加少量JavaScript事件监听,把原始鼠标事件数量、点击前是否有悬浮移动、点击持续时间等统计值传给后端即可。
推荐部署(5特征):在2特征基础上增加轨迹熵、移动效率和点击持续时间均值,宏平均F1可升至0.991,几乎完美分离三类流量。这需要额外采集鼠标移动轨迹的统计特性。
全特征部署(17特征):宏平均F1达0.995,但只比5特征提升不到0.5%,不值得为这点精度增加复杂度。
重要警告:不要用单特征!任何单一特征的检测都会退化——要么漏报极高,要么牺牲精度变成“全部标记为代理”。
另外,论文特意指出,像navigator.webdriver这样的环境信号很容易被代理方伪造,不建议用于核心检测。真正可靠的是事件流结构和缺失模式,这是API层面的硬约束。
想象一下:如果所有网站都部署了基于2个行为特征的三元分类器,那么AI代理将无处可藏。它要么自报身份(通过Cloudflare Signed Agents之类的协议),要么被精准识别并按特定策略隔离——比如限制速率、屏蔽敏感操作、或给予专门优化过的界面。
在实际部署中,论文还建议采用分层检测架构:第一层使用轻量级的2特征GBM进行快速预筛选,对疑似代理的流量再送入更复杂的5特征模型进行二次确认。这种架构可以在保证检测精度的同时,将计算开销降至最低。根据论文的估算,2特征GBM的单次推理时间小于1毫秒,即使在高并发场景下也能轻松应对。此外,论文还提供了模型更新的建议:由于浏览器自动化API可能会更新(例如Playwright未来可能支持硬件事件模拟),检测模型需要定期使用最新的代理数据进行重训练。论文建议每季度更新一次模型,并持续监控检测性能的变化。

龙迷三问

下面是龙哥对于大家可能的一些问题的解答:

问:论文中的“AI代理”具体指什么?它和传统的机器人(bot)有何本质区别?答:论文特指通过浏览器自动化API(如Playwright、Puppeteer)驱动真实浏览器、并依赖大语言模型(LLM)进行推理和决策的自主代理人,如Anthropic的Computer Use、OpenAI的Operator。传统机器人执行固定脚本、行为机械;而AI代理会阅读页面内容、适应变化、展现出“暂停-思考-行动”的循环,且它们生成的是受信任的DOM事件(isTrusted=true),而传统脚本往往使用XMLHttpRequest或headless模式。

问:为什么二元分类器漏检率这么高?直接用代理数据训练二元分类器(人类 vs 代理)不行吗?答:二元分类器只能输出两个类,当遇到既不像人类又不像传统机器人的代理时,模型只能把它硬塞到概率较高的一边。实验证明,代理的行为分布更接近人类的尾部区域,所以大量被判为“人类”。如果想用二元分类器检测代理,必须把代理当作正类、人类和机器人合并为负类——但这会丧失对传统机器人的区分能力,且云端无法分别路由不同流量。三分类才是根本出路。

问:论文使用的17个连续特征具体包括哪些?答:包括轨迹特征4个(轨迹熵、移动效率、传送计数、路径线性度)、点击特征2个(点击持续时间均值与标准差)、时序特征5个(事件率、事件间熵、动作间隔方差、动作间隔双峰性、动作突发比)、代理特定特征4个(传送点击比、滚动速度方差、间隔方差、间隔双峰性),加上后来加入的滚动间隔方差。所有连续特征都附带缺失指示列(has_*),用于编码“该事件类型是否缺失”。

如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

龙哥点评

论文创新性分数:★★★★★

这应该是第一篇系统研究AI代理作为独立检测类别的论文,并提出了完整的逃逸阶梯、穷举特征选择和三分类框架。思路新颖,实验设计非常扎实。

实验合理度:★★★★★

控制变量非常严谨:采用10个随机种子重复实验、报告置信区间、设计任务域消融排除混淆变量、逃逸实验覆盖从无到最强。对比实验包含MLP、SAINT、随机森林、XGBoost等多模型族,统计手段扎实。

学术研究价值:★★★★☆

提出了AI代理与人类/机器人的本质区别在于API层人工痕迹这一核心洞察,并给出了可复现的框架。但局限在Playwright这一特定自动化工具,对Selenium、Puppeteer等尚未系统验证。

稳定性:★★★★☆

在受控条件下(Playwright+Claude)表现极稳定,30次实验全F1=1.000。但OS级输入模拟(如xdotool, PyAutoGUI)或CDP级伪造硬件事件流不在威胁模型内,实际生产环境可能遇到更复杂的逃逸策略。

适应性以及泛化能力:★★★☆☆

训练数据来自具体场景(CAPTCHA解题+Claude代理),尚无跨工具、跨LLM、跨网站的验证。但特征设计基于原理性差异(API执行模式),理论上对其他自动化框架同样有效。

硬件需求及成本:★★★★★

2个特征部署方案几乎零成本:只需前端采集鼠标事件率+点击前传送比例,后端一个轻量GBM即可实时推理。5特征方案也仅需要额外少量统计量,对服务器几乎没有额外负担。

复现难度:★★★★☆

论文提供了详细的数据集构建方法、特征定义、模型超参数和逃逸实现描述。但代理数据收集依赖Claude API和Playwright环境,完整复现需要对应API权限和硬件。

产品化成熟度:★★★★★

直接给出了可部署的最小特征集和推荐特征集,并分析了不同特征组合的精度-成本权衡。完整的前端SDK+后端API设计方案可以封装成一行代码接入。

可能的问题:威胁模型假设攻击者只在Playwright API内操作,没有考虑OS级鼠标控制(如Arduino模拟鼠标)或CDP原生事件伪造。此外,人类数据来自CAPTCHA场景,可能与一般浏览行为存在差异。作者也指出“传送点击”特征依赖于Playwright的element.click()实现细节,若API更新或代理改用硬件模拟,检测可能失效。


主要参考文献

[1] Shunyu Yao et al. "ReAct: Synergizing Reasoning and Acting in Language Models." ICLR, 2023.
[2] Reiichiro Nakano et al. "WebGPT: Browser-assisted question-answering with human feedback." arXiv preprint arXiv:2112.09332, 2021.
[3] Christos Iliou et al. "Combining mouse biometrics and server logs for advanced bot detection." Computers & Security, 2021.
[4] Antoine Acien et al. "BeCAPTCHA-Mouse: Synthetic mouse trajectories for bot detection." Pattern Recognition, 2021.
[5] SAINT: Improved Neural Networks for Tabular Data via Row Attention and Contrastive Pre-Training. NeurIPS, 2022.
[6] CaptchaSolve30k dataset. https://huggingface.co/datasets/captchasolve30k
[7] Anthropic. "Computer Use." 2024.
[8] OpenAI. "Operator." 2025.
[9] Tianqi Chen and Carlos Guestrin. "XGBoost: A Scalable Tree Boosting System." KDD, 2016.

——
以上就是这篇来自慕尼黑工业大学关于AI代理检测的精彩研究解读。如果你觉得对AI安全、反欺诈或Web自动化领域有启发,欢迎点赞、在看和转发!

*本文仅代表个人理解及观点,不构成任何论文审核或者项目落地推荐意见,具体以相关组织评审结果为准。欢迎就论文内容交流探讨,理性发言哦~ 想了解更多原文细节的小伙伴,可以点击"阅读原文",查看更多原论文细节哦!       

end
AI代理检测就像玩捉迷藏,但这次藏匿点被两个行为特征彻底封锁了🔒。想第一时间获取最前沿的AI安全与代理检测解读?快来龙哥读论文粉丝群,和同行一起聊透底!
欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群
wechat_helper dianzan
转发文章 微博 X LinkedIn Facebook
龙哥读论文 · PaperDaily

本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。