@tom_doerr: Generates 96,000 high-quality deep research trajectories and provides a fully open-source recipe for training agentic l…
Summary
OpenResearcher is an open-source project from TIGER-AI-Lab that provides 96,000 deep research trajectories and a recipe to train agentic language models for long-horizon web research without external APIs. It includes a dataset, model, and demo, and has been adopted by NVIDIA's Nemotron models.
View Cached Full Text
Cached at: 07/15/26, 07:59 PM
Generates 96,000 high-quality deep research trajectories and provides a fully open-source recipe for training agentic language models on long-horizon web research tasks without external API dependencies.
https://t.co/zUo5XOpZBb https://t.co/HmfzWXxrHO
TIGER-AI-Lab/OpenResearcher
Source: https://github.com/TIGER-AI-Lab/OpenResearcher
🤗 HuggingFace |
Slack | WeChat
📣 News
- [2026.6.05] 🔥 OpenResearcher data has been adopted by Nemotron 3 Ultra!
- [2026.3.25] 🚀 OpenResearcher hits #2 on Hugging Face Daily Papers!
- [2026.3.24] OpenResearcher paper is now available, highlighting practical insights into deep research pipeline design. Already adopted by NVIDIA’s Nemotron family of models!
- [2026.2.25] Honored to be among the top 3 trending datasets on 🤗 Hugging Face — now 11K+ downloads!
- [2026.2.18] The OpenResearcher training code is now available. Start training your own OpenResearcher!
- [2026.2.14] Excited to have our OpenResearcher demo video. Dive in and unlock the power of Deep Research today!
- [2026.2.12] Excited to see OpenResearcher powering deep research trajectory generation in NVIDIA’s NeMo Data Designer!
- [2026.2.10] Our X post received 1.2K+ likes! Feel free to check out the post and join the discussion!
💥 Introduction
OpenResearcher is a fully open agentic large language model (30B-A3B) designed for long-horizon deep research scenarios. It achieves an impressive 54.8% accuracy on BrowseComp-Plus, surpassing performance of GPT-4.1, Claude-Opus-4, Gemini-2.5-Pro, DeepSeek-R1 and Tongyi-DeepResearch. We fully open-source the training and evaluation recipe—including data, model, training methodology, and evaluation framework for everyone to progress deep research.
🏆 Deep Research Benchmark Results
✨ Features
-
🔑 Fully Open-Source Recipe — We fully open-source our 96K high-quality DeepResearch trajectory dataset with 100+ turns generated by GPT-OSS-120B with native browser tools, the leading 30B-A3B model trained on it, distillation recipe, and a lightweight DeepResearch evaluation framework to progress deep research.
-
💰 Highly Scalable and Low-Cost — We generate DeepResearch trajectories at massive scale using self-built retriever over a dedicated ~11B-token corpus, eliminating the need for external Search APIs. This scalable retriever significantly reduces training costs.
-
🚀 Remarkable Performance on Deep Research Benchmarks — OpenResearcher demonstrates leading performance across a range of deep research benchmarks, including BrowseComp-Plus, BrowseComp, GAIA, xbench-DeepSearch.
📋 Table of Contents
- 🛠 Environment Setup
- 🔍 Configuration
- 🚀 Quick Start
- 🔬 Benchmark OpenResearcher
- 🧪 (Optional) Train Your Own OpenResearcher
- 🤝 Core Contributors
- 🎓 Advisors
- 🙏 Acknowledgements
- ✨ Contributing
- 📚 Citation
🛠 Environment Setup
We run this repo on the following setup:
- 8 * A100 80G Nvidia GPUs
- Linux operating system
Other hardware setups can also work, but remember to modify the corresponding parameters.
Installation
sudo apt update
sudo apt install -y openjdk-21-jdk
# install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv --python 3.12
source .venv/bin/activate
# install tevatron for BrowseComp-plus
git clone https://github.com/texttron/tevatron.git
cd tevatron
uv pip install -e .
cd ..
# install all dependencies automatically
uv pip install -e .
Deep Research Benchmarks Preparation
Run the setup script to automatically download the BrowseComp-Plus benchmark. Other benchmarks, including BrowseComp, GAIA and xbench-DeepResearch, will be set up automatically when they are first used.
bash setup.sh
This script will:
- ✅ Verify Python 3.12 virtual environment and automatically install any missing dependencies
- ✅ Downlaod BrowseComp-Plus dataset from HuggingFace and set up the directory structure
For more info about these deep research benchmarks, see benchmarks.md
🔍 Configuration
Copy the template and configure your API keys:
cp .env.template .env
Edit .env:
# Serper API (for web search when using browser_backend=serper)
SERPER_API_KEY=your_key # Get from: https://serper.dev/
# OpenAI API (for evaluation scoring)
OPENAI_API_KEY=your_key # Get from: https://platform.openai.com/api-keys
🚀 Quick Start
Prerequisites: Install dependencies and configure API keys (see Environment Setup and Configuration)
- Deploy OpenResearcher-30B-A3B:
bash scripts/start_nemotron_servers.sh
The complete vLLM server logs can be found in the logs directory.
- Run your first task (Before proceeding, check the logs in
logsdirectory to ensure the vLLM server is deployed.)
import asyncio
from deploy_agent import run_one, BrowserPool
from utils.openai_generator import OpenAIAsyncGenerator
async def main():
# Initialize generator and browser
generator = OpenAIAsyncGenerator(
base_url="http://localhost:8001/v1",
model_name="OpenResearcher/OpenResearcher-30B-A3B",
use_native_tools=True
)
browser_pool = BrowserPool(search_url=None, browser_backend="serper")
# Run deep research
await run_one(
question="What is the latest news about OpenAI?",
qid="quick_start",
generator=generator,
browser_pool=browser_pool,
)
browser_pool.cleanup("quick_start")
if __name__ == "__main__":
asyncio.run(main())
The deep research agent will automatically search the web, browse webpages, and extract relevant information. You’ll see the final answer along with all intermediate reasoning steps.
🔬 Benchmark OpenResearcher
We benchmark our OpenResearcher-30B-A3B using below deep research benchmarks:
| Benchmark | Dataset Key | Size | Language | Search Backend | Description |
|---|---|---|---|---|---|
| BrowseComp-Plus | browsecomp_plus | 830 | EN | local | Deep-research benchmark from BrowseComp isolating retriever and LLM agent effects |
| BrowseComp | browsecomp | 1,266 | EN | serper | A Simple Yet Challenging Benchmark for Browsing Agents |
| GAIA-text | gaia | 103 | EN | serper | Text-only subset of GAIA benchmark (dev split) |
| xbench-DeepResearch | xbench | 100 | ZH | serper | DeepSearch benchmark with encrypted test cases |
For more info about these deep research benchmarks, see benchmarks.md
Example 1: BrowseComp-Plus with Local Search Engine
Complete evaluation using local dense search with browsecomp-plus corpus and embeddings (note: only applicable for BrowseComp-Plus):
# Terminal 1: Start local Dense search service on port 8000
# Embedding model (Qwen3-Embedding-8B) will be deployed on GPUs 7
bash scripts/start_search_service.sh dense 8000
# Terminal 2: Start vLLM servers (requires 4 GPUs)
# TP=2, deploy 2 servers starting from port 8001 on GPUs 0,1,2,3
bash scripts/start_nemotron_servers.sh 2 8001 0,1,2,3
# Terminal 3: Run agent
bash run_agent.sh results/browsecomp_plus/OpenResearcher_dense 8001 2 browsecomp_plus local OpenResearcher/OpenResearcher-30B-A3B
What this does:
- Deploys Dense retriever service on port 8000 as search engine
- Launches 2 vLLM servers (ports 8001, 8002) with TP=2 across 4 GPUs
- Runs deepresearch agent with load balancing across both servers
Example 2: GAIA with Serper API (No Local Search Needed)
Run with Serper Google Search API (note: applicable to all benchmarks except BrowseComp-Plus):
# Terminal 1: Start vLLM servers (requires 4 GPUs)
bash scripts/start_nemotron_servers.sh 2 8001 0,1,2,3
# Terminal 2: Run agent with serper search backend
bash run_agent.sh results/gaia/OpenResearcher_serper 8001 2 gaia serper OpenResearcher/OpenResearcher-30B-A3B
Browser Backend Options:
local- Use local BM25/Dense search service (for BrowseComp-Plus)serper- Use Serper Google Search API (for all other benchmarks)
For other parameters, refer to parameter.md.
Evaluation
After running experiments, evaluate results:
# eval on browsecomp_plus
python eval.py --input_dir results/browsecomp_plus_dense/OpenResearcher_dense
# eval on gaia
python eval.py --input_dir results/gaia/OpenResearcher_serper
Quick Commands
| Scenario | Command |
|---|---|
| BrowseComp-Plus (BM25) | bash scripts/start_search_service.sh bm25 8000 then bash scripts/start_nemotron_servers.sh 2 8001 0,1,2,3 then bash run_agent.sh results/browsecomp-plus/OpenResearcher_bm25 8001 2 browsecomp_plus local OpenResearcher/OpenResearcher-30B-A3B |
| BrowseComp-Plus (Qwen3-8B Dense Embeddings) | bash scripts/start_search_service.sh dense 8000 then bash scripts/start_nemotron_servers.sh 2 8001 0,1,2,3 then bash run_agent.sh results/browsecomp-plus/OpenResearcher_dense 8001 2 browsecomp-plus local OpenResearcher/OpenResearcher-30B-A3B |
| BrowseComp | bash scripts/start_nemotron_servers.sh 2 8001 0,1,2,3 then bash run_agent.sh results/browsecomp 8001 2 browsecomp serper OpenResearcher/OpenResearcher-30B-A3B |
| GAIA | bash scripts/start_nemotron_servers.sh 2 8001 0,1,2,3 then bash run_agent.sh results/gaia 8001 2 gaia serper OpenResearcher/OpenResearcher-30B-A3B |
| xbench-DeepResearch | bash scripts/start_nemotron_servers.sh 2 8001 0,1,2,3 then bash run_agent.sh results/xbench 8001 2 xbench serper OpenResearcher/OpenResearcher-30B-A3B |
For script parameter explanation, refer to parameter.md.
Note: Don’t forget to evaluate your results using:
python eval.py --input_dir [INPUT_DIR]
🧪 (Optional) Train Your Own OpenResearcher
Our OpenResearcher-30B-A3B is trained using Megatron-LM on openresearcher-dataset. To get started, clone the openresearcher branch of the Megatron-LM repository:
git clone -b openresearcher https://github.com/jdf-prog/Megatron-LM.git
Then, follow the training instructions here to train your own OpenResearcher!
🤝 Core Contributors
Zhuofeng Li |
Dongfu Jiang |
Xueguang Ma |
Haoxiang Zhang |
Ping Nie |
🎓 Advisors
Wenhu Chen |
Yu Zhang |
🙏 Acknowledgements
✨ Contributing
We are truly looking forward to open-source contributions to OpenResearcher! If you’re interested in contributing, collaborating, or reporting issues, please feel free to open an issue or submit a pull request (PR). You can also reach us at [email protected].
We are also looking forward to your feedback and suggestions!
📚 Citation
@article{li2026openresearcher,
title={{OpenResearcher: A Fully Open Pipeline for Long-Horizon Deep Research Trajectory Synthesis}},
author={Li, Zhuofeng and Jiang, Dongfu and Ma, Xueguang and Zhang, Haoxiang and Nie, Ping and Zhang, Yuyu and Zou, Kai and Xie, Jianwen and Zhang, Yu and Chen, Wenhu},
journal={arXiv preprint arXiv:2603.20278},
year={2026}
}
⭐ Star History
Similar Articles
@tom_doerr: Open-source agent for long-horizon deep research https://github.com/TIGER-AI-Lab/OpenResearcher…
TIGER-AI-Lab releases OpenResearcher, an open-source agent designed to automate long-horizon deep research tasks.
OpenResearcher: A Fully Open Pipeline for Long-Horizon Deep Research Trajectory Synthesis
OpenResearcher presents a reproducible pipeline for training deep research agents using offline search environments and synthesized trajectories, achieving significant accuracy improvements on benchmark tasks like BrowseComp-Plus.
S1-DeepResearch: Beyond Search, Toward Real-World Long-Horizon Research Agents
This paper introduces S1-DeepResearch-32B, an open-source model and 15K trajectory dataset for deep research agents, achieving state-of-the-art performance across 20 benchmarks by jointly modeling information acquisition, knowledge synthesis, and planning.
@trendtech33566: 【Breaking News】An OSS that fully reproduces the Deep Research workflow in an open manner has appeared: OpenResearcher, …
OpenResearcher is an open-source project that fully reproduces the Deep Research workflow, providing datasets, models, and demos. It enables researchers and AI agent developers to build, train, and evaluate deep research pipelines in an open manner.
@tom_doerr: Fully open sources training data for 30B scale search agents https://github.com/PolarSeeker/OpenSeeker…
OpenSeeker fully open-sources training data and models for 30B-scale ReAct-based search agents, achieving state-of-the-art performance on multiple benchmarks including BrowseComp and Humanity's Last Exam. It is the first purely academic project to reach frontier search benchmark performance while releasing complete training data.