Guide · 使用教程
Tavily RAG 搜索 API 教程:给 AI Agent 接入实时网页资料
这篇教程演示如何用 Tavily 设计 RAG 和 AI Agent 搜索流程:定义触发条件、控制来源、处理搜索结果、加入缓存,并把结果交给模型生成回答。
这篇教程会完成什么
这篇教程会带你设计一个 Tavily 搜索 API 工作流,用于 RAG、AI Agent 或研究助手。目标不是写完整代码,而是说明真实产品里应该如何决定什么时候搜索、搜什么、怎么处理结果,以及如何避免成本和事实错误失控。
完成后,你会有一套清晰流程:用户问题进入系统,先判断是否需要实时网页信息,再调用 Tavily 搜索,过滤来源,提取关键内容,把结果交给 LLM 生成回答,并把来源展示给用户。
这套流程适合开发者、AI 产品经理、RAG 工程师和做研究工具的团队。如果你只是普通用户想查资料,直接用 Perplexity AI 更合适。
开始前需要准备
开始前需要准备三件事。
第一,明确你的产品场景。Tavily 可以用于公司研究、竞品监控、技术文档搜索、市场简报、销售情报或开放网页 RAG。不同场景的搜索深度、来源要求和回答格式都不同。
第二,准备 LLM 调用层。Tavily 只负责搜索和返回网页信息,不负责完整产品体验。你还需要一个模型来总结、判断和生成回答。
第三,设计安全边界。开放网页搜索会带来噪声、过期信息、低质量页面和提示注入风险。不要把搜索结果不加处理地塞给模型,更不要让模型在没有来源的情况下输出确定结论。
第一步:判断是否需要搜索
不是所有用户问题都需要调用 Tavily。实时搜索应该有触发条件,否则成本、延迟和噪声都会增加。
适合搜索的问题包括:
- 近期新闻、价格、版本、政策变化。
- 公司、产品、竞品和市场动态。
- 官方文档、API 更新和错误信息。
- 用户明确要求“最新”“来源”“引用”“网页资料”。
不适合搜索的问题包括:
- 通用概念解释。
- 已经在内部知识库里的内容。
- 纯写作润色、格式转换或摘要任务。
- 用户没有要求实时信息的问题。
可以先让模型做一次轻量分类:是否需要联网、需要搜索什么关键词、需要优先哪些来源。这样比每次都盲目搜索更稳。
第二步:设计搜索查询
好的搜索结果来自好的查询。不要直接把用户原问题原样丢给 Tavily。更好的方式是先把问题改写成 1 到 3 个搜索查询。
例如用户问:“这个 CRM 最近有什么新功能?”如果系统知道 CRM 名称,可以生成查询:
[产品名] latest product updates[产品名] changelog 2026[产品名] release notes
如果是技术问题,优先加上官方文档、版本号和错误关键词。如果是公司研究,优先搜索官网、新闻稿、招聘页面和融资信息。
查询设计越具体,后续模型越少胡编。
第三步:控制来源和搜索深度
开放网页搜索最大的问题是来源质量。对于技术文档,应该优先官方 docs、GitHub、包管理页面和可信社区;对于公司研究,优先官网、新闻稿、招聘页、融资数据库和权威媒体;对于政策信息,优先官方机构。
如果 Tavily 支持域名控制或搜索深度设置,就要按场景使用。不要所有问题都用最高深度,也不要让低质量内容站进入关键回答。
建议为不同场景定义来源策略:
- 技术助手:优先官方文档和 GitHub。
- 市场研究:官网、行业媒体、新闻源。
- 销售情报:公司官网、招聘页、新闻稿。
- 学习助手:权威教程、官方资料、可信媒体。
第四步:把搜索结果结构化
Tavily 返回结果后,不要马上让模型写最终答案。先做结构化处理:标题、URL、发布时间、摘要、关键片段、来源可信度、是否重复、是否过期。
对多个结果可以做简单重排序:官方来源优先,发布时间更近优先,内容完整优先,重复内容降权。对于重要任务,可以让模型先提取事实点,再生成回答。
一个实用结构是:
source_titlesource_urlpublished_or_updated_atkey_factsrelevance_scoresource_type
这样后续生成答案时更可控,也方便展示引用。
第五步:让模型基于来源回答
把处理后的搜索结果交给 LLM 时,提示词要明确要求:只能基于提供来源回答;不确定就说明不确定;重要结论要引用来源;不要把搜索结果之外的信息当作事实。
回答格式也应该按产品场景设计。研究助手可以输出摘要、要点和来源;销售 Agent 可以输出公司背景、触发信号和外联切入点;技术助手可以输出解决步骤和相关文档链接。
不要只追求回答流畅。联网搜索场景最重要的是可核查。
第六步:加入缓存和失败兜底
生产环境一定要考虑缓存。相同问题、相同公司、相同文档页面,不应该每次都重新搜索。缓存可以降低成本、减少延迟,也能避免结果波动。
同时要设计失败兜底:Tavily 请求失败时,系统可以提示用户稍后重试,或退回内部知识库;结果太少时,系统可以要求用户补充关键词;来源冲突时,系统应该明确说明不同来源不一致。
不要让模型在搜索失败时假装已经查到了资料。
常见错误
每个问题都联网搜索
这会增加成本和延迟,也会让简单问题变复杂。先判断是否需要实时信息,再决定搜索。
不做来源过滤
开放网页里有大量低质量内容。没有来源策略的 RAG 很容易引用过期、重复或不可信页面。
让模型直接吞原始结果
原始搜索结果可能噪声很大。先结构化、去重、排序,再让模型回答,会稳定很多。
不展示引用
如果用户无法看到来源,联网搜索的可信度会下降。至少展示关键来源 URL 和标题。
什么时候该换别的工具
如果你只是个人查资料,用 Perplexity AI 更省事。如果你只查内部文档,用向量数据库和私有知识库更合适。如果你需要抓取复杂网站、登录页面或结构化数据,可能需要爬虫、浏览器自动化或专门数据供应商。Tavily 最适合开放网页搜索到 LLM 输入之间的这段工作。
FAQ
Tavily 适合做企业内部知识库吗?
它更适合开放网页搜索。企业内部知识库通常需要向量数据库、权限控制和私有文档解析。两者可以结合使用。
Tavily 搜索结果可以直接给用户看吗?
可以展示来源,但最终回答最好经过结构化处理和模型总结。直接展示原始结果通常体验不够好。
如何控制 Tavily 成本?
设置搜索触发条件、缓存常见查询、限制搜索深度,并对批量任务做队列和限流。
Tavily 和 Perplexity AI 应该怎么选?
做自有产品和 Agent 集成选 Tavily;普通用户自己查资料选 Perplexity AI。
常见问题
- Tavily 适合做企业内部知识库吗?
- 它更适合开放网页搜索。企业内部知识库通常需要向量数据库、权限控制和私有文档解析。两者可以结合使用。
- Tavily 搜索结果可以直接给用户看吗?
- 可以展示来源,但最终回答最好经过结构化处理和模型总结。直接展示原始结果通常体验不够好。
- 如何控制 Tavily 成本?
- 设置搜索触发条件、缓存常见查询、限制搜索深度,并对批量任务做队列和限流。
- Tavily 和 Perplexity AI 应该怎么选?
- 做自有产品和 Agent 集成选 Tavily;普通用户自己查资料选 Perplexity AI。