search2ai

给大模型插上联网搜索,实时问答不求人

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 搜索知识 🍴 复刻 195 🐛 待处理 18 👀 关注 10
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 1287
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,需自行部署

项目预览

search2ai 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类搜索知识
开发团队fatwang2
定价模式🏷️完全免费
价格说明开源免费,需自行部署
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言TypeScript
技术栈/模型ai-agents,cloudflare-workers,hono,mcp,mcp-server,openai-compatible,search,search-api,search-gateway,search1api,self-hosted,tool-calling,typescript,web-search
GitHub 星标★ 1287
上线时间2023-12-18 00:00:00
代码更新2026-11-02
仓库体积3.7 MB
本站数据更新2026-11-04
维护状态活跃
收录时间2026-09-16
浏览次数1

项目介绍

search2ai 是一个让大语言模型具备联网搜索能力的开源工具,核心解决 LLM 知识截止和无法获取实时信息的问题。它通过 Function Calling / Tool Call 机制,把搜索引擎结果注入到模型对话中,支持 OpenAI、Gemini、Groq、Llama、Mistral 等多家模型 API。项目用 TypeScript 编写,可作为中间层代理或 SDK 集成到现有应用,开发者只需配置搜索源和模型密钥,即可让聊天机器人回答最新新闻、股价、天气等时效性问题。它不依赖特定模型厂商的联网插件,而是自己编排搜索调用与结果拼接,因此兼容性更广,适合需要快速给 AI 应用加上实时检索能力的团队。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 1287

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • Node.js 运行环境(需能执行 npm / npx 命令)
  • 至少一个搜索服务的 API Key,如 SEARCH1API_KEY、TAVILY_KEY
  • 若走 MCP 方式,需要 Claude Desktop / Cursor / Claude Code 等支持 MCP 的客户端

安装与启动步骤

  1. 1安装 search2ai 库

    以库方式接入,零部署成本。在项目目录执行安装,之后可从 search2ai/core 导入。

    npm i search2ai
  2. 2配置搜索服务密钥

    自带 key(BYO key)。只配置你要用的 provider,用环境变量传入密钥。

    export SEARCH1API_KEY=your_key
    export TAVILY_KEY=your_key
  3. 3编写搜索调用代码

    用 createGateway 初始化网关,调用 search 获取结果,返回体含 provider 与 warnings。

    import { createGateway } from 'search2ai/core';
    
    const gateway = createGateway({
      providers: {
        search1api: { apiKey: process.env.SEARCH1API_KEY! },
        tavily: { apiKey: process.env.TAVILY_KEY! },
      },
    });
    
    const { provider, results, warnings } = await gateway.search({ query: 'hono cloudflare workers', max_results: 5 });
  4. 4本地启动 MCP 服务

    MCP 方式同样零部署,通过 npx 直接拉起,对外提供 search、news、crawl 三个工具。

    npx -y search2ai mcp
  5. 5接入 MCP 客户端

    把配置写入 Claude Desktop / Cursor / Claude Code 的 MCP 配置,密钥放在 env 里。

    {
      "mcpServers": {
        "search2ai": {
          "command": "npx",
          "args": ["-y", "search2ai", "mcp"],
          "env": { "SEARCH1API_KEY": "your_key" }
        }
      }
    }
  6. 6查看完整配置模板

    项目根目录的 .env.template 列出了所有可用环境变量,按需补充 provider 与缓存等配置。

关键配置

配置项必填说明示例
SEARCH1API_KEY否Search1API 密钥,默认排在 fallback 链第一位;可换成其他 provider 的 keyyour_key
SEARCH_SERVICE否逗号分隔的 provider 顺序,决定 fallback 链;NEWS_SERVICE / CRAWL_SERVICE 可单独覆盖search1api,tavily,serper
MAX_RESULTS否搜索结果默认返回条数;同类还有 CRAWL_RESULTS 控制抓取正文条数5
FALLBACK_ON_EMPTY否设为 true 时空结果也切下一家,默认只在报错、限流、超时时切换true
PROVIDER_TIMEOUT_MS否单个 provider 的超时时间,默认 15000 毫秒15000
AUTH_KEYS否逗号分隔的 Bearer key,配置后 /v1/* 与 /mcp 都需鉴权sk-xxxxxxxx

如何确认成功

调用 gateway.search 能返回 provider 与 results 即接入成功;MCP 方式则在客户端工具列表看到 search、news、crawl。

常见问题

Q:某家搜索服务限流或报错了怎么办?

A:无需改代码,网关会按 fallback 链自动切到下一家,响应里通过 provider 告诉你这次是谁答的,warnings 记录跳过了谁及原因。

Q:必须自己申请 API Key 吗?

A:是的,项目为自带 key(BYO key)模式,不做免 key 爬虫,至少要配置一个 provider 的密钥才能真正搜到结果。

Q:不想自己部署托管服务怎么办?

A:可直接用配套的 Search1API 托管搜索服务,一个 key 聚合 Google / Bing / DuckDuckGo 等引擎,注册免费送 100 积分。

Q:Google provider 有什么额外限制?

A:使用 Google 需要同时配置 GOOGLE_KEY 与 GOOGLE_CX,并且单次查询最多返回 10 条结果。

Q:旧版客户端怎么继续用?

A:0.2.x 的「换 base URL 让客户端联网」代理仍然保留,配置 APIBASE 后即会挂载。

注意事项

  • 只配置你实际要用的 provider;未指定 SEARCH_SERVICE 时,已配置的 provider 按默认优先级组成 fallback 链。
  • 以上 *_KEY 变量也接受 *_API_KEY 写法,例如 TAVILY_KEY 可写成 TAVILY_API_KEY。
  • SearXNG 需要自行开启 JSON 输出格式,并配置 SEARXNG_BASE_URL。
  • 完整环境变量与模板参见仓库根目录的 .env.template。

核心亮点

  • 支持 OpenAI、Gemini、Groq、Llama、Mistral 多家模型,切换成本低
  • 基于 Function Calling 实现,不绑定特定厂商的联网插件,兼容性好
  • TypeScript 编写,类型友好,方便集成到 Node.js 后端或 Serverless 环境

不足之处

  • 搜索质量依赖外部搜索源,项目本身未内置搜索索引
  • 文档和示例相对精简,新手接入需要一定调试成本

适用场景

  • 给客服机器人加上实时产品价格和库存查询
  • 让 AI 助手回答最新新闻、赛事比分等时效性问题
  • 在低代码平台中快速为聊天应用接入联网检索能力

替代项目

langchain、llamaindex

上一篇:rank_llm

下一篇:obsidian-llm-wiki

同类项目推荐

awesome-OpenPrice 开源

查遍全网AI订阅价,一眼挑出最划算渠道

开源的 AI 订阅价格聚合与比价平台,收录 ChatGPT、Claude、Gemini、Grok、Cursor 等产品的···

★ 1077 2026-08-09
OneRAG 开源

一行配置切换多种向量库和模型,快速搭建生产级 RAG 应用

Production-ready RAG Framework (Python/FastAPI). 1-line config swaps: 6 Vector DBs (···

★ 125 2026-08-09
langextract 开源

从杂乱文本中精准抽取结构化数据,并可视化追溯来源

A Python library for extracting structured information from unstructured text using ···

★ 39263 2026-08-09
awesome-context-engineering 开源

给 AI Agent 配好上下文,让模型少犯错、少烧钱

A curated collection of resources, papers, tools, and best practices for Context Eng···

★ 227 2026-09-15
eGEOagents 开源

让内容被ChatGPT和Perplexity优先引用,提升AI搜索曝光

Open-source Generative Engine Optimization (GEO) & Answer Engine Optimization (AEO) ···

★ 217 2026-08-09
llmgraph 开源

输入文本,自动生成可视化知识图谱

Create knowledge graphs with LLMs

★ 510 2026-08-09
ragbuilder 开源

自动评估并调优 RAG 配置,快速上线生产级问答系统

A toolkit to create optimal Production-readyRetrieval Augmented Generation(RAG) setu···

★ 1542 2026-08-09
gemini-obsidian 开源

在终端里用 Gemini 问答你的 Obsidian 笔记库

A Gemini CLI extension for interfacing with an Obsidian vault with local first RAG c···

★ 102 2026-10-25