TL;DR
- 搜索发现URL;爬虫读取页面;RAG检索之前索引的内容。一个代理通常需要这些模式中的不止一种。
- 针对已知的必须是最新的URL选择按需爬虫,对于同一语料库中许多重复的问题选择定时索引。
- 从每个网络工具调用中返回源URL、检索时间、内容状态和错误。一个加载但缺乏目标内容的页面对于任务来说是失败的。
- 将网页内容视为不可信的数据,约束工具调用,并评估引用质量以及检索成功率。
一个AI代理询问今天的API限制或已更改的产品价格不能依赖模型记忆。它需要一种获取相关源的方式,读取它,并决定观察到的内容是否支持答案。设计问题是何时搜索、爬取、缓存或从索引中检索。Nstdata Crawl适合于代理拥有公共URL时的页面访问步骤。
为什么AI代理需要外部网络数据
模型训练数据是一个快照。产品文档、价格、可用性和政策在该快照后可能发生更改,而缓存知识库也可能过时。一个网络工具可以缩小差距,但“实时访问”并不保证真相:一个页面可能是旧的、个性化的、不完整的或暂时不可用。代理必须将来源和不确定性向前推进,而不是将每个页面转换为权威答案。
考虑“该API的当前并发限制是多少?”搜索结果可能会识别文档URL,爬虫调用可能会检索限制表,第二个源如变更日志可能会确定何时发生了更改。每个组件有不同的工作。
AI代理的五种常见网络数据访问模式
| 模式 | 触发 | 新鲜度 | 基础设施 | 最佳契合 |
|---|---|---|---|---|
| 先搜索 | 不明源URL | 在查询时 | 搜索 + 页面读取器 | 开放研究 |
| 直接URL爬虫 | 已知URL | 在查询时 | 爬虫工具 | 产品页面,当前文档 |
| RAG检索 | 重复问题 | 与索引一样新鲜 | 爬取、分块、嵌入、存储 | 内部知识库 |
| 定时刷新 | 已知变化语料库 | 在刷新间隔时 | 调度程序 + 爬虫 + 差异 | 目录或文档更新 |
| 多源验证 | 重要声明 | 在查询时或缓存 | 发现 + 多个阅读器 | 研究和事实审核 |
模式1:搜索优先的数据访问
当用户给出主题而不是源时,从搜索API开始。通过域、文档类型和时效性过滤结果;然后爬取有前途的URL。 SERP摘要是定位器,而不是完整的源。它可能会省略警告、数字和周围上下文。限制URL的数量,并在调用页面读取器之前拒绝允许域之外的结果。
模式2:直接URL爬虫
当用户提供URL时,直接爬取避免了发现的往返。对于发布说明、公共定价页面或文档URL效果良好。验证URL,请求可读内容,并同时返回内容和检索时间戳。添加显式内容检查:仅包含“启用JavaScript”的成功响应不是有用的证据。
模式3:基于RAG的检索
对于在一组稳定页面上重复的问题,预爬取、清理、分块、嵌入并索引语料库。查询时,检索最相关的块,然后用引用回答。RAG降低了重复页面获取,但引入了索引新鲜度和块边界问题。在每个块中保留规范URL和last_crawled_at字段。Nstdata的讨论了上游集合步骤。




