检测重心从单个属性转向整段会话之后,客户端能钻的空子变少了,要求却变高了:环境内部要自洽,环境之间要独立,状态要连续,出口要对得上。
过去一年 AI Agent 跑得越来越深,从调用浏览器工具到登录后台、处理订单、回复邮件,整条业务流程都交了出去。与此同时,风控那一侧也在换判断方式:不再只盯某个浏览器属性,而是把整段会话摊开来看。
检测从单点属性挪到了整段会话
平台在介绍自己的 AI 检测能力时提到,观察对象是整段会话里的行为信号:指针移动是不是过于规律,输入速度和节奏是否异常,页面没有获得焦点时是否仍在执行输入,页面不可见时是否还有指针活动,以及整段操作前后是否一致。
这些信号有个共同点:它们不依赖某一项参数的真假,而是看一段时间内的连续性。在单个属性上做手脚,对这类判断基本没用。
会话之外还有一层关联判断
行为信号之外,整体风控还会把浏览器环境、Cookie、登录状态、网络环境和账号历史放在一起看:环境是否保持一致,Cookie、本地存储和登录状态是否连续,环境是不是在频繁变化,网络环境有没有异常跳变,多个账号之间有没有共用同一套浏览器环境,以及行为是否符合正常业务流程。
这些判断可以归成两层。一层是浏览器运行环境,它决定环境和登录状态能不能保持连续;另一层是 Agent 的执行策略,它决定整段操作看起来像不像自动化。两层里任何一层出问题,任务都难稳定跑下去。
环境不一致为什么会被判定为自动化
反过来想更清楚。真人用一台设备访问一个网站,会留下大量互相吻合的线索:出口 IP 在某个地区,系统时区就应该在附近的时区;常用语言应该和 IP 所在地区有合理对应;屏幕分辨率、字体列表、显卡信息之间应该对得上;Cookie 和登录状态应该随时间缓慢变化,而不是每次访问都从零开始。
不一致本身就是异常。 出口在法兰克福,浏览器时区却停在洛杉矶;这一小时是一套字体和分辨率,下一小时换了一套;同一套环境里十分钟登进五个账号。这些情况单独出现还算可疑,凑在一起就很难用真人行为解释。
平台的逻辑并不复杂:正常用户不会这样。既然如此,维护一致性的成本就只能由客户端自己承担。
客户端可以准备的四个方面

一是环境内部自洽:时区、语言、分辨率、字体、GPU 这些参数之间不互相矛盾。
二是环境之间独立:每个任务有自己的数据目录、自己的参数、自己的出口,避免多个身份被关联到同一台设备。
三是状态连续:Cookie、本地存储和登录状态按环境各自保存,重启后能恢复原样,而不是每次从头登录。
四是出口与地理参数对齐:出口地区换到别的国家,环境的时区和语言也跟着走,别让两者长期冲突。
前两条是环境层的事,后两条一半在环境层、一半在调度逻辑里。团队同时跑几十个 Agent 的时候,这类需求一般会落到环境管理这一层,把独立环境、独立出口和批量配置一起管起来,PurpleMark 就是提供这层能力的工具之一。
几类已经不太好用的老办法
只改 User-Agent 是最常见的一种,但底层特征没动,UA 和实际环境之间的矛盾反而更显眼。只换 IP 也是同理,设备特征和行为节奏都没变,换个出口解决不了问题。无痕模式影响的是本地存储,跟设备特征没有关系。
把多个任务塞进同一个环境同样不划算。并发时它们会互相覆盖 Cookie 和登录状态,而且多个身份出自同一套环境,本身就是一条关联线索。至于把等待时间统一拉长到某个固定值,规律性本身就是一个可识别的特征。
判断标准
与其纠结特征藏得够不够深,不如换个问法:环境内部讲不讲得通,环境之间是不是彼此独立,行为节奏符不符合真人的样子。三个都过了,才谈得上稳定运行。
边界
能通过检测,不等于拿到了操作许可。遵守目标平台的服务条款与 robots 协议,不使用虚假身份信息,不绕过技术保护措施,控制请求频率,不影响对方服务的正常运行。


