A deep research tool for searching academic sources, the web, and private documents with local or cloud LLMs
Local Deep Research
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**AI-powered research assistant for deep, agentic research**
*Performs deep, agentic research using multiple LLMs and search engines with proper citations*
🧪 **First open-source project — fully-local on a single RTX 3090 (Qwen3.6-27B) — to report ~95% SimpleQA (n=500) and 77% xbench-DeepSearch (n=100) on local hardware.** See the r/LocalLLaMA announcement and the benchmark dataset.
▶️ Watch Review by The Art Of The Terminal
🚀 What is Local Deep Research?
AI research assistant you control. Run locally for privacy, use any LLM and build your own searchable knowledge base. You own your data and see exactly how it works.
⚡ Quick Start
**Option 1: Docker Run (Linux)**
> **Mac / Windows / WSL2 users:** --network host only works on native Linux. On Docker Desktop it silently fails to publish port 5000 *and* leaves localhost pointing at the LDR container itself (so it can't reach Ollama/SearXNG). Use **Option 2** below, or see the Windows/WSL2 FAQ entry for a working docker run recipe.
**Option 2: Docker Compose**
CPU-only (all platforms):
With NVIDIA GPU (Linux):
Open http://localhost:5000 after ~30 seconds. For GPU setup, environment variables, and more, see the Docker Compose Guide.
**Option 3: pip install**
> You'll also need Ollama (or any OpenAI-compatible LLM endpoint) and SearXNG running — see the pip install guide for the full recipe.
> Works on Windows, macOS, and Linux. SQLCipher encryption is included via pre-built wheels — no compilation needed.
> PDF export on Windows requires Pango (setup guide).
> **Development fallback:** LDR_BOOTSTRAP_ALLOW_UNENCRYPTED=true permits plaintext SQLite only when SQLCipher is unavailable or nonfunctional; working SQLCipher still takes priority. The fallback does not verify account passwords and is unsuitable for shared deployments. See fallback limitations.
**Detailed install guides:** Docker · Docker Compose · pip · Unraid · full install reference
> **Older CPU (x86-64)?** LDR needs an AVX-capable CPU — Intel Sandy Bridge / AMD Bulldozer (2011) or newer. Several scientific Python dependencies (pandas, scikit-learn) ship wheels that crash with Illegal instruction on older CPUs. ARM64 (aarch64) is fully supported. Every release is smoke-tested against this floor, including AVX-without-AVX2 CPUs (#4480).
🏗️ How It Works
Research
You ask a complex question. Local Deep Research (LDR):
- Does the research for you automatically
- Searches across web, academic papers, and your own documents
- Synthesizes everything into a report with proper citations
Choose the research strategy that fits: quick pipeline modes for fast facts, or fully agentic deep research for complex analysis and academic work.
**LangGraph Agent Strategy** — An autonomous agentic research mode where the LLM decides what to search, which specialized engines to use (arXiv, PubMed, Semantic Scholar, etc.), and when to synthesize. It adaptively switches between search engines based on what it finds and collects significantly more sources than pipeline-based strategies — this is the strategy behind the ~95% SimpleQA result above. Select langgraph-agent in Settings.
Build Your Knowledge Base
Every research session finds valuable sources. Download them directly into your encrypted library — academic papers from ArXiv, PubMed articles, web pages. LDR extracts text, indexes everything, and makes it searchable. Next time you research, ask questions across your own documents and the live web together. Your knowledge compounds over time.
🛡️ Security
Your data stays yours. Each user gets their own isolated SQLCipher database encrypted with AES-256, with the key derived from your password. Your password is never stored — login works by attempting to decrypt your database, so the database files on their own are unusable to anyone who obtains them. Per-user LLM API keys live encrypted inside the same personal database rather than in a shared server-level store.
The Docker setup ships with cap_drop: ALL, no-new-privileges, and a non-root runtime, with the bundled Ollama and SearXNG images pinned by digest. With a model running in the bundled Ollama, inference runs on your own hardware. LDR judges locality mainly by provider and endpoint address, not by where the model runs, so a local endpoint that relays to a hosted model (an Ollama cloud model, or a local LiteLLM or other OpenAI-compatible proxy in front of a hosted API) can still send your prompts off the machine without being detected. A self-hosted SearXNG still forwards your search queries to its upstream engines on the internet. To keep a run on private sources, search only local sources (collections, your library) under the *Private only* egress scope described below. That scope is a best-effort guard rail, not an air gap: see the Egress control section below and SECURITY.md.