从 Brave Search 到 Tavily:一次 Open WebUI Web Search 稳定性取舍

内网部署了自有推理服务器和Open WebUI 前端界面。最近小伙伴在使用 Open WebUI 的 Web Search 功能时,遇到了一个很典型、但一开始并不直观的问题:
搜索经常失败,错误来自搜索服务端,而不是模型本身。

这篇文章简单记录一下:我遇到了什么问题、尝试过哪些解决手段、如何做技术评估,以及最终为什么换成了 Tavily。


问题是什么

最初使用的是 Brave Search API 作为 Open WebUI 的 Web Search 后端。

在日常使用中,多人使用的时候频繁遇到:

  • 搜索偶发失败
  • 返回 too many connections / rate limited
  • 同样的问题在“低负载”下也会出现

直觉上很奇怪:
我并没有显式做高并发搜索。(但我确实需要,且希望并发进行搜索,这样出来结果快一些)


真正的原因

后来发现问题尽管单个用户的并发进行了控制,但多个用户使用的时候却没有有效控制并发,所以问题并不在“用户并发”,而在 Open WebUI + LLM + Tool 的调用模型

  • 一次用户提问,可能触发 多次搜索
  • 多个用户同时请求
  • 推理链、重试、搜索改写都会放大请求数
  • Brave Search 本身对并发和连接数限制非常严格

结果就是:
LLM 无意中变成了并发制造机,而 Brave Search 并不适合这个调用模式。


我尝试过什么

在不修改 Open WebUI 关于单词搜索的并发设置的情况下,主要尝试了三类手段:

  1. 限制搜索并发
  • 在 Brave Search API 前加反向代理
  • 只对搜索请求做并发闸门
  • 可以缓解问题,但工程复杂度上升
  1. 降低 WebUI 搜索触发频率
  • 调低 tool 使用倾向
  • 减少一次回答里的搜索次数
  • 本质是止痛药,不是根治
  1. 评估不同搜索后端的“AI 友好度”
  • Brave
  • SerpAPI
  • Bing
  • Tavily

简单评估结论

Open WebUI 的使用场景 出发,而不是单纯 API 能力:

  • Brave Search
  • 成本低
  • 但并发和连接限制过紧
  • 不加代理就不稳定
  • SerpAPI
  • 规则清晰、工程友好
  • 成本高
  • 更像“传统搜索 API”
  • Bing Search API
  • 产品生命周期存在不确定性
  • 不值得继续投入
  • Tavily
  • 明确为 AI / RAG / Agent 场景设计
  • 对 LLM 扇出式调用更友好
  • 行为可预期,整体最省心

最终选择

我最终换成了 Tavily。

原因很简单:

我希望尽可能快一点,支持合理的并发,但又不想为一个“搜索工具”
去额外维护限流代理、并发闸门和异常兜底。而 Tavily 的并发支持比 Brave 更慷慨,且总体更面向 AI Agents。

在 Open WebUI 这种 “模型主导、工具被动调用” 的架构下,
搜索后端是否理解 AI 的调用模式,比价格和传统性能指标更重要。


一点总结

这次经历最大的收获不是“换了哪个搜索 API”,而是一个更普遍的判断:

不是所有 Web Search API 都适合直接挂在 LLM 后面用。

如果一个搜索服务是为“人类 + 页面浏览”设计的,
那在 LLM 场景下,你迟早会为并发、限流和不可预期的失败买单。

Tavily 至少在这个阶段,帮我省掉了这些精力。

作者: Ben

IT、电商、零售、医药行业混迹多年的理想主义者。