* feat!: remove the auto and parallel meta search engines The langgraph-agent strategy (the default) selects search engines dynamically per tool call, making the LLM-based meta-pickers redundant: - 'auto' (MetaSearchEngine, alias 'meta') spent an extra LLM call picking 1-3 engines and returned the first success - 'parallel'/'parallel_scientific' (ParallelSearchEngine) fanned out blindly across engines and merged results Removal also deletes the entire meta-picker special-case surface in the egress policy: the factory skip-PEP tuple (every engine now goes through evaluate_engine), _META_PICKER_ENGINES, the strict_with_meta_picker / meta_picker_delegator reason codes, validate_strict_meta_combo, and the frontend STRICT-scope guard. Migration 0013 rewrites stored per-user data at DB open: search.tool settings -> searxng, orphaned search.engine.auto.* / search.engine.web.parallel.* rows deleted, news subscription engines NULLed (= use the user's default), queued research snapshots and saved benchmark configs rewritten. Also fixes /api/v1/quick_summary silently overriding the user's configured engine with 'auto' when search_tool was omitted, and the corrupted-settings repair paths re-introducing 'auto'. BREAKING CHANGE: search_tool='auto'/'parallel' now raises ValueError; pick a concrete engine. LDR_SEARCH_TOOL=auto env overrides must be updated. * test: exempt 0013's intentional no-op downgrade from the substantive-downgrade guard Restoring 'auto'/'parallel' references on downgrade would recreate broken state — those engines no longer exist. Same precedent as 0004. * fix: align merged main code with meta-engine removal The merge from main brought in _egress_audit_net (MCP) with the old search.tool 'auto' code default — switch it to 'searxng' like the other call sites. * test: fix LLM-provider tests denied by adaptive egress + private primary The fixture sweep changed search.tool from the removed 'auto' to the private 'library' engine — the only one the factory instantiates from these minimal snapshots. That passed while the missing-scope fallback was 'both', but merging main (#4465, fallback -> adaptive) made a private primary resolve to PRIVATE_ONLY, forcing local LLM and denying the remote OpenAI/OpenRouter providers these tests configure (provider_remote). Pin policy.egress_scope='both' in the affected fixtures so these stay LLM-provider-config tests, decoupled from egress-scope resolution.
8.6 KiB
Features Documentation
This comprehensive guide covers all features available in Local Deep Research (LDR).
Note
: This documentation is maintained by the community and may contain inaccuracies. While we strive to keep it up-to-date, please verify critical information and report any errors via GitHub Issues.
Table of Contents
- Research Modes
- Search Capabilities
- LLM Integration
- User Interface Features
- Advanced Features
- Developer Features
- Performance Features
Research Modes
Quick Summary Mode
Fast research mode that provides concise answers with citations.
Features:
- Automatic query decomposition
- Parallel search execution
- Smart result synthesis
- Citation tracking
- Structured output with tables when relevant
Usage:
from local_deep_research.api import quick_summary
result = quick_summary(
query="Your research question",
iterations=2, # Number of research iterations
questions_per_iteration=3 # Sub-questions per iteration
)
Detailed Research Mode
Comprehensive analysis mode for in-depth exploration of topics.
Features:
- Section-based research organization
- Multiple research cycles
- Cross-reference validation
- Extended context windows
- Detailed citation management
Report Generation Mode
Creates professional research reports with proper structure.
Features:
- Automatic table of contents
- Section headers and organization
- Executive summary generation
- Bibliography management
- Export to PDF/Markdown
Document Analysis Mode
Searches and analyzes your private document collections.
Features:
- Multiple document formats supported
- Vector-based semantic search
- Collection management
- Incremental indexing
- Privacy-preserved processing
Chat Mode
Experimental — interface and behavior may change before GA.
Interactive multi-turn research conversations. Each session accumulates context across turns and supports streaming progress and follow-up refinement via the sidebar Chat link or /chat/. Designed for exploring a topic progressively rather than one-off lookups; for single queries, use a research mode directly from the home page.
Features:
- Multi-turn conversation with accumulated context (entities, topics, source count)
- Live streaming of research steps and citations as the answer is built
- Persistent sessions in your per-user database (encrypted by default; survive logout)
- Session lifecycle: archive, reactivate, permanently delete
- Optional LLM-generated session titles (toggle via
chat.llm_title_generation) - Export a session as Markdown
- Always uses "quick" research mode (v1); one in-flight research per session
Search Capabilities
Multi-Engine Search
Simultaneously query multiple search engines for comprehensive results.
Supported Engines:
- Academic: arXiv, PubMed, Semantic Scholar
- General: Wikipedia, SearXNG, DuckDuckGo
- Technical: GitHub, Elasticsearch
- Custom: Local documents, LangChain retrievers
Intelligent Query Routing
The default langgraph-agent strategy selects appropriate search engines dynamically based on query type:
- Scientific queries → Academic engines
- Code questions → GitHub + technical sources
- General knowledge → Wikipedia + web search
Adaptive Rate Limiting
Features:
- Learns optimal wait times per engine
- Automatic retry with exponential backoff
- Fallback engine selection
- Rate limit status monitoring
Search Strategies
Search strategies:
source-based: Comprehensive research with detailed source trackingfocused-iteration: Iterative refinement, quick Q&A (highest factual accuracy)focused-iteration-standard: Comprehensive variant with broader explorationtopic-organization: Clusters sources into topics for structured outputmcp: Agentic ReAct-pattern research using MCP toolslanggraph-agent: Autonomous agentic research
See Architecture Overview for details.
LLM Integration
Local Models (via Ollama)
Supported Models:
- Llama 3 (8B, 70B)
- Mistral (7B, 8x7B)
- Gemma (7B, 12B)
- DeepSeek Coder
- Custom GGUF models
Features:
- Complete privacy
- No API costs
- Model hot-swapping
- GPU acceleration support
Cloud Models
Providers:
- OpenAI (GPT-3.5, GPT-4)
- Anthropic (Claude 3 family)
- Google (Gemini models)
- OpenRouter (100+ models)
Features:
- Automatic fallback
- Cost tracking per model
- Token usage monitoring
- Model comparison tools
User Interface Features
Web Interface
Core Features:
- Real-time research progress
- Interactive result exploration
- Settings management
- Research history
- Export capabilities
Keyboard Shortcuts
ESC: Cancel current operationCtrl+Shift+1: Quick Summary modeCtrl+Shift+2: Detailed Research modeCtrl+Shift+3: Report GenerationCtrl+Shift+4: SettingsCtrl+Shift+5: Analytics
Real-time Updates
WebSocket Features:
- Live research progress
- Streaming results
- Status notifications
- Error handling
- Connection management
Export Options
Formats:
- PDF with formatting
- Markdown with citations
- JSON for programmatic use
- Plain text
- HTML with styling
Advanced Features
LangChain Integration
Connect any LangChain-compatible retriever:
from local_deep_research.api import quick_summary
result = quick_summary(
query="Internal documentation query",
retrievers={"company_docs": your_retriever},
search_tool="company_docs"
)
Supported Vector Stores:
- FAISS
- Chroma
- Pinecone
- Weaviate
- Elasticsearch
- Custom implementations
MCP Server (Claude Integration)
Use LDR as a research tool directly from Claude Desktop or other MCP-compatible AI assistants.
Features:
- 8 tools (5 research, 3 discovery) accessible via Model Context Protocol
- STDIO transport for secure local operation
- Per-call settings overrides
- ReAct (agentic) strategy with dynamic tool selection
- Document analysis with RAG pipeline
See MCP Server Guide for setup and usage.
REST API
Full HTTP API for language-agnostic access:
# Quick summary
POST /api/v1/quick_summary
# Detailed research
POST /api/v1/detailed_research
# Report generation
POST /api/v1/generate_report
Features:
- OpenAPI specification
- Authentication support
- Rate limiting
- Webhook callbacks
- Batch processing
Analytics Dashboard
Metrics Tracked:
- Cost per research/model
- Token usage patterns
- Response times
- Success rates
- Search engine health
- User ratings
Time Ranges:
- Last 7 days
- Last 30 days
- Last 90 days
- All time
Research History
Features:
- Full research archive
- Search within results
- Tagging system
- Sharing capabilities
- Version tracking
Developer Features
Python SDK
from local_deep_research import ResearchClient
client = ResearchClient(
llm_provider="ollama",
llm_model="llama3:8b",
search_engines=["searxng", "arxiv"]
)
result = client.research(
query="Your question",
strategy="focused_iteration"
)
Benchmarking System
Features:
- SimpleQA dataset support
- Custom dataset creation
- Performance metrics
- A/B testing framework
- Configuration optimization
Usage:
python -m local_deep_research.benchmarks \
--dataset simpleqa \
--examples 100 \
--config your_config.json
Command Line Tools
# 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
Performance Features
Caching System
Document Embedding Cache:
- Caches document embeddings for faster subsequent searches
Parallel Processing
Optimization:
- Concurrent search queries
- Parallel LLM calls
- Async result processing
- Thread pool management
Resource Management
Features:
- Token budget enforcement
- Request queuing
- Graceful degradation
Security Features
Privacy Protection
- Local processing options
- No telemetry by default
- Secure credential storage