Tavily Python SDK
在 Python 中集成 Tavily API,实现智能搜索、网页内容提取、爬取、站点地图及研究报告功能。
- Star 数
- ★ 1.4k
- 最近更新
- 12 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 46/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 需要为 AI 应用集成实时网络搜索能力的开发者,使用 search 获取最新信息。
- 不适合
- 需要完全离线或数据不出本地的团队,所有功能都依赖 Tavily 云端 API
- 需要 crawl、map、research 等完整功能的用户,这些端点必须付费或受邀才能使用
- 高并发生产环境,无密钥模式有速率限制且免费额度仅每月 1000 积分
这个 Agent 能做什么,适合哪些场景?
Tavily Python SDK 是一个官方 Python 库,用于与 Tavily API 交互,提供搜索、提取、爬取、地图和研究等完整功能。它支持无密钥模式以快速试用搜索和提取,但完整功能需要 API 密钥。SDK 提供了同步和异步客户端,支持自定义会话注入和请求追踪。该库面向开发者,用于将网络搜索和内容提取集成到应用程序中,尤其适合 RAG 应用和需要实时网络数据的 AI 系统。
SDK 通过 TavilyClient 和 AsyncTavilyClient 类提供核心功能:search 执行网络搜索并返回结果,get_search_context 生成适合 RAG 的上下文字符串,qna_search 返回直接答案。extract 从多个 URL 提取原始内容和图片,crawl 根据起始 URL 遍历网站页面,map 发现网站结构,research 创建研究报告并支持流式输出。SDK 还支持通过自定义 requests.Session 或 httpx.AsyncClient 注入代理网关,以及通过 project_id、session_id 等标识符进行请求追踪。所有方法均返回标准字典或流式响应。
- 需要为 AI 应用集成实时网络搜索能力的开发者,使用 search 获取最新信息。
- 构建 RAG 应用的团队,使用 get_search_context 生成基于事实的上下文,提升生成准确性。
- 需要从多个网页提取结构化内容的用户,使用 extract 批量获取原始文本和图片。
- 需要分析网站结构的 SEO 或内容分析师,使用 map 可视化站点层级。
- 需要自动化生成研究报告的研究人员,使用 research 异步创建报告并检索结果。
- 企业环境中通过 API 网关代理请求的开发者,使用自定义 session 注入集中式认证。
如何安装或部署这个 Agent?
通过 pip 安装:pip install tavily-python。需要 Python 3.x 环境。无需密钥即可试用,但完整功能需在 tavily.com 注册并获取 API 密钥。
如何使用这个 Agent?
首先导入并实例化客户端:from tavily import TavilyClient; client = TavilyClient(api_key="tvly-YOUR_API_KEY")。然后调用方法,例如 response = client.search("Who is Leo Messi?")。无密钥模式下可省略 api_key。对于异步,使用 from tavily import AsyncTavilyClient 并 await 调用。
这个 Agent 有哪些优点和局限?
- 提供无密钥试用模式,降低了入门门槛,方便快速评估。
- 覆盖搜索、提取、爬取、地图和研究五大功能,满足多样化的网络数据需求。
- 支持同步和异步客户端,适应不同应用场景。
- 自定义会话注入功能,方便企业通过 API 网关进行集中管理。
- 核心功能依赖于 Tavily 专有 API,存在供应商锁定风险。
- 搜索和提取之外的爬取、地图、研究功能需要 API 密钥,且爬取目前仅限邀请制。
- 无密钥模式有速率限制,不适合高并发生产环境。
- 免费额度每月 1000 积分,超出部分需付费,长期成本需评估。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Tavily Python SDK 当前 | 46 · 缺口较多 | 代码库 / SDK免费版 + 付费版 | ★ 1.4k | 12 天前 | Python | — |
| wigolo | 54 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 5.5k | 22 天前 | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| Youtu-Agent | 27 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 4.6k | 7 个月前 | Python | OpenAI API |
| Atomic Agents | 64 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 6.3k | 今天 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:SDK 支持自定义 session/client 注入,允许用户控制认证和代理,但默认使用 API key,权限最小化不足;无用户确认机制;数据流透明度较好,README 明确说明请求头、session 跟踪和 human_id 哈希;敏感数据处理方面,API key 作为参数传递,但未说明存储或日志处理;依赖安全未提及,requirements.txt 仅列出包名无版本;外部影响方面,SDK 会发起网络请求,但未说明速率限制或滥用防护;回滚机制未提及;来源归属方面,MIT 许可证和版权声明存在,但发布者未验证。扣分原因:缺少权限最小化设计、用户确认、依赖安全、回滚机制,敏感数据处理不完整。
证据显示:README 和代码示例一致,API 方法命名清晰;依赖可用性方面,requirements.txt 仅列出包名,未固定版本,存在依赖漂移风险;失败消息方面,README 提到 TavilyKeylessLimitError 异常携带结构化字段,但未展示其他错误处理。扣分原因:依赖版本未固定,错误处理覆盖不全。
证据显示:README 面向开发者,提供了多种使用场景(搜索、提取、爬取、映射、研究)和代码示例;能力边界明确,keyless 模式限制 search 和 extract;触发精度方面,方法参数说明较详细,但未提供完整的 API 参考;环境适配方面,支持同步和异步客户端,以及自定义 session 注入。扣分原因:触发精度因缺少完整 API 参考而受限。
证据显示:README 结构清晰,包含安装、使用、文档链接;安装说明简单;命名稳定,API 方法命名直观;示例丰富,覆盖主要功能;已知限制方面,仅提到 keyless 模式限制,未提及其他限制;许可证为 MIT,版权声明存在;版本变更日志未提供;维护责任方面,有支持邮箱和社区链接,但发布者未验证。扣分原因:缺少版本变更日志,已知限制不全面。
证据显示:输出可用性方面,返回结构化 JSON 响应,便于程序处理;边际价值方面,提供搜索、提取、爬取、映射、研究等高级功能,简化 API 交互;成本效益方面,免费额度 1000 积分/月,但未提供详细定价。扣分原因:成本信息不完整。
证据显示:README 中的功能描述与代码示例一致,但未提供独立的测试结果或第三方验证;跨来源佐证方面,有 CI 徽章,但未提供测试详情;事实与推断分离方面,README 区分了功能描述和示例,但未明确标注哪些是推断。扣分原因:缺乏独立验证和测试证据。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 发布者身份未验证,使用前应确认来源可信度。
- 依赖版本未固定,存在供应链风险,建议锁定版本。
- API key 作为参数传递,需注意日志和存储安全。
- 缺少版本变更日志,升级时需谨慎。