Deep web exploration + autonomous writing: WebThinker allows large models to complete research reports like humans

WebThinker: Empowering AI with new capabilities of deep exploration and autonomous writing, opening a new era of research report writing.
Core content:
1. WebThinker project background and core function introduction
2. Innovative features of autonomous thinking-search-writing mechanism
3. Technological innovation: autonomous search, deep web exploration and multi-round interactive optimization
With the continuous development of artificial intelligence technology, large language models face many challenges in handling complex tasks, such as relying on static knowledge bases and difficulty in obtaining the latest information in real time. In order to solve these problems, the Natural Language Processing Laboratory of Renmin University of China ( RUC-NLPIR ) launched the open source project WebThinker . WebThinker provides new ideas and methods for complex problem solving and scientific research writing by giving large reasoning models the ability to search autonomously, deeply explore web pages, and write research reports . This article will introduce the project background, core functions, technological innovations, application scenarios, and quick usage methods of WebThinker in detail to help readers better understand and apply this cutting-edge technology.
1. Project Overview
WebThinker is an open source deep research framework launched by the Natural Language Processing Laboratory of Renmin University of China ( RUC-NLPIR ). It enables large reasoning models ( LRMs ) to autonomously search, deeply explore web pages, and draft research reports during the thinking process. Unlike traditional retrieval-augmented generation ( RAG ) models, WebThinker is oriented towards complex problem solving and scientific research writing, giving the model the end-to-end ability to autonomously perform network search, deep web page exploration, content integration, and scientific research report writing, aiming to address the limitations of traditional models that rely on static knowledge bases and have difficulty handling complex knowledge-intensive tasks.
2. Core Functions
1. Autonomous thinking - searching - writing mechanism
The core of WebThinker lies in its Autonomous Think - Search - and- Draft mechanism . This mechanism enables the model to have the following capabilities when writing research reports:
1. Chapter writing : Based on the collected knowledge, the system can independently generate the content of a section.
2. Content review and editing : Allow users to review the current writing content at any time; the system can automatically rewrite inaccurate or poorly structured parts.
3. Multiple rounds of revision capability : The model will search and revise repeatedly, continuously optimizing existing content to achieve continuous evolution of content.
2. Self-improvement training mechanism
WebThinker developed a training strategy based on reinforcement learning ( RL ), iteratively synthesized tool usage preference data, and applied online DPO training to enhance LRM 's tool utilization capabilities. This self-improvement training mechanism enables the model to review past reasoning - search paths, identify which paths are most effective, and refine "successful reasoning trajectories" for further learning , optimizing writing logic and rhythm for writing tasks.
3. Technological innovation
1. Autonomous Search and Reasoning
WebThinker breaks through the limitation of traditional models that rely only on static knowledge bases, enabling the model to autonomously call web search tools during the reasoning process. In this way, the model can obtain the latest external knowledge in real time, so as to better handle complex problems and knowledge-intensive tasks.
2. Deep Web Exploration
WebThinker not only supports simple web search, but also deep web exploration, which means that the model can browse the web like a human and obtain richer information instead of just relying on the summary of search results.
3. Multiple rounds of interaction and optimization
WebThinker 's multi-round interaction capability enables it to continuously optimize the search and writing process. The model will repeatedly search and revise content based on user feedback and its own evaluation, thereby generating higher quality research reports.
IV. Application Scenarios
1. Scientific writing
WebThinker has great application potential in the field of scientific research writing. It can help researchers quickly collect and organize relevant information and generate high-quality research reports, thereby improving scientific research efficiency.
2. Complex Problem Solving
WebThinker is able to handle complex knowledge-intensive tasks. For example, in the fields of medical research, legal analysis, etc., the model can provide users with detailed solutions through autonomous search and reasoning.
3. Education and training
WebThinker can be used as an educational tool to help students learn how to conduct scientific research and writing. By observing the model's search and writing process, students can better understand scientific research methods and writing skills.
5. Quick Use
1. Cloning code
Open a terminal or command prompt and run the following command to clone the WebThinker code repository:
git clone https://github.com/RUC-NLPIR/WebThinker.gitcd WebThinker
(II) Installation Dependencies
Create a new Conda environment and install the required Python dependencies:
conda create -n webthinker python=3.9conda activate webthinkerpip install -r requirements.txt
3. Preparing the model
Make sure your inference model and auxiliary model have passed the vLLM service. In the official experiment, QwQ-32B is used as the inference model and Qwen-72B-Instruct is used as the auxiliary model. You can also choose other models that have been fine-tuned by instructions as auxiliary models.
(IV) Run Example
1. Problem Solving Mode
If you just want to ask a question, run the following command:
python scripts/run_web_thinker.py \ --single_question "What is OpenAI Deep Research?" \ --bing_subscription_key "YOUR_BING_SUBSCRIPTION_KEY" \ --api_base_url "YOUR_API_BASE_URL" \ --model_name "QwQ-32B" \ --aux_api_base_url "YOUR_AUX_API_BASE_URL" \ --aux_model_name "Qwen2.5-32B-Instruct" \ --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \ --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
If you want to run the results on the benchmark, run the following command:
python scripts/run_web_thinker.py \ --dataset_name gaia \ --split dev \ --concurrent_limit 32 \ --max_search_limit 15 \ --bing_subscription_key "YOUR_BING_SUBSCRIPTION_KEY" \ --api_base_url "YOUR_API_BASE_URL" \ --model_name "QwQ-32B" \ --aux_api_base_url "YOUR_AUX_API_BASE_URL" \ --aux_model_name "Qwen2.5-32B-Instruct" \ --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \ --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
2. Report generation mode
If you want to raise an issue and generate a report, run the following command:
python scripts/run_web_thinker_report.py \ --single_question "What are the models of OpenAI and what are the differences?" \ --bing_subscription_key "YOUR_BING_SUBSCRIPTION_KEY" \ --api_base_url "YOUR_API_BASE_URL" \ --model_name "QwQ-32B" \ --aux_api_base_url "YOUR_AUX_API_BASE_URL" \ --aux_model_name "Qwen2.5-32B-Instruct" \ --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \ --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
If you want to run the results on the benchmark, run the following command:
python scripts/run_web_thinker_report.py \ --dataset_name glaive \ --split test \ --concurrent_limit 32 \ --bing_subscription_key "YOUR_BING_SUBSCRIPTION_KEY" \ --api_base_url "YOUR_API_BASE_URL" \ --model_name "QwQ-32B" \ --aux_api_base_url "YOUR_AUX_API_BASE_URL" \ --aux_model_name "Qwen2.5-32B-Instruct" \ --tokenizer_path "PATH_TO_YOUR_TOKENIZER" \ --aux_tokenizer_path "PATH_TO_YOUR_AUX_TOKENIZER"
3. Run the Demo
You can run the demo we created by running the following command:
cd demostreamlit run demo.py
Before running, you need to configure relevant parameters in `demo/settings.py` .
4. Parameter Description
The following is a description of the common parameters in the run command:
`--dataset_name` : Name of the dataset to use (e.g. `gaia` , `glaive` ).
`--split` : Split of the dataset (e.g. `dev` , `test` ).
`--single_question` : Question to ask in single question mode.
`--concurrent_limit` : Maximum number of concurrent requests.
`--max_search_limit` : Maximum number of search queries per inference session.
`--bing_subscription_key` : Your Bing Search API subscription key.
`--api_base_url` : The base URL of the main model API .
`--model_name` : The name of the main model to use.
`--aux_api_base_url` : The base URL of the auxiliary model API .
`--aux_model_name` : Auxiliary model name to use.
`--tokenizer_path` : Path to the main model tokenizer.
`--aux_tokenizer_path` : Path to the auxiliary model tokenizer.
VI. Conclusion
As an open source deep research framework, WebThinker provides new possibilities for autonomous scientific research of large-scale inference models. Through autonomous search, deep web exploration, and self-improvement training mechanisms, WebThinker can effectively address the limitations of traditional models and provide strong support for complex problem solving and scientific research writing. I hope that the introduction of this article can help readers better understand WebThinker and apply it in actual projects.