2026年10月14日 1 分钟阅读

AI Agent 搜网页,先读哪几页?Xtract 用相关性与新鲜度给结果排序

tinyash 0 条评论

给 AI Agent 接上搜索 API,不代表它就会高效研究。一次查询可能返回十个网页,模型逐个读取后,才发现其中有重复页面、过时新闻,或根本答非所问的结果。问题不只是“搜得准不准”,还包括:哪些页面值得花上下文读取,信息是否仍然有效,筛选本身又要消耗多少 token?

Xtract 是一个围绕这个问题搭建的实验性搜索层。它位于 Agent 与搜索服务之间,为候选页面估计任务相关性和读取价格,让 Agent 优先考虑更有价值的页面。项目 README 将目标用户聚焦在需要先研究公司信息、再生成外联内容的 AI 销售 Agent;不过,这种“先筛选、再读取”的思路,也适用于文档检索和资料汇总工作流。

它做的不是另一个搜索引擎

Xtract 的流程可以拆成四步:Agent 发送查询;系统通过 Keenable 获取搜索结果;Xtract 对结果评分并附加价格;Agent 按价值选择页面,再读取内容。页面评分会被缓存和复用,后续任务遇到同一页面时,不必从头重复所有评估。

README 描述的 usefulness 分数综合了五类信号:查询与标题、摘要的 embedding 相似度,轻量模型对摘要是否回答问题的判断,搜索引擎原始排序,以及页面和域名过去被 Agent 引用的情况。它不是单一的“相关度分数”,而是试图把语义匹配、搜索引擎信号和历史使用反馈放进同一排序过程。

此外,系统还尝试处理重复和时效性:已经购买的页面若与其他候选重复,后者的 usefulness 会降低;同一结果集合里如果后续页面推翻较早信息,较早页面会被降权并附上更新提示。这些机制针对的是 Agent 研究中的实际风险:重复阅读浪费预算,旧信息则可能让最终回答看似流畅、事实却已失效。

看懂演示数字的边界

项目 README 报告了一组 15 家公司的销售研究测试:Xtract 平均每次读取 3.1 页,而朴素方案读取 10 页;报告的单次成本分别为 10.3 美分和 26.6 美分。答案的新鲜度指标为 11/15 对 10/15。另有六项文档任务的表格显示,计入评分开销后,Xtract 使用 20,819 tokens,朴素方案为 18,829 tokens;第二个 Agent 复用已有评分时,则比朴素方案少用 12,691 tokens。

这些结果来自项目自己的小规模测试,不是独立基准。尤其要注意,README 明确说明页面价格是模拟值,成本表用于展示在页面可能收费的假设下会怎样,而非证明系统已经完成真实网页付费交易。单次任务中,评分本身也会增加 token 消耗;复用评分才是它所强调的潜在收益。因此,适合把这些数字看作设计假设和演示结果,而不是普遍性能承诺。

本地运行:先把它当作可复现实验

README 给出的运行条件是 Python 3(项目称使用 Python 3.14 构建和测试)、OpenAI API key 与 Keenable API key,并说明无需额外安装 Python 包。第一次运行的在线演示会调用外部服务;搜索与模型响应缓存到 cache/ 后,可以在有缓存的情况下离线重放。

cp .env.example .env
# 在 .env 中填写 OPENAI_API_KEY 与 KEENABLE_API_KEY
python3 demo.py --company "Airbnb"
python3 run_evals.py

仓库还提供 python3 demo.py --docs --live 文档检索演示。第一次运行可能需要数分钟,并会产生 API 调用;评测命令会执行 18 项检查,README 报告当前其中 16 项通过。首次运行评测会发出若干缓存 API 请求,因此应先检查自己的密钥、调用额度和缓存目录,再决定是否运行。

哪些部分值得借鉴

对于构建 Agent 的开发者,Xtract 的价值主要在于把“搜索后读网页”变成一个可以度量的决策环节。可以分别观察筛选质量、最终引用情况、信息是否过时、评分 token 成本,以及缓存命中后的边际收益。把筛选成本也计入账本,避免只报告读取阶段节省而忽略模型判断开销,是一个值得保留的实验习惯。

但现阶段不宜把它直接当成生产搜索基础设施:仓库自述是 hackathon demo,部分价格为模拟,评测仍有未通过项,公开结果规模也有限。若要扩展到自己的工作流,应先用已知答案的查询集做基线对照,验证过时信息识别是否可靠,并设置评分预算和失败回退;特别是涉及客户沟通或决策时,排序分数不能取代对原始来源的核验。

Xtract 展示了一个有启发性的方向:Agent 的搜索质量不应只看“找到了多少结果”,还要看它读了什么、花了多少、信息后来是否被证伪。对开发者而言,先把这些信号记录下来并建立可重复的评测,往往比盲目扩大模型或搜索结果数量更有帮助。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。