☰
开源AI网页Agent dots完全指南:它自带反检测浏览器,为什么网站拦不住它?
2026/10/2 8:16:29 网站建设 项目流程

开源AI网页Agent dots完全指南:它自带反检测浏览器,为什么网站拦不住它?

【免费下载链接】dotsOpen-source dots for the web: an AI agent with its own browser, one that does not get blocked.项目地址: https://gitcode.com/gh_mirrors/dots140/dots

dots是一个开源 AI 网页 Agent(浏览器代理):它自带一个反检测浏览器,把网页任务交给它,页面照常打开、验证不触发、点击像真人一样落点,网站几乎拦不住它。这篇完全指南会用 3 条命令带你跑起 dots,并讲透它的反检测原理。

dots 是什么:模型 + 浏览器,缺一不可 🧩

"Every AI agent is a model and a browser. You can swap the model with one flag. The browser is what the website sees." —— README.md

翻译过来就一句话:

  • 模型可以随时换(--model一个参数),dots 支持 OpenRouter 上的任意模型
  • 浏览器才是网站真正"看见"的东西:指纹、输入事件、连接来源,全部发生在浏览器层

所以 dots 把全部工程重心押在浏览器上——这正是它"拦不住"的答案所在。

为什么普通 AI 网页 Agent 会被网站拦下?

网页代理翻车时,多半不是模型的锅。页面没加载、弹出人机验证、登录过期、点击没落上……这些事全部发生在模型思考之前。普通自动化浏览器有几类天然"露馅点":

露馅点网站看到什么
WebDriver自动化标志位脚本一查即穿帮
用 JS"画"出来的假指纹页面自己检查就能发现
瞬间传送式的点击不符合真人操作轨迹
时区 / 语言 / IP 互相矛盾风控系统直接标记

dots 的反检测浏览器逐条解决它们 👇

dots 反检测浏览器原理:网站为什么拦不住它

  1. 真实 Firefox 引擎,C++ 层打补丁:指纹在引擎内部决定,而不是用 JS 覆盖,页面无法检查穿帮
  2. 一个种子一种身份:屏幕、字体、GPU、时区、语言彼此自洽;--seed让每次运行都是"同一个人"
  3. 页面找不到任何自动化痕迹:无 WebDriver 标志、无 DevTools 协议、页面无自动化全局变量
  4. 真人的手:指针会移动到点击目标、按键逐个落下,页面收到的每个事件都是可信事件
  5. 会记忆的浏览器:--profile-dir让登录态和 Cookie 跨次运行保留
  6. 连接来源即身份:加--proxy后,时区和语言跟随代理出口,不再自相矛盾

最快上手:3 条命令运行 dots

第 1 步:安装 uv(Python 包管理器)

先在你的机器上装好 uv 包管理器(Windows 用 PowerShell 脚本、Linux 用官方安装脚本,按其文档走即可)。

第 2 步:一条命令启动 dots

uvx --from git+https://gitcode.com/gh_mirrors/dots140/dots dots --openrouter-key sk-or-...

Windows 与 Linux 用同一条命令。把--openrouter-key换成你的 OpenRouter Key;不想暴露在命令行上,也可以写在命令旁的.env文件里,dots 会自动读取——这正是它经由上游命令组启动的原因,见 src/dots/cli.py 的注释。

第 3 步:打开本地控制台

浏览器访问http://127.0.0.1:8765:左边是对话窗,右边是浏览器,实时看着 Agent 操作网页。

给 dots 派任务:一个"查机票"提示词示例

README.md 里给了一个官方任务模板,直接抄作业:

Go to<粘贴目标网址>. One way, Milan to Lisbon, economy, one adult. Check every date from the 12th to the 16th of next month and read the cheapest fare for each day. If a date has no availability, say so. Do not guess a number.

意思是:去这个网站查米兰→里斯本的单程经济舱、1 名成人;逐天核对下月 12–16 日的最低票价,没票就直说,不许编数字。这类"多步骤 + 要准确"的网页任务正是 dots 的主场。

进阶:把同一个反检测浏览器接进你的助手

如果你已在用 Claude Code、Codex、Gemini CLI 或任意 MCP 客户端,可以让它们共享 dots 背后的同一个浏览器:上游项目invisible_playwright_mcp把这个反检测浏览器以 MCP Server 形式提供,dots就是它的界面,运行dots --help会列出全部选项。

源码速览:dots 仓库里有什么

dots 仓库本体刻意保持极薄——它只是固定版本invisible-playwright-mcp==0.70.2的接口,产品能力全部来自上游(见 pyproject.toml 中的说明注释):

  • src/dots/cli.py:入口,把dots转发给上游命令组的ui子命令
  • src/dots/main.py:支持python -m dots启动
  • tests/test_entry.py:集成测试保证--help必须列出--openrouter-key、--model、--proxy、--seed、--profile-dir;且没有 Key 时必须在启动任何浏览器之前拒绝运行
  • pyproject.toml:关键词一览——browser-agent、web-agent、anti-detect、firefox、openrouter

dots 常见问题 FAQ

Q:没有 API Key 能跑吗?不能。没有 OpenRouter Key 时,dots 会在启动任何浏览器之前直接拒绝运行,不白耗资源(见 tests/test_entry.py)。

Q:想让它每次都"是同一个人"?用--seed固定种子:屏幕、字体、GPU、时区、语言整套身份保持一致且可复现。

Q:登录态会丢吗?用--profile-dir指定配置目录,Cookie 和登录态跨次运行保留。

Q:模型必须用某一家的吗?不是。OpenRouter 上的任意模型都可以,--model随时切换。


一句话总结:dots = 可随时更换的 AI 模型 + 一个网站看不穿的反检测浏览器。想让它帮你查票、比价、填表,3 条命令就能开工 🚀

【免费下载链接】dotsOpen-source dots for the web: an AI agent with its own browser, one that does not get blocked.项目地址: https://gitcode.com/gh_mirrors/dots140/dots

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

立即咨询