开源项目

local-deep-research

AI 驱动的本地深度研究工具,支持 Ollama、llama.cpp 等本地模型和 OpenAI/Claude 等云端 API,集成 10+ 搜索引擎(arXiv、PubMed、SearXNG 等),通过自主 Agent 或流水线策略自动搜索、梳理并生成带引用的研究报告。亮点在于 SimpleQA 上达到 95% 准确率(Qwen3.6-27B + 3090),所有数据用 SQLCipher 本地加密存储,无遥测追踪;自带 LangGraph Agent 可自适应切换搜索引擎,还提供 MCP Server 接入 Claude Desktop。适合注重隐私的研究者或企业使用,MIT 许可。

README

Local Deep Research

GitHub stars Docker Pulls PyPI Downloads

Trendshift

Commits Last Commit

SimpleQA Accuracy SQLCipher

OpenSSF Scorecard CodeQL Semgrep

🔧 Pre-commit

🐳 Docker Publish 📦 PyPI Publish

Discord Reddit YouTube

AI 驱动的研究助手,用于深度、代理式研究

使用多个 LLM 和搜索引擎执行深度、代理式研究,并附带完整引用

▶️ 观看 The Art Of The Terminal 的评测

🚀 什么是 Local Deep Research?

由你掌控的 AI 研究助手。本地运行以保护隐私,可使用任何 LLM,并构建你可搜索的知识库。你拥有自己的数据,并能清晰了解其工作原理。

⚡ 快速开始

选项 1:Docker Run(Linux)

# Step 1: Pull and run Ollama
docker run -d -p 11434:11434 --name ollama ollama/ollama
docker exec ollama ollama pull gpt-oss:20b

# Step 2: Pull and run SearXNG for optimal search results
docker run -d -p 8080:8080 --name searxng searxng/searxng

# Step 3: Pull and run Local Deep Research
docker run -d -p 5000:5000 --network host \
  --name local-deep-research \
  --volume "deep-research:/data" \
  -e LDR_DATA_DIR=/data \
  localdeepresearch/local-deep-research

选项 2:Docker Compose

仅 CPU(所有平台):

curl -O https://raw.githubusercontent.com/LearningCircuit/local-deep-research/main/docker-compose.yml && docker compose up -d

使用 NVIDIA GPU(Linux):

curl -O https://raw.githubusercontent.com/LearningCircuit/local-deep-research/main/docker-compose.yml && \
curl -O https://raw.githubusercontent.com/LearningCircuit/local-deep-research/main/docker-compose.gpu.override.yml && \
docker compose -f docker-compose.yml -f docker-compose.gpu.override.yml up -d

约 30 秒后打开 http://localhost:5000 。GPU 设置、环境变量等更多信息,请参阅 Docker Compose 指南。

选项 3:pip install

pip install local-deep-research

适用于 Windows、macOS 和 Linux。SQLCipher 加密通过预编译 wheel 包含在内——无需编译。 Windows 上的 PDF 导出需要 Pango(设置指南)。 如果加密出现问题,可设置 export LDR_BOOTSTRAP_ALLOW_UNENCRYPTED=true 以使用标准 SQLite。

更多安装选项 →

🏗️ 工作原理

研究

你提出复杂问题。LDR:

  • 自动为你进行研究
  • 跨网页、学术论文和你的个人文档进行搜索
  • 将所有信息综合成一份带有正确引用的报告

从 20+ 种研究策略中选择:快速事实、深度分析或学术研究。

新增:LangGraph Agent 策略 — 一种自主代理式研究模式,LLM 自行决定搜索内容、使用哪些专用引擎(arXiv、PubMed、Semantic Scholar 等)以及何时综合。早期结果令人期待——它根据发现的内容自适应地切换搜索引擎,收集的来源远多于基于流水线的策略。在设置中选择 langgraph-agent 即可尝试。

构建知识库

flowchart LR
    R[Research] --> D[Download Sources]
    D --> L[(Library)]
    L --> I[Index & Embed]
    I --> S[Search Your Docs]
    S -.-> R

每次研究会发现有价值来源。直接将其下载到你的加密库中——来自 ArXiv 的学术论文、PubMed 文章、网页。LDR 提取文本、索引所有内容并使其可搜索。下次研究时,可同时查询你自己的文档和实时网络。你的知识随时间不断积累。

🛡️ 安全性

DevSkim Bearer

Gitleaks OSV-Scanner npm-audit Retire.js

Container Security Dockle Hadolint Checkov

Zizmor OWASP ZAP Security Tests

flowchart LR
    U1[User A] --> D1[(Encrypted DB)]
    U2[User B] --> D2[(Encrypted DB)]

你的数据始终属于你。每个用户拥有独立的、由 SQLCipher 加密的数据库,采用 AES-256 加密(Signal 级别安全)。没有密码恢复功能,意味着真正零知识——即使是服务器管理员也无法读取你的数据。与 Ollama + SearXNG 完全本地运行,数据永远不会离开你的机器。

内存中的凭证:与所有在运行时使用秘密的应用程序一样——包括密码管理器、浏览器和 API 客户端——凭证在活动会话期间以明文形式保存在进程内存中。这是行业公认的事实,并非 LDR 独有:如果攻击者可以读取进程内存,他们也能读取任何进程内的解密密钥。我们通过会话范围的凭证生命周期和核心转储排除来缓解这一问题。欢迎通过 GitHub Issues 提供进一步改进建议。详情请参阅安全策略。

供应链安全:Docker 镜像使用 Cosign 签名,包含 SLSA 出处证明,并附加 SBOM。验证方法:

cosign verify localdeepresearch/local-deep-research:latest

安全透明度:扫描器抑制项已在安全警报评估、评分卡合规、容器 CVE 抑制和SAST 规则说明中记录原因。部分警报(Dependabot、代码扫描)只能在 GitHub 安全标签页中关闭或极难抑制,因此上述文件并未涵盖所有已关闭的发现。

详细架构 → | 安全策略 → | 安全审查流程 →

🔒 隐私与数据

Local Deep Research 不包含任何遥测、分析或跟踪功能。我们不会收集、传输或存储关于你或你使用情况的任何数据。无分析 SDK、无电话回家、无崩溃报告、无外部脚本。使用指标保留在你的本地加密数据库中。

LDR 发出的唯一网络调用是你主动发起的:搜索查询(发送到你配置的引擎)、LLM API 调用(发送到你选择的提供商)以及通知(仅当你设置了 Apprise 时)。

由于我们不收集任何使用数据,我们需要你来告诉我们哪些功能好用、哪些坏了、你希望接下来看到什么——bug 报告、功能想法,甚至是你喜欢或从不使用的功能,都有助于我们改进 LDR。

📊 性能

在 SimpleQA 基准测试上约 95% 准确率(初步结果)

  • 使用 GPT-4.1-mini + SearXNG + focused-iteration 策略测试
  • 与最先进的 AI 研究系统相当
  • 本地模型通过适当配置也能达到类似性能

🧭 选择模型?使用社区基准

不确定 LDR 该用哪个本地模型?社区维护的 Hugging Face 上的 LDR Benchmarks 数据集 跟踪了不同模型、搜索引擎和研究策略下的准确率——这是在你下载多 GB 权重之前,快速了解 Ollama / LM Studio / llama.cpp 中哪些模型真正适合深度研究的最佳途径。

✨ 主要功能

🔍 研究模式

  • 快速摘要 - 30 秒到 3 分钟内获取带引用的答案
  • 详细研究 - 带有结构化结论的综合分析
  • 报告生成 - 包含章节和目录的专业报告
  • 文档分析 - 使用 AI 搜索你的私人文档

🛠️ 高级能力

  • LangChain 集成 - 使用任何向量存储作为搜索引擎
  • REST API - 带认证的 HTTP 访问,支持每用户数据库
  • 基准测试 - 测试并优化你的配置
  • 分析仪表盘 - 跟踪成本、性能和使用指标
  • 期刊质量系统 - 自动期刊声誉评分,包含 21.2 万+ 索引来源、掠夺性检测和质量仪表盘。由 OpenAlex(CC0)、DOAJ(CC0)和 Stop Predatory Journals(MIT)提供支持。
  • 实时更新 - WebSocket 支持,实时查看研究进度
  • 导出选项 - 以 PDF 或 Markdown 格式下载结果
  • 研究历史 - 保存、搜索和回顾过去的研究
  • 自适应速率限制 - 智能重试系统,学习最佳等待时间
  • 键盘快捷键 - 高效导航(ESC, Ctrl+Shift+1-5)
  • 每用户加密数据库 - 每个用户拥有安全、隔离的数据存储

📰 新闻与研究订阅

  • 自动化研究摘要 - 订阅主题,接收 AI 驱动的研究摘要
  • 可定制频率 - 每日、每周或自定义更新计划
  • 智能过滤 - AI 过滤并只总结最相关的进展
  • 多格式交付 - 以 Markdown 报告或结构化摘要形式获取更新
  • 主题与查询支持 - 跟踪特定搜索或广泛研究领域

🌐 搜索来源

免费搜索引擎
  • 学术:arXiv、PubMed、Semantic Scholar
  • 通用:Wikipedia、SearXNG
  • 技术:GitHub、Elasticsearch
  • 历史:Wayback Machine
  • 新闻:The Guardian、Wikinews
付费搜索引擎
  • Tavily - AI 驱动搜索
  • Google - 通过 SerpAPI 或自定义搜索引擎
  • Brave Search - 注重隐私的网页搜索
自定义来源
  • 本地文档 - 使用 AI 搜索你的文件
  • LangChain 检索器 - 任何向量存储或数据库
  • 元搜索 - 智能组合多个引擎

LDR 遵守 robots.txt 并在抓取网页时诚实标识自己——不使用隐身或反检测技术。极少数情况下,如果某个页面禁止自动化访问,将不会被抓取,我们认为这是正确的权衡。

完整搜索引擎指南 →

📦 安装选项

对于大多数用户,上面的【快速开始】已足够。

方法 适用场景 指南
Docker Compose 大多数用户(推荐) Docker Compose Guide
Docker 最小化设置 Installation Guide
pip 开发者、Python 集成 pip Guide
Unraid Unraid 服务器 Unraid Guide

所有安装选项 →

💻 使用示例

Python API

from local_deep_research.api import LDRClient, quick_query

# Option 1: Simplest - one line research
summary = quick_query("username", "password", "What is quantum computing?")
print(summary)

# Option 2: Client for multiple operations
client = LDRClient()
client.login("username", "password")
result = client.quick_research("What are the latest advances in quantum computing?")
print(result["summary"])

HTTP API

以下代码示例展示 API 基本结构——可工作示例请见下方链接

import requests
from bs4 import BeautifulSoup

# Create session and authenticate
session = requests.Session()
login_page = session.get("http://localhost:5000/auth/login")
soup = BeautifulSoup(login_page.text, "html.parser")
login_csrf = soup.find("input", {"name": "csrf_token"}).get("value")

# Login and get API CSRF token
session.post("http://localhost:5000/auth/login",
            data={"username": "user", "password": "pass", "csrf_token": login_csrf})
csrf = session.get("http://localhost:5000/auth/csrf-token").json()["csrf_token"]

# Make API request
response = session.post("http://localhost:5000/api/start_research",
                       json={"query": "Your research question"},
                       headers={"X-CSRF-Token": csrf})

🚀 即用型 HTTP API 示例 → examples/api_usage/http/

  • ✅ 自动创建用户 — 开箱即用
  • ✅ 完整认证,含 CSRF 处理
  • ✅ 结果重试逻辑 — 等待研究完成
  • ✅ 进度监控和错误处理

命令行工具

# Run benchmarks from CLI
python -m local_deep_research.benchmarks --dataset simpleqa --examples 50

# Manage rate limiting
python -m local_deep_research.web_search_engines.rate_limiting status
python -m local_deep_research.web_search_engines.rate_limiting reset

🔗 企业集成

将 LDR 连接到现有知识库:

from local_deep_research.api import quick_summary

# Use your existing LangChain retriever
result = quick_summary(
    query="What are our deployment procedures?",
    retrievers={"company_kb": your_retriever},
    search_tool="company_kb"
)

支持:FAISS、Chroma、Pinecone、Weaviate、Elasticsearch 以及任何 LangChain 兼容的检索器。

集成指南 →

🔌 MCP 服务器(Claude 集成)

LDR 提供 MCP(Model Context Protocol)服务器,允许 Claude Desktop 和 Claude Code 等 AI 助手执行深度研究。

⚠️ 安全说明:此 MCP 服务器设计为通过 STDIO 传输(例如 Claude Desktop)仅在本地使用。它没有内置认证或速率限制。请勿直接暴露于网络,除非实施了适当的安全控制。网络部署要求请参阅 MCP 安全指南。

安装

# Install with MCP extras
pip install "local-deep-research[mcp]"

Claude Desktop 配置

添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "local-deep-research": {
      "command": "ldr-mcp",
      "env": {
        "LDR_LLM_PROVIDER": "openai",
        "LDR_LLM_OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

Claude Code 配置

添加到你的 .mcp.json(项目级别)或 ~/.claude/mcp.json(全局):

{
  "mcpServers": {
    "local-deep-research": {
      "command": "ldr-mcp",
      "env": {
        "LDR_LLM_PROVIDER": "ollama",
        "LDR_LLM_OLLAMA_URL": "http://localhost:11434"
      }
    }
  }
}

可用工具

工具 描述 耗时 LLM 成本
search 从特定引擎(arxiv、pubmed、wikipedia 等)获取原始结果 5-30s 无
quick_research 快速研究摘要 1-5 min 有
detailed_research 综合分析 5-15 min 有
generate_report 完整 Markdown 报告 10-30 min 有
analyze_documents 搜索本地集合 30s-2 min 有
list_search_engines 列出可用搜索引擎 瞬间 无
list_strategies 列出研究策略 瞬间 无
get_configuration 获取当前配置 瞬间 无

单一搜索引擎

search 工具允许你直接查询特定的搜索引擎并获取原始结果(标题、链接、摘要)——无需 LLM 处理、无成本、速度快。这对于监控和订阅特别有用,可以定期检查新内容而不消耗 LLM 代币。

# Search arXiv for recent papers
search(query="transformer architecture improvements", engine="arxiv")

# Search PubMed for medical literature
search(query="CRISPR clinical trials 2024", engine="pubmed")

# Search Wikipedia for quick facts
search(query="quantum error correction", engine="wikipedia")

# Search OpenClaw for legal case law
search(query="copyright fair use precedents", engine="openclaw")

# Use list_search_engines() to see all available engines

使用示例

"Use quick_research to find information about quantum computing applications"
"Search arxiv for recent papers on diffusion models"
"Generate a detailed research report on renewable energy trends"

📊 性能与分析

基准测试结果

在小型 SimpleQA 数据集样本上的早期实验:

配置 准确率 备注
gpt-4.1-mini + SearXNG + focused_iteration 90-95% 样本量有限
gpt-4.1-mini + Tavily + focused_iteration 90-95% 样本量有限
gemini-2.0-flash-001 + SearXNG 82% 单次测试

注意:这些是初始测试的初步结果。性能因查询类型、模型版本和配置而异。 运行你自己的基准测试 →

完整社区排行榜: 社区在一个专用仓库中维护着不断增长的基准测试结果,涵盖各种模型、策略和搜索引擎,包括 CI 验证提交和自动生成的排行榜:

基准测试贡献者

感谢为本项目贡献基准测试运行的社区成员:

查看所有贡献者 →

内置分析仪表盘

跟踪成本、性能和使用情况,提供详细指标。了解更多 →

🤖 支持的 LLM

本地模型

  • Ollama — 连接到其原生 API(默认 http://localhost:11434)
  • LM Studio — 连接到其 OpenAI 兼容服务器(默认 http://localhost:1234/v1)
  • llama.cpp — 连接到 llama-server 的 OpenAI 兼容端点(默认 http://localhost:8080/v1);启动命令 llama-server -m <model.gguf>
  • 常见模型:Llama 3, Mistral, Gemma, DeepSeek, Qwen
  • LLM 处理留在本地(搜索查询仍会发往网络)。无 API 成本。

💡 该选择哪个本地模型? 查看 Hugging Face 上的 LDR Benchmarks 数据集 —— 社区提交的本地和云端模型准确率数据,可在下载前比较。也可在 GitHub 上提交你自己的运行结果。

云端模型

  • OpenAI (GPT-4, GPT-3.5)
  • Anthropic (Claude 3)
  • Google (Gemini)
  • 通过 OpenRouter 支持 100+ 模型

模型设置 →

从早期版本升级

  • llm.model 不再有默认值。 低于 1.7 的安装版本在未配置模型时自动填充 gemma3:12b(Ollama),这会在静默情况下下载数 GB 的二进制文件。现在该字段默认为空——请在设置→LLM 中选择一个模型,否则研究会失败并显示清晰错误。
  • llamacpp 提供商现在使用 HTTP 而非进程内加载。 如果你之前将 llm.llamacpp_model_path 设置为本地 .gguf 文件,该设置将被忽略。相反,运行 llama-server -m <your-model.gguf>(它随每个现代 llama.cpp 版本一同提供),并且默认 llm.llamacpp.url 为 http://localhost:8080/v1 将自动连接。如果将 llama-server 放在认证代理后面,可通过 llm.llamacpp.api_key 提供可选的 API 密钥支持。

📚 文档

快速入门

核心功能

高级功能

开发

示例与教程

📰 媒体报道

"Local Deep Research 值得特别提及,尤其对于那些重视隐私的人……针对可在消费级 GPU 甚至 CPU 上运行的开源 LLM 进行了优化。记者、研究人员或处理敏感话题的公司可以无需将任何查询发送到外部服务器即可调查信息。"

— Medium: 开源深度研究 AI 助手

新闻与文章

社区讨论

国际媒体报道

🇨🇳 中文
开源项目LearningCircuit2026-05-05原文

相关内容