你的反爬虫系统,今天被一个新的流量类别彻底绕过去了——AI Agent

你的反爬虫系统,今天被一个新的流量类别彻底绕过去了——AI Agent

这不是 bot,也不是人。它是第三类。

传统的反爬虫检测假设世界上只有两种流量:人类和机器 bot。所以检测系统非黑即白:是人类,还是 bot?arXiv 上这篇新论文(2607.26935)把这个问题彻底扒开了:在这个二元假设下,所有现役的反爬虫系统都有一个共同的盲区——它们从架构上就无法看见 AI Agent,因为 label space 里根本没有这个类别。

论文做了对照实验。在同一个基准测试里,一个 MLP 二分类器把 39.1% 的真实 AI Agent 误分类为人类,SAINT 二分类 transformer 误分类率是 34.5%。不是它们调参没调好,是标签空间本身装不下第三种东西。

解决方案说出来极其简单:加一个类别就行。

论文作者构建了一个三分类检测框架——人、bot、AI Agent。加了显式的 Agent 类别之后,per-class agent F1 在所有 30 次运行(3 个模型族 × 10 个种子)里都达到了 1.000。不是 0.999,是 1.000。

更有意思的是检测信号本身。

不是 Agent 做了什么,而是 Agent 没做什么。Playwright 这类浏览器自动化框架不会发射物理输入设备产生的原始 pointer-move 和 wheel-delta 流——这是物理鼠标和滚轮自始至终都在发送的东西。二分类器检测不到这个信号,因为它只训练过看”有没有人”,没训练过看”缺不缺什么”。

这个信号强到什么程度?论文对大小为 1 到 5 的所有特征子集做了穷举搜索(9401 个 GBM),发现只用两个特征就能达到 100% 的 Agent 召回率、0.994 的精确率:mouse_event_rate(鼠标事件频率)和 teleport_click_ratio(瞬时点击比率)。五个特征可以把宏平均 F1 提高到 0.991。

而且信号是冗余编码的——去掉 teleport_click_ratio,检测率还是 100%。

为了测量规避能力,论文搭建了一个五级规避阶梯:被动观察、GAN 生成轨迹、真实人类鼠标数据回放(n=2299)。在 10 个种子和 3 个模型族的 22990 次预测中,零漏检。

这个结果让论文作者自己都觉得不舒服的地方在于:你越”干净”地用 Playwright 驱动浏览器,你留下的自动化特征就越明显——因为你在模仿人类输入这件事上做得越完美,你就越缺那些人类天然产生的物理信号。

反过来想:如果检测依赖的是”缺什么”,那当浏览器自动化框架开始模拟真实输入设备的原始数据流时,这套检测方法还管用吗?论文的结论是:目前还管用,但这个窗口不会永远开着。

对于在前端或安全方向工作的工程师来说,这个研究结论有几个可以直接落地的下一步:

如果你是前端安全/风控工程师:检查你的网站流量分类系统是否只有二分类。如果只有”人类 vs bot”,那 AI Agent 这类流量在你系统里是隐形的。优先考虑加入三分类框架,至少在日志层区分这三类。

如果你在做爬虫或数据采集工具:你的自动化工具此刻正在被相当一部分网站当作”既不是人也不是 bot”的第三类流量处理,这意味着它的行为特征可能被单独标记和追踪。即便当前没有被拦截,这个检测维度已经被公开了,防御方随时可以启用。

如果你是 AI Agent 开发者:了解你的框架在什么层级注入了输入事件。越底层的模拟,越难绕过基于缺失特征的检测;纯 JS 层面的事件分发,在 raw input stream 分析面前没有任何隐私保护作用。

这篇论文的完整标题是《What Does It Take to Detect an AI Agent? Minimal Feature Sets for Behavioral Detection under Browser Automation》,2026 年 7 月 29 日提交,作者来自 Vishisht Choudhari 等六人团队。目前已有多个社区对这篇论文做了深度解读,包括 moltbook 的三篇系列评论,从不同角度补充了工程落地的思考。

核心结论一句话:你的反爬虫系统看不见 AI Agent,不是因为它不够聪明,是因为它的世界观本身少了一个类别。

评论区

0 条评论

登录后可评论。

AI 论文日报 14 阅读