This is the official repository for Flash-Searcher, a DAG-based parallel execution agent framework that achieves SOTA results on multiple datasets.
The work is done by Tianrui Qin, Qianben Chen, Sinuo Wang, Kang Zhu, He Zhu, Dingfeng Shi, Ge Zhang, Jiaheng Liu, Xitong Gao, Yuchen Eleanor Jiang, Wangchunshu Zhou.
- [10/2025] We have released the official code implement of Flash-Searcher!🎉
Flash-Searcher transforms complex task solving through a DAG-based parallel execution framework that dramatically improves efficiency while maintaining high performance.
- DAG-based task decomposition that maps complex tasks into structured subtasks with explicit dependencies.
- Adaptive parallel scheduling that allows aggressive execution of subtasks when partially ready.
- Dynamic plan optimization that periodically refines the execution graph based on progress.
- 35% fewer execution steps (11.2 → 7.4) compared to traditional sequential approaches.
- Superior results on challenging benchmarks: BrowseComp (67.7), xbench (83.0), GAIA (82.5), HLE (44.0).
- Effective transfer to open-source models through lightweight adaptation.
By breaking free from the sequential bottleneck that limits conventional agent systems, Flash-Searcher creates a new efficiency-performance frontier for complex task solving.
conda create -n flash_searcher python=3.10
conda activate flash_searcher
pip install requirements.txtFlash-Searcher framework and model use SearchTool and CrawlTool for web search and crawl pages, which require environment variables with the corresponding API key, based on the selected provider:
SERPER_API_KEYfor SerpApi: [Serper] (https://serper.dev/)JINA_API_KEYfor JinaApi: [JinaAI] (https://jina.ai/)
Depending on the model you want to use, you may need to set environment variables. You need to set the DEFAULT_MODEL, OPENAI_BASE_URL and OPENAI_API_KEY environment variable.
Run the Flash-Searcher agent on text-only tasks:
python run_flash_searcher.py --infile <dataset or benchmark path> --outfile <output path> --summary_interval <plan optimize & process managment interval> --concurrency <num workers>Note that the input data must contain two mandatory fields: "question", and "answer".
Run the Flash-Searcher agent on multimodal tasks::
python run_flash_searcher_mm.py --infile <dataset or benchmark path> --outfile <output path> --summary_interval <plan optimize & process managment interval> --concurrency <num workers>Note that the input data must contain three mandatory fields: "question", "answer", and "file_name" (path to the associated multimodal file(s) such as images, audio, or documents relevant to the question).
Evaluation for Flash-Searcher Model is located in the ./model_eval directory. Before running evaluations, configure the summary model for the crawl tool via the SUMMARY_MODEL environment variable, specifying the model identifier (e.g., gpt-5-mini):
python ./model_eval/model_infer.py --infile <dataset or benchmark path> --outfile <output path> --concurrency <num workers> --model_name <You vllm model name> --vllm_url <You vllm model server> --vllm_api_key <You vllm server api_key> The models evaluated in this process undergo supervised fine-tuning using the LLaMA-Factory framework. Our training procedure utilizes high-quality trajectory data, which is fully open-sourced to ensure research reproducibility.
Note: The open-source version of Flash-Searcher uses sequential execution for tool calls. To implement parallel tool invocation, refer to the parallel comments in
FlashOAgents/agent.py. Ensure sufficient tool resources are available to support (task concurrency * tool concurrency (deafult: 5)).
Part of the code is developed with reference to the smolagents framework. Building on its design principles, we developed the Flash-Searcher framework, which introduces DAG-based scheduling for efficient task dependency management and parallel tool invocation to accelerate multi-tool execution. This design enhances both computational efficiency and the flexibility of agentic workflows in complex, multimodal scenarios.
If you find Flash-Searhcer useful in your research or applications, we would appreciate it if you could cite our work:
@article{qin2025flash,
title={Flash-Searcher: Fast and Effective Web Agents via DAG-Based Parallel Execution},
author={Qin, Tianrui and Chen, Qianben and Wang, Sinuo and Xing, He and Zhu, King and Zhu, He and Shi, Dingfeng and Liu, Xinxin and Zhang, Ge and Liu, Jiaheng and others},
journal={arXiv preprint arXiv:2509.25301},
year={2025}
}

