开源 Tavily 替代 Sifthound:自托管的 AI 智能体搜索 API
Sifthound 是可自托管的开源 Web 搜索与抽取 API,兼容 Tavily 接口,支持 SearXNG 检索、…
Sifthound 是一款面向 AI 智能体与大模型应用的开源、可自托管 Web 搜索与抽取 API,定位为 Tavily 的替代品。它完整复现了 Tavily 的核心接口形态,无需任何搜索 API Key,即可在自有服务器上为 LLM 应用提供联网检索与网页抽取能力。项目遵循 MIT 协议,已在 Hacker News 上以 Show HN 形式首发。
核心能力与接口
Sifthound 提供与 Tavily 一致的四类端点,可直接作为 drop-in 替代品使用:
- /search:通过 SearXNG 元搜索实例进行网页检索,无需任何搜索 API Key。
- /extract:使用 trafilatura 从网页中抽取干净的 Markdown 或纯文本。
- /crawl 与 /map:支持按深度、广度、数量与正则路径/域名过滤进行站点爬取与站点地图生成。
- 排序策略:默认采用 BM25 相关性,与上游 SearXNG 引擎的排序结果混合;高级深度(advanced)模式下会对每个结果页进一步抓取并返回最相关的片段。
- 可选答案生成:当请求中带上 include_answer 时,会调用 Claude 基于检索结果生成简短回答。
与 Tavily 生态兼容
项目明确以「不改一行业务代码」为目标。Tavily 官方 Python SDK(tavily-python 0.8.4,已实测 search、extract、crawl、map 的同步与异步接口)以及 langchain-tavily 0.2.18,只需把 base URL 指向本地 Sifthound 实例即可工作。MCP 方面,Sifthound 同时提供 Streamable HTTP(/mcp)和 stdio 两种接入方式,可被 Claude Code、Claude Desktop、Cursor 等 MCP 客户端直接调用,对应的四个只读工具分别为 sifthound_search、sifthound_extract、sifthound_crawl、sifthound_map。
部署方式
Sifthound 提供三种部署路径,覆盖从零配置到生产环境:
- Docker Compose(含 SearXNG):一键拉起完整栈,包含 SearXNG 与 Sifthound,适合需要完整搜索能力的本地或私有云部署。
- Docker 镜像(不含 SearXNG):仅运行 Sifthound 自身服务,自带 /extract、/crawl、/map;若需要 /search,需通过环境变量 SEARXNG_URL 指向一个启用 JSON 格式的 SearXNG 实例。镜像同时发布 linux/amd64 与 linux/arm64 版本。
- pip 安装:通过 pip install sifthound 安装后直接命令行启动,配置来自环境变量或 .env 文件。
与同类工具的取舍
Sifthound 在 README 中给出了一张四列对比表,从许可证、自托管、Tavily 兼容性、检索来源、JS 渲染、MCP 支持与实现语言等维度与 Tavily、Firecrawl、crw 并列比较。Sifthound 的差异化点在于:MIT 协议 + 可自托管 + 完全兼容 Tavily API;代价是不支持 JS 渲染、相关性排序使用 BM25 而非神经重排、且没有托管服务。官方建议的选型逻辑是:不想运维基础设施或需要神经重排的用户继续使用托管版 Tavily;需要 JS 渲染或更完整爬虫平台的用户考虑 Firecrawl 或 crw;希望把 Tavily API 跑在自己服务器上、并接受 MIT 许可的团队则适合 Sifthound。
安全与已知差异
安全方面,Sifthound 默认阻止对私有和内网地址的请求,包括经由重定向与 DNS rebinding 的绕过路径;HTTP MCP 端点仅对 localhost 放行,需将本机域名加入 MCP_ALLOWED_HOSTS 才可外部访问。功能差异方面,crawl/map 的 instructions 参数以及 search 的 include_image_descriptions 参数被接受但暂未实现,Tavily 的 /research 端点也不在覆盖范围内,迁移时需要留意。
