智能体缺的那一层:让 AI 顺畅访问开放网络的抓取基建
关联
公司 Oxylabs
概念 智能体 · 网页抓取 · 浏览器自动化 · 验证码 · 大型语言模型 · token · Fast Search API · Web Scraper API · Playwright MCP · 无头浏览器 · 地理定位
一个 AI 购物助手的点子听起来很美好:聊天机器人跟你聊穿搭、帮你挑商品,然后一个购物智能体拿着提示词去网上找货、下单。说这个故事的人是 Giedrus,来自网页抓取公司 Oxylabs——过去十年他们帮大模型公司拿训练数据,现在把同一套基建用来帮 AI 智能体访问网络。
他朋友就是这么搭了个购物智能体,结果跑起来不是遇到商品页,而是一墙验证码;他全程用浏览器自动化(用程序模拟真人操作浏览器),又慢又贵又不可靠,最后做出一个「不能用、还烧钱」的产品。Giedrus 一眼看出问题:他缺了一层——一个能让智能体在开放网络上自由运作的基础设施层。
修好它靠的是抓取行业的三条老原则:① 只有绝对必要时才用浏览器;② 先验证内容再喂给模型——HTTP 返回 200 不代表拿到的是有效内容;③ 内容越轻量越好——网页里塞满 JavaScript、CSS、HTML,大量字节毫无价值。
发现阶段:别用浏览器逛,直接搜
朋友的流程分四步:发现(在哪些网站能买到)→ 决策(核实价格、库存、描述后选品)→ 用户确认 → 执行购买。发现阶段他用的是一份预定义的大零售商清单,再拿浏览器自动化去逐个查它们的搜索页。问题一大串:工具没有「隐身能力」(绕过网站反爬检测),动不动被验证码拦住、整个流程中断,还得加重试机制,每笔交易的成本根本没法预测;清单是死的,选品范围被锁死;网站 JavaScript 太重,又慢又贵;而且很多电商按用户地理位置显示库存和尺码,发现阶段拿不到地理定位,就算流程跑通,结账时商品也常常缺货。
他的替代方案:给智能体一个搜索工具(Fast Search API),让它自己上网搜。智能体制定一批扇出查询(同时发多个搜索请求),再从结果里挑相关 URL。这个 API 每次响应是紧凑的 JSON、不到 2,000 个 token,平均响应不到 700 毫秒,价格低且可预测——最关键的是,所有这些零售网站早就被搜索引擎索引过了,根本不需要自己用浏览器去翻。
决策阶段:先验证内容,别浪费 token
到了决策阶段,智能体要访问那些 URL,确认价格、库存、描述。朋友还是用浏览器,而且并行开了很多个——并行本身没错,但很多页面打开是验证码,热门零售商几乎全军覆没,智能体手上只剩寥寥几个选择。
好在他可观测性做得好,发现了问题;Giedrus 见过的大多数客户根本检测不到失败:他们只检查内容大小和 HTTP 状态码,就把巨大的 HTML 直接喂给大模型。模型当然分得清验证码和真页面,但那是要花 token 的——开 10 个网站只有 3 个有效,10 个全喂进去,就是白白浪费 70% 的 token。
「在我看来这有点疯狂。」
他第一反应是压缩输出,但很快意识到方向错了:问题不在压缩,在于内容本身无效——压缩之前得先确保内容有效。 于是他遵循抓取第一原则,完全抛开浏览器,改用 Web Scraper API 重建这一阶段,收获一串好处:
- 只返回有效内容:遇到验证码或封锁,请求会带着明确的错误信息失败,你就知道别把它送进模型;
- 轻量 REST API(一种简单的网络接口),可并行跑数百个请求;支持 Markdown 输出,不用把原始 HTML 塞给模型;
- 网站如果是动态的(需要渲染 JavaScript),底层自动跑完整浏览器;
- 支持地理定位,结果能本地化,和后面购买环节对得上;
- 只为成功的结果付费——「不治愈,不收费」,爬取失败就没有成本,而且失败得很响亮,你能立刻知道。
购买阶段:这次真的必须用浏览器
轮到执行购买时,原则要反过来用了——「这次你绝对需要使用浏览器」:要填表单、做输入,内容高度动态。 这一步他跟朋友的实现差不多,都是 Playwright MCP(让大模型操控浏览器的一套工具协议)加浏览器加大模型。朋友的老毛病又来了:访问——一路被验证码折磨到崩溃,流程根本没法自动化。
修复却出奇地简单:把浏览器换成 Oxylabs 的无头浏览器(不带界面的后台浏览器),对 Playwright MCP 来说就是即插即用的替换。换上之后,智能体获得了多年反爬经验在浏览器源码层面做好的隐身处理、开箱即用的住宅代理(用真实家庭网络的 IP 访问,不易被识别为机器),以及最关键的地理定位——购买环节看到的价格、库存、尺码,和验证环节本地化的结果一致。
跑起来,它真的能从提示词里选出正确尺码、加入购物车、完成购买。「砰,我们就有了一个智能体,指挥着一套由多年网页爬取经验加固的强大基础设施。」
本集带走
- 浏览器是最后手段,不是默认选项:搜索、抓取静态页面这类活,用轻量 API 又快又便宜;只有需要填表单、交互的环节(如结账)才真的上浏览器。
- 先把内容验证了再喂模型:HTTP 200 ≠ 有效内容。开 10 个网站只有 3 个有效却全喂给模型,等于浪费 70% 的 token。用「失败时明确报错」的工具,让无效内容在进模型前就被挡掉。
- 给智能体搜索而非固定清单:搜索引擎早就索引了全网,让智能体自己扇出查询,选品范围不再被预定义列表锁死。
- 地理定位要贯穿全流程:电商按位置显示库存和尺码,发现、验证、购买三个环节用同一套地理定位,否则结账时才发现缺货。
- 可观测性是救命稻草:只查状态码和内容大小的监控会漏掉验证码失败——朋友正是因为看得见失败才发现了问题。
客户只需要为成功的结果付费。
Customers only pay for successful results.
—— Giedrius Šteimantas · [11:36]
不治愈,不收费。
No cure, no pay.
—— Giedrius Šteimantas · [11:45]
当我们尝试打开 10 个网站,只有 3 个返回有效内容,却把全部 10 个都喂给模型时,这就是个问题。
And when we attempt to open 10 websites, but only three return valid content, but feed all of the 10 to the model, it is a problem.
—— Giedrius Šteimantas · [09:30]
HTTP 响应 200 并不意味着一切正常。
HTTP response 200 does not mean that we are good to go.
—— Giedrius Šteimantas · [03:23]
网站上充满了 JavaScript、CSS、HTML,其中有大量字节根本不提供任何价值。
Websites are full of JavaScript, CSS, HTML, and there’s a lot of bytes that do not deliver any value whatsoever.
—— Giedrius Šteimantas · [03:30]
顺着「智能体」挖下去
- DevOps 之父谈智能体开发:谁来管、怎么管、别踩什么坑同概念:token、智能体 (agent)、可观测性 (observability)
- Factory CEO Matan:早两年等于错,退款、路由器与软件工厂同概念:token、智能体 (agent)
- 给智能体预算,而不是令牌:Anthropic 的智能体安全上生产之道同概念:token、智能体 (agent)
换个口味
- 不会写代码的人如何成为全职 vibe coder同概念:token、智能体 (agent)
- 开源的钟摆摆向另一边:Cal.com 联合创始人 Pierre 谈 AI 时代的安全崩塌同概念:大语言模型 (large language model)、智能体 (agent)
- 评测优先:Braintrust 创始人谈 AI 产品开发的真正工程同概念:智能体 (agent)、可观测性 (observability)
