deep-searcher
让大模型在你的私有数据上进行深度研究,多轮 Agent 推理给出有深度的答案
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让大模型在你的私有数据上进行深度研究,多轮 Agent 推理给出有深度的答案
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

图1:DeepSearcher 项目 Logo
深夜,你手头有一份 200 页的 PDF 合同,需要从里面找出"某某公司所有关联交易的免责条款"。传统方式是什么?关键词搜索?翻页?眼睛都快瞎了。
现在,有了 DeepSearcher,你可以直接问它:"这份合同里有哪些对我方不利的免责条款?" 它会像一个真正读过这份文档的研究员一样,多轮思考、层层检索,输出一份有理有据的分析报告。
这就是 DeepSearcher 做的事情——让大语言模型能够在你的私有数据上进行深度研究,而不是只能回答互联网上的公开问题。
当前主流的 RAG(检索增强生成)方案,本质上是"单轮检索+生成"——用户问一句,系统找一个最相关的段落,喂给 LLM,输出答案。
但现实世界的问题往往是复杂的:
单轮检索的局限性在于:它假设答案只在一个地方。DeepSearcher 正是为了打破这个假设而生。
DeepSearcher 是由 Zilliz(向量数据库 Milvus 的娘家)开源的深度研究框架。它的核心理念是:将 Deep Research(深度研究)能力带入私有数据场景。
你可以把它理解为一个给大语言模型配备的"研究助手"——它不只是检索,而是真正地思考、规划、迭代、反思,最终给出有深度的答案。
DeepSearcher 的核心架构包含两大模块:
离线加载(Offline Loading):将本地文件(PDF、Word、Markdown 等)或网站内容解析、切分,存入向量数据库(支持 Milvus、Zilliz Cloud、Qdrant、Oracle、Vectara 等多种后端)。
在线查询(Online Query):用户提问后,系统通过多轮 Agent 推理(Deep Search Agent),自动决定检索策略、调用向量数据库、反思结果,直到找到满意答案。
DeepSearcher 没有用单一的检索方式,而是实现了多种 Agent 策略,智能路由到最适合的方式:
| Agent 类 | 策略描述 |
|---|---|
DeepSearchAgent | 核心深度搜索 Agent,多轮规划+反思 |
NaiveRAG | 经典单轮检索+生成 |
ChainOfRAG | 链式 RAG,按顺序多轮检索 |
CollectionRouter | 自动选择数据集合 |
RAGRouter | 自动选择 RAG 策略 |
这意味着:不同类型的问题会自动选择最合适的处理方式,而不需要用户手动配置。
DeepSearcher 在设计上极度开放,几乎支持市面上所有主流的 LLM 和 Embedding 提供商:
LLM 支持:OpenAI GPT 系列、Anthropic Claude、DeepSeek 全家桶(DeepSeek-R1 等)、Google Gemini、Grok(xAI)、Llama 4、阿里通义千问、智谱 GLM、IBM Watsonx、Ollama(本地模型)等。
Embedding 支持:OpenAI Embeddings、FastEmbed、Sentence Transformers、MTEB 榜单上的 Voyage AI,以及上述 LLM 提供商的配套 Embedding。
这种广泛的模型支持,让 DeepSearcher 成为真正意义上的模型中立平台——你可以用任何 LLM 来驱动深度研究,不需要被绑定在某一个模型上。
既然是 Zilliz 的作品,对 Milvus/Zilliz Cloud 的支持自然是最优先的。但项目也支持:
这种多后端设计,让企业可以根据现有基础设施自由选择。
DeepSearcher 内置了完整的 FastAPI 服务,包含三个核心端点:
POST /load-files/:加载本地文件到向量数据库POST /load-website/:爬取网页内容并加载GET /query/:执行深度查询,支持 max_iter 参数控制反思轮数服务还自带 Swagger 文档(/docs)和 CORS 支持,方便集成到现有系统。
通过 langchain-text-splitters 和 unstructured 库,DeepSearcher 支持:
pdfplumber)Firecrawl、Crawl4AI)unstructured 支持 100+ 格式)pip install deepsearcher[all]
deepsearcher query "分析这份年报中的核心风险点"
docker build -t deep-searcher .
docker run -p 8000:8000 deep-searcher
# 然后访问 http://localhost:8000/docs 使用 Swagger UI
通过 config.yaml 或环境变量配置 LLM Provider 和向量数据库连接信息。项目提供了 env.example 作为参考模板。
项目使用 uv(Astral 公司出品的极速 Python 包管理器)进行依赖管理,pyproject.toml 中定义了核心依赖和丰富的可选扩展。
DeepSearcher 并非完美,以下几点在实际部署时需要特别注意:
1. 向量数据库是必需的:DeepSearcher 不是一个独立的数据库,它依赖外部向量数据库。这意味着你需要额外运维一个 Milvus/Qdrant 实例,或者使用 Zilliz Cloud 这样的托管服务,增加了系统复杂度。
2. LLM API 成本:多轮 Agent 推理意味着比单次调用更多的 LLM Token 消耗。如果使用 GPT-4o 或 Claude 3.5 等付费模型,成本会显著高于简单的 RAG 方案。
3. 国内使用门槛:项目支持多个国内模型(通义千问、智谱 GLM、百度等),但配置过程涉及各平台的 API Key 获取和环境变量设置,对新手有一定门槛。
4. 性能调优依赖经验:max_iter 参数决定了反思轮数,设置过低可能漏掉重要信息,设置过高则响应慢且成本高。目前没有自动调优机制,需要用户根据实际场景反复试验。
DeepSearcher 的出现代表了 RAG 领域的下一个演进方向:从"检索"到"研究"。
传统的 RAG 解决的是"如何找到正确答案"的问题,而 DeepSearcher 解决的是"如何像研究员一样系统性地分析问题"的问题。这种能力的提升,对于法律、金融、医疗、学术研究等专业领域具有极高的价值。
从 GitHub Stars 的快速增长(超过 7800 ★)可以看出,社区对深度研究能力的需求是真实且强烈的。随着各大模型厂商推出更强的推理模型(DeepSeek-R1、o3、Claude 3.7 等),DeepSearcher 这类框架的价值会进一步放大。
相关链接: