AI Agent 怎么操作多账号浏览器:备好环境、用 Local API 接上窗口、逐个账号调度

2026-10-08 19 0

先说结论:不要让 AI Agent 自己去开浏览器。 更稳的分工是,指纹浏览器给每个账号准备好独立环境,包括各自的 Cookie、指纹参数和绑定的代理;Agent 只负责理解任务、看页面、点按钮。两边靠 Local API 和 CDP 调试地址连起来。

整条链路是这样的:

  1. 在指纹浏览器客户端里,为每个账号建好环境、绑好代理、确认登录态
  2. Agent 调用 Local API,按环境 ID 启动其中一个环境
  3. 接口返回这个窗口的 CDP 调试地址
  4. Agent 框架(Browser Use、Playwright 或 MCP 工具)通过这个地址接管已经打开的窗口
  5. 任务做完后,调用 Local API 关闭这个环境,等数据保存好,再启动下一个

AI Agent、Local API 与多个隔离环境之间的分层关系和逐个调度顺序

下面按顺序讲每一步怎么做,以及哪一步最容易卡住。

为什么不让 Agent 直接启动浏览器

Browser Use、Playwright 这类工具默认会自己拉起一个通用的 Chromium。问题在于,这样开出来的每个窗口指纹基本一样,走的也是同一个网络出口。只登一个账号影响不大,一旦用它轮流登录多个账号,平台很容易把这些账号看成同一台设备、同一个人。

Agent 框架本身不管硬件指纹,也不管每个账号该用哪个代理。这部分交给指纹浏览器,Agent 接入的是一个已经隔离好的真实窗口。这种分层做法,也是目前把 Agent 和多账号环境结合时比较常见的方式。

第一步:交给 Agent 之前,先在客户端把环境备好

自动化一旦跑起来,出了问题很难分清是脚本的问题还是环境的问题。所以下面三件事,建议先在客户端里手动做完并核对:

  • 隔离是否生效:每个账号一个环境。检查出口 IP、指纹参数和本地存储是否互相独立,具体做法见新建浏览器环境后怎么确认隔离生效。
  • 代理能不能用:给每个环境单独绑定代理,检测通过后打开页面复测出口,参考怎么给每个浏览器环境单独绑定代理并验证出口。代理不通时,Agent 通常只会看到页面超时,经常误判成“元素找不到”,然后反复重试。
  • 登录态有效:手动打开每个环境,确认目标平台已经登录、没有弹出安全验证,再交给 Agent。

环境多的话,最好先统一命名规则,比如把平台、店铺、地区写进名字里。Agent 按 ID 调用时,日志也更容易对应到具体账号。命名方法可以看几十个浏览器环境怎么命名和分组。

第二步:用 Local API 启动指定环境,拿到调试地址

客户端运行时会在本机提供 Local API 服务。Agent 发一个启动请求,带上环境 ID,接口把对应窗口打开,并返回 CDP 调试地址。这个地址一般是 ws:// 开头的 WebSocket 地址,或者一个本地调试端口。

需要注意:

  • 接口路径、端口和是否需要密钥,以客户端里自带的 API 文档为准。不要照搬其他产品的接口格式。
  • 调试地址每次启动都可能变化,所以要每次从接口返回结果里读取,不要写死在代码里。
  • 先确认环境确实启动成功,再去连接。环境还没启动就连,是最常见的连接失败原因。

具体怎么请求、怎么判断返回结果,见Local API 怎么连到指定浏览器环境。

第三步:让 Agent 接管这个窗口

拿到调试地址后,常见的接入方式有三种:

  • Playwright / Puppeteer:用 connect_over_cdp(Puppeteer 里是 connect)连接已打开的浏览器,而不是用 launch 新开一个。
  • Browser Use:在浏览器配置里传入 cdp_url,让它接管现有窗口,而不是自己初始化一个新浏览器。
  • MCP:把“启动环境、导航、点击、关闭”包装成工具,供支持 MCP 的 Agent 调用。配置方法见怎么把 AI Agent 通过 MCP 连到指纹浏览器,国内网络下的排障可以看MCP 怎么连接指纹浏览器。

以 Playwright(Python)为例,关键是“连接”这一行:

# ws_endpoint 来自 Local API 启动环境后的返回值,每次重新读取
browser = await playwright.chromium.connect_over_cdp(ws_endpoint)
context = browser.contexts[0]   # 用环境已有的上下文,保留登录态
page = context.pages[0] if context.pages else await context.new_page()

这里容易漏掉一点:要用环境里已有的上下文。如果新建一个上下文,原来的 Cookie 和登录态就带不过去,Agent 看到的会是未登录页面。

第四步:多个账号怎么调度

多账号最稳的节奏是一个环境对应一个账号,开一个、做完、关一个:

  1. 启动环境 A,连接 CDP,执行任务
  2. 任务完成或捕获到异常,都要进入收尾流程
  3. 调用 Local API 关闭环境 A,等数据写入本地或同步完成
  4. 再启动环境 B

几条规则:

  • 不要在同一个环境里切换账号。 退出 A 再登录 B,会让两个账号共用同一套缓存和指纹,前面做的隔离就没有意义了。
  • 想并发,就按机器资源设上限。 每个环境都是一个完整的浏览器窗口,内存和 CPU 占用不低。先从两三个并发开始,观察稳定后再加。
  • 异常时也要关闭环境。 脚本报错退出后,环境如果一直开着,下次启动同一个环境可能会冲突。把关闭操作放在 finally 里执行。

遇到验证码或安全验证,交给人处理

平台弹出验证码、短信验证或异常登录提示时,不要让 Agent 硬闯。比较实用的做法是:Agent 检测到这类页面就暂停,记录是哪个环境,然后通知人工打开该环境处理,处理完再继续。因为 Agent 接管的是真实窗口,人工可以直接在客户端里打开同一个环境操作,不需要另外登录。

还要说明一点:这套流程的作用是把自有账号的运行环境隔离开,减少因为环境混用造成的关联。它不能保证账号不被风控。平台规则仍然要遵守。

常见卡点速查

  • 连接被拒或超时:环境还没启动完成,或者用了上一次的调试地址。重新调用启动接口,读取新返回的地址。
  • 页面显示未登录:代码里新建了上下文,或者环境本身的登录态已经失效。先手动打开环境确认。
  • 页面一直加载不出来:多数是代理问题。回到客户端做一次代理检测。
  • 跑着跑着变卡:并发开得太多,调低上限。
  • 指纹检测结果和环境设置不一致:检查代码是不是用了 launch,而不是连接已打开的窗口。

在 NexBrowser 里做这几步

NexBrowser 的环境隔离、代理绑定与检测、Local API 和 AI Agent 能力,免费档都可以用。Local API 免费,不限调用次数。付费只增加窗口数和成员数量,功能不分档,所以完全可以先用免费额度把上面的流程跑通。客户端目前只有 Windows 版,macOS 版还在开发中。下载页有国内和海外两条线路,安装包带代码签名。

还没装的话,可以先去下载页装好客户端,再从第一步建环境开始。

相关文章

防关联浏览器怎么检测代理是否生效:先测连通,再开窗复验四项
AI 浏览器自动化会不会被平台识别:平台看哪四层信号,运营者能做什么
MCP 调用浏览器需要开什么端口:按四种连接方式对照配置
浏览器 MCP 和 RPA 有什么区别:工作原理、适用任务与选择方法

评论(0)

暂无评论

发布评论