tavily-best-practices

tavily-best-practices

热门

构建生产就绪的 Tavily 集成,内置最佳实践。为使用编码助手(Claude Code、Cursor 等)在代理工作流、RAG 系统或自主代理中实现网络搜索、内容提取、爬取和研究的开发者提供参考文档。

398Star
34Fork
更新于 2026/7/2
SKILL.md
readonly只读
name
tavily-best-practices
description

构建生产就绪的 Tavily 集成,内置最佳实践。为使用编码助手(Claude Code、Cursor 等)在代理工作流、RAG 系统或自主代理中实现网络搜索、内容提取、爬取和研究的开发者提供参考文档。

Tavily

Tavily 是一个专为 LLM 设计的搜索 API,使 AI 应用能够访问实时网络数据。

安装

Python:

pip install tavily-python

JavaScript:

npm install @tavily/core

完整 SDK 参考请参见 references/sdk.md

客户端初始化

from tavily import TavilyClient

# 使用 TAVILY_API_KEY 环境变量(推荐)
client = TavilyClient()

# 带项目跟踪(用于使用组织)
client = TavilyClient(project_id="your-project-id")

# 异步客户端用于并行查询
from tavily import AsyncTavilyClient
async_client = AsyncTavilyClient()

选择正确的方法

对于自定义代理/工作流:

需求 方法
网络搜索结果 search()
特定 URL 的内容 extract()
整个站点的内容 crawl()
从站点发现 URL map()

对于开箱即用的研究:

需求 方法
端到端研究,带 AI 综合 research()

快速参考

search() - 网络搜索

response = client.search(
    query="quantum computing breakthroughs",  # 保持在 400 字符以内
    max_results=10,
    search_depth="advanced"
)
print(response)

关键参数:querymax_resultssearch_depth(ultra-fast/fast/basic/advanced)、include_domainsexclude_domainstime_range

完整搜索参考请参见 references/search.md

extract() - URL 内容提取

# 简单的一步提取
response = client.extract(
    urls=["https://docs.example.com"],
    extract_depth="advanced"
)
print(response)

关键参数:urls(最多 20 个)、extract_depthquerychunks_per_source(1-5)

完整提取参考请参见 references/extract.md

crawl() - 全站提取

response = client.crawl(
    url="https://docs.example.com",
    instructions="Find API documentation pages",  # 语义焦点
    extract_depth="advanced"
)
print(response)

关键参数:urlmax_depthmax_breadthlimitinstructionschunks_per_sourceselect_pathsexclude_paths

完整爬取参考请参见 references/crawl.md

map() - URL 发现

response = client.map(
    url="https://docs.example.com"
)
print(response)

research() - AI 驱动研究

import time

# 用于全面的多主题研究
result = client.research(
    input="Analyze competitive landscape for X in SMB market",
    model="pro"  # 或 "mini" 用于聚焦查询,"auto" 用于不确定时
)
request_id = result["request_id"]

# 轮询直到完成
response = client.get_research(request_id)
while response["status"] not in ["completed", "failed"]:
    time.sleep(10)
    response = client.get_research(request_id)

print(response["content"])  # 研究报告

关键参数:inputmodel("mini"/"pro"/"auto")、streamoutput_schemacitation_format

完整研究参考请参见 references/research.md

详细指南

有关完整参数、响应字段、模式和示例: