☰
dots深度评测:AI Agent翻车根源不在大模型,而在浏览器
2026/10/15 15:39:14 网站建设 项目流程

文章目录

    • 前言
    • 一、模型再强,也扛不住浏览器层翻车
      • 1.1 大家都爱卷模型,没人管浏览器
      • 1.2 现在的反爬系统,比房东查房还细
    • 二、dots 的解法:直接给浏览器引擎动手术
      • 2.1 为什么 JS 注入是"贴纸条式伪装"
      • 2.2 引擎级补丁:指纹天生就是"真"的
      • 2.3 架构分层与运行姿势
    • 三、扒开 dots 的底裤:20 行代码的真相
      • 3.1 一个被精心包装的入口
      • 3.2 时间节点的"巧合"
      • 3.3 理性评估:包装可以扔,技术可以留
    • 四、横向对比:反检测方案选型矩阵
    • 五、合规红线与落地建议
      • 5.1 红线:反检测不是免死金牌
      • 5.2 落地路径:三步走
    • 六、趋势与总结

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看, 传送门https://blog.csdn.net/qq_34419312

前言

先聊一个扎心的事实:你精心调教的 AI Agent 翻车,八成不是模型笨,是浏览器先跪了。

页面没加载完、验证码贴脸开大、登录态说没就没、鼠标点了个寂寞……这一套连招下来,模型连"思考"两个字都没来得及想,任务就已经凉透了。

这就好比米其林大厨上门做菜,结果被小区门卫拦在门外。你说问题出在厨艺吗?问题出在门卫。

而现在的门卫,已经不是当年的门卫了。

一、模型再强,也扛不住浏览器层翻车

1.1 大家都爱卷模型,没人管浏览器

一聊 Web Agent,满屏都是推理能力、工具调用、上下文窗口。模型厂商卷得头破血流,恨不得给 AI 装上八块腹肌。

但真实场景里,Agent 任务失败的原因,大概率跟模型一毛钱关系都没有。

页面没加载完。验证码弹了出来。登录态失效。点击没落在目标元素上。

这些问题全部发生在浏览器层。在模型获得"思考"机会之前,任务就已经被判了死刑。翻译一下:你请的司机再厉害,车都发动不了,他也只能坐在驾驶座上刷手机。

1.2 现在的反爬系统,比房东查房还细

更阴险的是,现代反爬系统早就不靠单一的navigator.webdriver标志位来判断了。

TLS ClientHello 指纹、CDP(Chrome DevTools Protocol)协议泄露、AudioContext 指纹、WebGL 渲染器信息……这些信号组合起来,毫秒级就能判定你这个浏览器会话是不是自动化工具。

说实话,这套组合拳比我妈检查我手机还仔细。人家连你浏览器是真是假都看得出来,你藏在浏览器里的 Agent 还能藏到哪去?

dots 这个项目的思路,就是从这个被长期忽视的层面切入的。

二、dots 的解法:直接给浏览器引擎动手术

2.1 为什么 JS 注入是"贴纸条式伪装"

目前主流的 stealth 方案(playwright-stealth、puppeteer-extra-plugin-stealth 这些)用的都是 JS 注入:在页面脚本执行之前,往navigator对象上覆盖关键属性。

听起来挺聪明,但有个致命缺陷:JS 补丁本身可以被检测。

反爬脚本可以通过Function.prototype.toString()检查函数是不是被改过,通过属性描述符(descriptor)检查 getter/setter 是不是原生,甚至用Object.getOwnPropertyNames()枚举有没有多余的全局变量。

这就好比你在脸上贴了张纸条,上面写着"我不是机器人"。反爬一看:哦,字写得挺好,就是贴得不太像。

2.2 引擎级补丁:指纹天生就是"真"的

dots 的技术底座invisible-playwright-mcp(上游项目)走的是另一条路:直接对 Firefox 引擎的 C++ 源码打补丁,让指纹在引擎层面就已经定死了,而不是在页面层被"涂改"。

具体来说,这个被 C++ 补丁过的 Firefox 引擎能干这些事:

  • 指纹由引擎生成:屏幕分辨率、字体列表、GPU 信息、时区、语言,全部在 C++ 层设置。页面用 JS 去查,查不出任何"伪造痕迹"——因为人家本来就是这么设定的。
  • 零 WebDriver 标志:不暴露 DevTools 协议,页面里找不到任何跟自动化相关的全局变量。
  • 种子驱动身份一致:通过--seed参数,每次运行能复现同一套指纹。多次访问看起来就是"同一个人",比某些人的人设还稳定。
  • 人类行为模拟:指针移动轨迹贴近真实用户,键盘事件逐字符触发。页面收到的都是"可信事件",而不是一顿批量注入。
  • 持久化身份:--profile-dir保留登录态和 Cookie,--proxy让时区和语言跟着出口 IP 走。

一句话总结:JS 注入是化妆,引擎级补丁是整容。化妆能被卸掉,整容卸不掉——除非反爬连骨头都给你 CT 一遍。

2.3 架构分层与运行姿势

先上架构图,免得你们说我空口吹:

┌─────────────────────────────────────────────┐ │ dots CLI (wrapper) │ ← 20 行 cli.py ├─────────────────────────────────────────────┤ │ invisible-playwright-mcp (MCP Server) │ ← Web UI + Agent Loop ├─────────────────────────────────────────────┤ │ invisible_playwright (Python API) │ ← Playwright 替代层 ├─────────────────────────────────────────────┤ │ firefox_antidetect_patch (C++ Binary) │ ← 核心:补丁 Firefox 引擎 └─────────────────────────────────────────────┘

项目用 Python 3.11+ 构建,依赖管理走 uv。安装姿势很简洁:

# Linux curl -LsSf https://astral.sh/uv/install.sh | sh source $HOME/.local/bin/env uvx --from git+https://github.com/feder-cr/dots dots --openrouter-key sk-or-... # 启动后访问 http://127.0.0.1:8765 # 左侧对话,右侧实时浏览器视图

模型侧支持 OpenRouter 上的任意模型,用--model切换,默认是z-ai/glm-5.3-flash。

平台兼容性方面:支持 Windows x86_64 和 Linux x86_64/arm64,但 macOS 自 2026 年 8 月下旬起不再支持。

对 Mac 用户来说,这属于硬性打击。别人是"苹果全家桶",你是"苹果全家桶被踢出去一桶"。

三、扒开 dots 的底裤:20 行代码的真相

3.1 一个被精心包装的入口

对 dots 仓库做静态取证后,一个残酷的事实浮出水面:dots 本身压根不是一个独立项目。

这个仓库的实际内容,是一个约 20 行的cli.py加一个pyproject.toml。后者甚至用大写字母写着:“THE WHOLE PRODUCT IS THIS LINE”——唯一有效的依赖是invisible-playwright-mcp==0.70.2。整个cli.py的功能,就是转发ui子命令。

# src/dots/cli.py 核心逻辑(完整) """dots is invisible-playwright-mcp ui, and nothing else.""" import sys SUBCOMMAND = "ui"

翻译一下:你以为是买了辆跑车,打开引擎盖一看,里面就一个方向盘和一张"请去隔壁提车"的纸条。

浏览器引擎、Agent 循环、Web UI 和 MCP Server,全部在作者的同名兄弟仓库feder-cr/invisible_playwright_mcp里。而这个仓库本身,是 2024 年病毒式传播的 LinkedIn 求职机器人 AIHawk 的改名重写版本。

也就是说:AIHawk 改个名,换身衣服,又重新出道了。娱乐圈看了都要说一句内行。

3.2 时间节点的"巧合"

dots 仓库的首次推送时间是 2026 年 9 月 29 日 23:06 UTC,恰好卡在 OpenAI 同日 DevDay 发布同名"dots"产品之后。

README 最后一行写着 “Not affiliated with OpenAI”。这话怎么看怎么像"此地无银三百两"的英文版。

一个高度依赖上游包、只有 20 行包装的仓库,3 天拿下 2.4K Star。这个数字,建议大家先喝口凉水冷静一下再看。

当然,也不排除一种可能:这届网友就是单纯觉得"自带浏览器的 Agent"听起来很酷。毕竟名字起得好,Star 少不了。

3.3 理性评估:包装可以扔,技术可以留

尽管争议不少,底层的 stealth 浏览器技术本身,确实是开源社区对"Agent 频繁被验证码拦截"这个问题最严肃的回答之一。

争议在于入口层的包装策略,不在于技术本身的价值。就好比外卖盒难看,不代表饭不好吃。

理性路径很简单:直接使用上游invisible-playwright-mcp,跳过 dots 这层包装。绕开中间商,买家少花冤枉钱,卖家少挨骂,双赢。

四、横向对比:反检测方案选型矩阵

Web 浏览器自动化这个领域,反检测能力就是核心竞争力。下表从反检测路径、开源模式、平台支持等维度做个横向对比:

维度dots / invisible-playwrightbrowser-useCamoufoxPlaywright + stealth
反检测路径Firefox C++ 引擎补丁云端 stealth + CDP 替代Firefox C++ 引擎级伪装JS 注入补丁
指纹一致性Seed 驱动,引擎级一致依赖云浏览器引擎级JS 覆盖,可被检测
WebDriver 标志无云端方案无无需插件抹除
开源许可MIT开源 + 商业云服务开源Apache 2.0
平台支持Windows / Linux全平台(云)全平台全平台
LLM 集成OpenRouter 任意模型OpenAI / 自研 BU2需自行集成需自行集成
MCP 支持✅ 原生部分通过 camofox-browser否

关键差异在于:browser-use 走的是"云端 stealth 浏览器 + 商业 API"路线,提供 $0.02/浏览器小时的云浏览器服务,还集成了 CAPTCHA 破解和住宅代理。优势是开箱即用、全平台兼容,代价是得依赖云服务,还得持续掏钱。

dots/invisible-playwright 则是纯本地、自托管的方案。强在指纹深度和一致性,代价是平台支持受限、得自己维护。

这就跟租房和买房似的:云端方案是租房,拎包入住,但月月交租;本地方案是买房,一劳永逸,但装修维护全得自己来。

对于 WebVoyager 等基准测试,browser-use 云端方案报告了 81%-93% 的 stealth 通过率。dots 没公开基准测试数据——所以建议你在隔离环境里自己验证,别听我在这儿"应该大概也许"。

五、合规红线与落地建议

5.1 红线:反检测不是免死金牌

浏览器自动化是个法律敏感领域。C++ 级反检测的本质是"不被检测",但这不等于"可以无视规则"。

  • 目标站点 ToS 与 robots.txt:规则写在那,不是给你当参考的。任何自动化行为都该遵守目标站点的服务条款。
  • 高频抓取风险:反检测能力不该拿去大规模爬数据。技术上是"查不出来",法律上是"查出来就晚了"。
  • 敏感操作限制:登录、支付、个人信息提交这类操作,必须在人工确认的前提下执行。让 Agent 自己付钱,出事了算谁的?
  • 许可合规:dots 是 MIT 许可,但 2026-09-02 之前的上游发布用的是 AGPL-3.0。商用之前先确认具体版本,别等到律师函寄到家门口才想起来看协议。

记住一句话:检测过不去是技术问题,检测过去了还乱来,那就是法律问题。

5.2 落地路径:三步走

**第一步,验证技术可行性。**在隔离环境(推荐 Docker 或专用 VM)里按 README 跑通核心流程。本文基于静态代码取证,没有运行时实测,所以务必自己跑一遍。Mac 用户注意:macOS 不支持,请先弄台 Linux 虚拟机。

**第二步,评估替代方案。**只要 MCP 集成,直接用invisible-playwright-mcp,省掉 dots 包装层;追求开箱即用和全平台,browser-use 云端方案更务实。

**第三步,最小化权限。**生产环境里限制 Agent 可访问的域名范围,敏感操作强制人工确认,操作日志审计机制安排上。权限给得越少,锅背得越少。

六、趋势与总结

dots 的热度背后,是一个更大的趋势:2026 年,AI Agent 的竞争重心正在从"模型能力"向"环境交互能力"转移。

Google 在 Chrome 里集成 WebMCP 和 Auto Browse,微软发布 Fara1.5 浏览器智能体,OpenAI 推出自己的 dots 产品。浏览器层的 Agent 化,已经是巨头们的共识——卷完大脑,开始卷手脚了。

dots 的技术价值,在于验证了 C++ 引擎级反检测这条路径的可行性。它的争议在于包装策略,但底层invisible-playwright-mcp在 stealth 浏览器工程上,确实提供了开源社区目前比较深入的一种实现。

如果你需要在自托管环境里跑 Web Agent、又总被反爬按在地上摩擦,上游仓库值得关注和评估。

最后送大家一句话:模型负责聪明,浏览器负责别被当成机器人。一个连验证码都过不了的 Agent,再聪明,也只是个行动不便的天才。

P.S. 无意间发现了一个巨牛的人工智能教程,非常通俗易懂,对AI感兴趣的朋友强烈推荐去看看,传送门https://blog.csdn.net/qq_34419312

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询