跳到主要内容
返回写作

SearXNG vs DDGS:给 AI Agent 选免费搜索路径

SearXNG 和 DDGS 都能接到 Agent 搜索,但一个更像可配置的自托管聚合服务,一个更像可嵌入的搜索库。本文比较它们的边界、代价和 MCP 接入方式。

本文索引06
  1. 01先看结论
  2. 02SearXNG:一台可配置的搜索服务
  3. 03DDGS:把搜索能力嵌进程序
  4. 04为什么 Agent 还需要另一层?
  5. 05选择前先回答四个问题
  6. 06最后不要把免费当成产品目标

SearXNG vs DDGS 看起来像两个搜索引擎的二选一,实际比较的是两种接入形态。

SearXNG 是可以自己运行和配置的元搜索服务;DDGS 更像一个可嵌入应用的多源搜索库,也提供 API Server 和 MCP Server 入口。两者都依赖上游来源,因此“免费”不等于稳定、无限或不需要维护。

先看结论

你的需求更自然的起点原因主要代价
团队想统一管理搜索引擎、语言和实例SearXNG配置和引擎选择集中在服务端需要运行、升级和监控一个服务;结果仍受上游影响
Python 程序里直接调用搜索DDGS作为库嵌入,另有 API 和 MCP 安装选项进程自己承担网络、限流、代理与错误处理
MCP 客户端需要多源、结构化且失败可见的 Agent 搜索Agent Search MCP直接提供面向 Agent 的 MCP 契约和证据预算仍需要检查来源可用性、路由策略和版本边界

这不是一次 live benchmark。没有固定地区、查询集、时间窗口和重复次数,就不能说哪个“更准”或“更快”。下面只比较责任边界和工程取舍。

SearXNG:一台可配置的搜索服务

SearXNG 官方把自己定义为元搜索引擎:它聚合其他搜索引擎的结果,并提供实例级配置。管理员可以在 settings.yml 中选择或覆盖引擎、语言、超时、代理和 API key 要求。需要密钥的引擎默认可以保持 inactive,再由管理员明确启用。

这条路径适合以下情况:搜索由多个应用共用;你想在服务端控制启用哪些来源;你希望把语言、超时和网络策略集中管理;或者你愿意自己运行一个实例,而不是让每个 Agent 进程各自处理来源。

它也有必须接受的边界。SearXNG 不是自己的全网索引,结果质量和可用性取决于上游引擎及其适配器。自托管只改变了你的入口和配置控制,不代表请求完全不离开机器,也不替你消除上游限流、验证页和结果差异。

DDGS:把搜索能力嵌进程序

DDGS 的官方仓库现在把它描述为聚合多个搜索服务的库,并提供文本、图片、新闻、视频、书籍和内容提取等 API Server 入口,也有 MCP Server 安装方式。它更适合一个 Python 程序想快速获得搜索调用,或者你想把调用放在应用进程里调试。

这里有一个容易被忽略的名字问题:ddgs 不应简单理解成“官方 DuckDuckGo API”。它是独立维护的多源搜索库,具体会调用哪些来源、怎样处理请求和限制,应以它自己的实现、免责声明和当前版本为准。不要把库的结果能力、DuckDuckGo 网站本身和一个稳定商业 API 混成同一种承诺。

嵌入式方案的优点是部署面小,缺点是责任分散到每个调用方。代理、超时、重试、速率限制、来源失败和结果规范化都需要你在应用里决定。如果多个 Agent 都各自装一份,搜索策略很快会变成重复配置。

为什么 Agent 还需要另一层?

SearXNG 或 DDGS 解决“从哪些上游拿结果”。Agent Search 还要解决“怎样把结果交给一个会继续行动的循环”。这至少涉及:

  • 查询是否满足调用契约;
  • 多源结果和来源 URL 是否保留;
  • 上游失败是明确暴露,还是被伪装成空结果;
  • 返回多少结果、摘要多长、证据预算多大;
  • 需要时能否提取一个选定 URL,而不是再次盲搜。

Agent Search MCP 的定位就是这一层:它从无 API key 的默认路径开始,把多源证据、部分失败和请求/证据预算放进 MCP 搜索契约。当前安装路径、测试和限制以 lennney/agent-search-mcp 为准。它不是 SearXNG 的替代品,也不是 DDGS 的性能证明;它是一个给 Agent 使用的路由和证据层。

选择前先回答四个问题

  1. 搜索由谁复用? 多个应用共用时,集中式 SearXNG 通常更容易统一配置;单个 Python 服务时,DDGS 的嵌入方式可能更直接。
  2. 你要控制哪个边界? 想控制实例、引擎、语言和网络,优先看 SearXNG;想在代码里组合调用,优先看 DDGS。
  3. 失败要不要进入 Agent 的决策? 如果“被限流”和“没有结果”必须区分,就需要额外的结果契约或路由层,不能只返回一个空数组。
  4. 你是否真的需要多源? 如果任务只需要一个稳定、合规、有 SLA 的提供方,付费 API 可能比维护免费聚合路径更省事。

最后不要把免费当成产品目标

免费搜索路径省下的往往是 API 账单,但增加了部署、限流、来源变化和质量观测成本。SearXNG 适合集中管理自托管聚合;DDGS 适合把搜索能力嵌进 Python/API/MCP 调用;Agent Search MCP 适合需要一条面向 Agent、保留证据和失败状态的接入路径。

如果你还没有明确的查询集,先不要比较 Star 或宣传里的“引擎数量”。记录 20 个真实任务,固定地区与语言,分别观察成功率、重复调用、来源可追溯性、延迟和上下文大小,再决定自己真正需要的是搜索服务、搜索库,还是 Agent 搜索契约。

继续阅读 AI Agent 搜索引擎选型指南,或直接检查 Agent Search MCP 的源码与安装说明