最近装龙虾需要免费的搜索,找了两个API对比 cover image

最近装龙虾需要免费的搜索,找了两个API对比

最近用了龙虾,申请了俩搜索API,免费的应该能玩很久,关于区别我问了下豆包:

Tavily API 专为AI Agent/RAG 场景深度优化,主打结构化内容提取、深度爬取与事实检索;Brave API 则是隐私优先的通用搜索 API,依赖自建独立索引、支持丰富搜索语法,更像传统搜索引擎的 API 化。下面从核心定位、能力、价格、适用场景等维度详细对比:


  • 定位AI Agent 专用搜索引擎,是“搜索+爬取+内容提取”三合一服务,专为 LLM、RAG、自主 Agent 设计。
  • 目标:让 AI 快速获取结构化、低噪声、可直接使用的网页内容,减少开发者自行爬取、清洗、解析的工作量。
  • 核心能力:搜索、批量提取(Extract)、全站爬取/站点地图(Crawl/Map)、深度研究(Research)。
  • 定位隐私优先的通用搜索 API,基于 Brave 自建独立索引(非 Google/Bing 转售)。
  • 目标:提供无追踪、结果独立、支持标准搜索语法的搜索能力,适合需要隐私与通用搜索的场景。
  • 核心能力:网页搜索、图片/视频/新闻等垂直搜索、Answers API(直接返回摘要答案)。

特性 Tavily API Brave Search API
结果形态 深度结构化(标题、URL、摘要、原文内容、引用),自动过滤低质量/付费墙/SEO 垃圾 传统搜索结果(标题、URL、摘要),无内置全文提取
内容提取 原生支持/extract(单次最多 20 个 URL)、/crawl全站爬取 无内置提取,需自行爬取解析
搜索深度 支持basic(快速)/advanced(深度)两种策略 标准网页搜索,无深度选项
过滤方式 API 参数:include_domains/exclude_domains 原生支持搜索语法:site:/-site:/filetype:/intitle:/inurl:/before:/after:
AI 优化 专为 RAG 优化,结果直接可喂给 LLM;支持提示注入防护 有 AI Grounding 模式,但非核心设计
  • Tavily:独立索引,侧重技术文档、事实性内容、可提取网页,长尾覆盖一般。
  • Brave:自建独立索引,覆盖350 亿+网页,每日更新 1 亿+,结果更接近传统通用搜索。
  • Tavily:强化隐私,不追踪用户行为;查询数据处理更聚焦内容提取。
  • Brave最高级别隐私,默认不收集 IP/查询数据,支持零数据留存,完全不依赖第三方追踪。
  • Tavily:免费 1000 次/月;付费约$5/千次
  • Brave:免费 2000 次/月;付费约$3–9/千次
  • Tavily:P50 约 180ms;深度模式 10–30s;与 LangChain、LlamaIndex 原生集成。
  • Brave:秒级响应;集成简单,API Key 认证即可。

  • AI Agent/自主智能体:需要实时查资料、验证事实、补充上下文。
  • RAG 系统:把公开网页当作知识库补充源,需要结构化、可引用的内容。
  • 深度内容提取:批量抓取网页正文、全站爬取、生成研究报告。
  • 技术文档/开发查询:对技术内容准确度要求高。
  • 隐私敏感应用:绝对不希望用户搜索行为被追踪。
  • 通用搜索场景:需要类似 Google/Bing 的完整搜索结果与语法支持。
  • 低成本、高额度:免费 2000 次/月,性价比更高。
  • 垂直搜索:图片、视频、新闻等。

  • Tavily = AI 专用的“搜索+爬取+提取”工具,适合 Agent/RAG/深度内容获取。
  • Brave = 隐私优先的通用搜索 API,适合需要独立索引、标准语法、高隐私的场景。

整理一份Tavily 与 Brave API 的选型决策清单,并给出Python 快速调用示例


决策维度 选 Tavily API 选 Brave Search API
核心场景 AI Agent/RAG/深度内容提取 隐私优先的通用搜索/垂直搜索
内容需求 需要结构化正文、批量爬取/提取 只需要标题/URL/摘要,无需提取
隐私要求 一般隐私(不追踪) 极高隐私(零数据留存)
技术集成 对接 LangChain/LlamaIndex 通用搜索场景,无 AI 框架依赖
搜索语法 仅基础过滤(域名包含/排除) 需要site:/intitle:等标准语法
免费额度 1000 次/月 2000 次/月
响应速度 深度模式慢(10-30s),基础模式快 稳定秒级响应
  1. 注册并获取 API Key:
  2. 安装依赖(仅需 requests):
    pip install requests
import requests

# 替换为你的 Tavily API Key
TAVILY_API_KEY = "your_tavily_api_key"
TAVILY_URL = "<https://api.tavily.com/search>"

def tavily_search(query, search_depth="advanced"):
    """
    Tavily 搜索核心函数
    :param query: 搜索关键词
    :param search_depth: basic(快速)/advanced(深度)
    :return: 结构化搜索结果(含正文提取)
    """
    payload = {
        "api_key": TAVILY_API_KEY,
        "query": query,
        "search_depth": search_depth,
        "include_answer": True,  # 是否返回 AI 总结答案
        "include_content": True,  # 是否返回网页正文
        "include_raw_content": False,
        "max_results": 5,  # 返回结果数
        "exclude_domains": ["youtube.com", "twitter.com"]  # 排除域名
    }

    try:
        response = requests.post(TAVILY_URL, json=payload)
        response.raise_for_status()  # 抛出 HTTP 错误
        results = response.json()

        # 解析结构化结果
        print("=== Tavily 搜索结果 ===")
        print(f"AI 总结答案: {results.get('answer', '无')}\\n")
        for idx, result in enumerate(results.get('results', [])):
            print(f"【结果 {idx+1}】")
            print(f"标题: {result.get('title')}")
            print(f"链接: {result.get('url')}")
            print(f"摘要: {result.get('description')[:100]}...")  # 截断摘要
            print(f"正文片段: {result.get('content', '无')[:100]}...\\n")
        return results
    except Exception as e:
        print(f"Tavily 调用失败: {e}")
        return None

# 调用示例:搜索 "2026 Python 最新特性"
tavily_search("2026 Python 最新特性")
import requests

# 替换为你的 Brave API Key
BRAVE_API_KEY = "your_brave_api_key"
BRAVE_URL = "<https://api.search.brave.com/res/v1/web/search>"

def brave_search(query):
    """
    Brave 搜索核心函数(隐私优先)
    :param query: 搜索关键词(支持标准搜索语法)
    :return: 通用搜索结果
    """
    headers = {
        "Accept": "application/json",
        "X-Subscription-Token": BRAVE_API_KEY
    }
    params = {
        "q": query,  # 支持语法:比如 "Python 性能优化 site:stackoverflow.com"
        "count": 5,  # 返回结果数
        "safesearch": "moderate",  # 安全搜索:off/moderate/strict
        "country": "us",  # 地区筛选
        "lang": "en"  # 语言筛选
    }

    try:
        response = requests.get(BRAVE_URL, headers=headers, params=params)
        response.raise_for_status()
        results = response.json()

        # 解析结果
        print("=== Brave 搜索结果 ===")
        for idx, result in enumerate(results.get('web', {}).get('results', [])):
            print(f"【结果 {idx+1}】")
            print(f"标题: {result.get('title')}")
            print(f"链接: {result.get('url')}")
            print(f"摘要: {result.get('description')[:100]}...\\n")
        return results
    except Exception as e:
        print(f"Brave 调用失败: {e}")
        return None

# 调用示例:搜索 "Python 性能优化 site:stackoverflow.com"(带语法)
brave_search("Python 性能优化 site:stackoverflow.com")

如果你的场景是 RAG/AI Agent,Tavily 与 LangChain 原生集成更便捷:

from langchain_community.tools.tavily_search import TavilySearchResults

# 初始化 Tavily 工具
tavily_tool = TavilySearchResults(
    api_key="your_tavily_api_key",
    search_depth="advanced",
    max_results=3
)

# 调用搜索
results = tavily_tool.run("2026 AI Agent 最新进展")
print(results)
  1. 选 Tavily:做 AI Agent/RAG、需要提取网页正文、对接 LangChain/LlamaIndex 时优先用,核心优势是结构化内容和 AI 场景适配。
  2. 选 Brave:注重隐私、需要通用搜索语法(如site:)、免费额度更高时优先用,核心优势是隐私和通用搜索能力。
  3. 调用核心差异:Tavily 支持直接提取网页正文,Brave 仅返回基础搜索结果,需自行爬取内容。

💡
ai、设计、本银河星区空间站,是由 Tia 打造,主要分享日志、ai、设计、效率工具和在银河系生活的所思所想,欢迎分享文章