A simple, powerful, and extensible framework for agentic deep research using LLMs
This project provides a lightweight yet powerful agentic framework designed to enable multi-hop web search and automated deep research report generation using the function-calling capabilities of LLMs. It empowers developers and researchers to build autonomous agents that can search, reason, and synthesize information from the web with minimal setup.
Whether you're building a research assistant, competitive intelligence tool, or knowledge curation system, this project provides a clean, modular, and easy-to-extend foundation.
-
โ Easy-to-Use - Simple interface for multi-hop search and report generation โ get started in minutes.
-
๐ Multi-Hop Web Search - Agents perform iterative searches to gather comprehensive information across multiple sources.
-
๐ Multiple Search Tools Supported - Choose from Serper, Jina, Tavily, Firecrawl, and more โ plug in your preferred search engine.
-
๐ง LLM Agnostic - Supports various LLMs via API (e.g., Qwen, GPT-4o) through the DashScope or OpenAI-compatible interface.
-
๐ Built-in Evaluation Pipeline - Evaluate performance on multi-hop QA and report generation tasks out-of-the-box.
-
๐ Multi-Language Support - Fully supports both English and ็ฎไฝไธญๆ.
-
๐ฅ๏ธ Local Deployment Ready - Supports full-stack deployment (frontend + backend) in local or private environments for enhanced privacy and control.
-
๐ MIT Licensed - Open-source and free for personal and commercial use.
Dashscope is a platform providing AI-powered APIs and tools for natural language processing, computer vision, and other machine learning tasks. You can get the LLM API from Dashscope.
- Dashscope Uasge
- Get Your API Key ๏ฝ ่ทๅๆจ็ API Key
- Put your API key in
_settings.py
Websearch tools are used to perform websearch and retrieve webpages for deep research.
We support the following websearch tools:
You can set search backend in _settings.py:
WEBSEARCH_API = ("jina") # or "tavily", "firecrawl", "local_jina", "custom"๐ก Tips:
- We recommend Jina for its cost-efficiency and excellent content extraction. You can deploy Jina Read locally for full control.
- If you want to choose serper_api, you need to set the WEBSEARCH_API to
custom.
git clone https://github.com/D2I-ai/agentic_deep_research.git
cd agentic_deep_research
export PYTHONPATH=$PYTHONPATH:$(pwd)pip install -r requirements.txtYou need to edit the _settings.py file and provide your API key. You need to provide at least dashscope API key and one of the websearch API keys.
APIKeys = {
"dashscope_api_key": "your dashscope api key",
"serper_api": "your serper api key",
"jina_api_key": "your jina api key",
"tavily_api_key": "your tavily api key",
"firecrawl_api_key": "your firecrawl api key"
} python agent/model.pypython websearch/query2text.pyLaunch the full agentic pipeline:
python agent/deep_research_demo.pyOur agentic deep research achieve strong results on multi-hop QA and report generation tasks. Below are accuracy scores on public benchmarks (โ is better):
| Models | HotpotQA_dev_subset | Musique_test_subset | Bamboogle |
|---|---|---|---|
| qwen2.5-7b | 30.00% | 13.00% | 36.00% |
| qwen2.5-max | 60.00% | 25.00% | 74.40% |
| qwen3-235b-a22b | 53.30% | 25.00% | 66.40% |
| gpt-4o-0806 | 66.70% | 36.00% | 76.80% |
| DeepSeek-R1-0528 | 53.30% | 34.00% | 78.40% |
| Search-R1 ๏ผLocal RAG๏ผ * |
63.00% | 27.50% | 57.60% |
| R1-Searcher * | 53.10% | 25.60% | 65.60% |
| DeepResearcher * | 64.30% | 29.30% | 72.80% |
| Ours ๏ผqwen2.5-7b-instruct๏ผ |
70.00% | 29.00% | 64.80% |
| Ours ๏ผqwen2.5-max๏ผ |
83.30% | 41.00% | 78.40% |
| Ours ๏ผqwen3-235b-a22b๏ผ |
80.00% | 36.00% | 84.00% |
Evaluate your agentโs performance using our built-in pipeline:
python evaluation/eval_deepresearch.py- Add support for MCP.
- Add support for more evaluation benchmarks, such as GAIA.
- Add more finegrained tools.
- Provide docker image for easy deployment.
- Release an agent RL training dataset 10K+ samples.
Launch the backend server:
python server.pyFollowing the web/README-EN.md | web/README-ZH.md to launch the frontend server
We thank the following projects for inspiration and foundational tools:
- Qwen Agent - Qwen agent is a powerful LLM agent that provides a simple and intuitive interface for users to implement different agent systems.
- Jina Read - Jina read provides a simple and efficient way to extract text from given urls.
This project is released under the MIT License. This license allows for free use, modification, and distribution for both commercial and non-commercial purposes.
If you use this project in your research, please cite:
@misc{SADR,
title={A Strong Baseline for Agentic Deep Research},
author={Chao Chen, Zhihang Fu, Ze Chen},
}Made with โค๏ธ for the open-source community

