Skip to content

Commit 9e6e386

Browse files
zhiweizhiwei
authored andcommitted
update readme files
1 parent cfd3a56 commit 9e6e386

1 file changed

Lines changed: 136 additions & 84 deletions

File tree

README.md

Lines changed: 136 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# DeepResearchAgent
22

3+
English | [简体中文](README_CN.md)
4+
35
## Introduction
46

57
DeepResearchAgent is a hierarchical multi-agent system designed not only for deep research tasks but also for general-purpose task solving. The framework leverages a top-level planning agent to coordinate multiple specialized lower-level agents, enabling automated task decomposition and efficient execution across diverse and complex domains.
@@ -13,134 +15,201 @@ DeepResearchAgent is a hierarchical multi-agent system designed not only for dee
1315
The system adopts a two-layer structure:
1416

1517
### 1. Top-Level Planning Agent
16-
- Responsible for understanding, decomposing, and planning the overall workflow for a given task.
17-
- Breaks down tasks into manageable sub-tasks and assigns them to appropriate lower-level agents.
18-
- Dynamically coordinates the collaboration among agents to ensure smooth task completion.
18+
19+
* Responsible for understanding, decomposing, and planning the overall workflow for a given task.
20+
* Breaks down tasks into manageable sub-tasks and assigns them to appropriate lower-level agents.
21+
* Dynamically coordinates the collaboration among agents to ensure smooth task completion.
1922

2023
### 2. Specialized Lower-Level Agents
21-
- **Deep Analyzer**
22-
- Performs in-depth analysis of input information, extracting key insights and potential requirements.
23-
- Supports analysis of various data types, including text and structured data.
24-
- **Deep Researcher**
25-
- Conducts thorough research on specified topics or questions, retrieving and synthesizing high-quality information.
26-
- Capable of generating research reports or knowledge summaries automatically.
27-
- **Browser Use**
28-
- Automates browser operations, supporting web search, information extraction, and data collection tasks.
29-
- Assists the Deep Researcher in acquiring up-to-date information from the internet.
24+
25+
* **Deep Analyzer**
26+
27+
* Performs in-depth analysis of input information, extracting key insights and potential requirements.
28+
* Supports analysis of various data types, including text and structured data.
29+
* **Deep Researcher**
30+
31+
* Conducts thorough research on specified topics or questions, retrieving and synthesizing high-quality information.
32+
* Capable of generating research reports or knowledge summaries automatically.
33+
* **Browser Use**
34+
35+
* Automates browser operations, supporting web search, information extraction, and data collection tasks.
36+
* Assists the Deep Researcher in acquiring up-to-date information from the internet.
3037

3138
## Features
32-
- Hierarchical agent collaboration for complex and dynamic task scenarios
33-
- Extensible agent system, allowing easy integration of additional specialized agents
34-
- Automated information analysis, research, and web interaction capabilities
35-
39+
40+
* Hierarchical agent collaboration for complex and dynamic task scenarios
41+
* Extensible agent system, allowing easy integration of additional specialized agents
42+
* Automated information analysis, research, and web interaction capabilities
3643

3744
## Updates
38-
* 2025.06.01
39-
- Update the browser-use to 0.1.48.
40-
* 2025.05.30
41-
- Convert the sub agent to a function call, so that the planning agent can call the sub agents directly. Planning agent can now be gpt-4.1 or gemini-2.5-pro.
42-
* 2025.05.27
43-
- Updated the available remote API calls to support OpenAI, Anthropic, and Google LLMs.
44-
- Added support for local Qwen models (via vllm, compatible with OpenAI API format, see details at the end of README)
45+
46+
* **2025.06.01**: Update the browser-use to 0.1.48.
47+
* **2025.05.30**: Convert the sub agent to a function call. Planning agent can now be gpt-4.1 or gemini-2.5-pro.
48+
* **2025.05.27**: Support OpenAI, Anthropic, Google LLMs, and local Qwen models (via vLLM, see details in [Usage](#usage)).
4549

4650
## TODO List
47-
- [x] Asynchronous feature completed
48-
- [ ] Image Generation Agent to be developed
49-
- [ ] MCP in progress
50-
- [ ] AI4Research Agent to be developed
51-
- [ ] Novel Writing Agent to be developed
51+
52+
* [x] Asynchronous feature completed
53+
* [ ] Image Generation Agent to be developed
54+
* [ ] MCP in progress
55+
* [ ] AI4Research Agent to be developed
56+
* [ ] Novel Writing Agent to be developed
5257

5358
## Installation
5459

5560
### Prepare Environment
56-
```
61+
62+
```bash
5763
# poetry install environment
5864
conda create -n dra python=3.11
5965
conda activate dra
6066
make install
6167

62-
# (Optional) You can also use requirements.txt to setup the environment
68+
# (Optional) You can also use requirements.txt
6369
conda create -n dra python=3.11
6470
conda activate dra
6571
make install-requirements
6672

67-
# If you encounter any issues with Playwright during installation, you can install it manually:
73+
# playwright install if needed
6874
pip install playwright
6975
playwright install chromium --with-deps --no-shell
7076
```
7177

72-
### Put `.env` in the root
78+
### Set Up `.env`
7379

74-
`.env` should be like
75-
```
76-
PYTHONWARNINGS=ignore # ignore warnings
77-
ANONYMIZED_TELEMETRY=false # disable telemetry
78-
HUGGINEFACE_API_KEY=abcabcabc # your huggingface api key
80+
```bash
81+
PYTHONWARNINGS=ignore
82+
ANONYMIZED_TELEMETRY=false
83+
HUGGINEFACE_API_KEY=abcabcabc
7984
OPENAI_API_BASE=https://api.openai.com/v1
80-
OPENAI_API_KEY=abcabcabc # your openai api key
85+
OPENAI_API_KEY=abcabcabc
8186
ANTHROPIC_API_BASE=https://api.anthropic.com
82-
ANTHROPIC_API_KEY=abcabcabc # your anthropic api key
87+
ANTHROPIC_API_KEY=abcabcabc
8388
GOOGLE_APPLICATION_CREDENTIALS=/your/user/path/.config/gcloud/application_default_credentials.json
8489
GOOGLE_API_BASE=https://generativelanguage.googleapis.com
85-
GOOGLE_API_KEY=abcabcabc # your google api key
90+
GOOGLE_API_KEY=abcabcabc
8691
```
8792

88-
```
89-
Note: Maybe you have some problems using google api, here is the reference
90-
1. Get api key from https://aistudio.google.com/app/apikey
93+
Refer to:
94+
95+
* [https://aistudio.google.com/app/apikey](https://aistudio.google.com/app/apikey)
96+
* [https://cloud.google.com/docs/authentication/application-default-credentials?hl=zh-cn](https://cloud.google.com/docs/authentication/application-default-credentials?hl=zh-cn)
9197

92-
2. Get `application_default_credentials.json`. Here is the reference: https://cloud.google.com/docs/authentication/application-default-credentials?hl=zh-cn
93-
# Creating a Google API key requires it to be linked to a project, but the project may also need Vertex AI authorization, so it is necessary to obtain the appropriate credentials.
98+
```bash
9499
brew install --cask google-cloud-sdk
95100
gcloud init
96101
gcloud auth application-default login
97102
```
98103

99104
## Usage
100105

101-
### Deep Researcher for "AI Agent" as an example
102-
```
106+
### Deep Researcher for "AI Agent"
107+
108+
```bash
103109
python examples/run_example.py
104110
```
105111

106-
### GAIA as an example
112+
### GAIA Evaluation Example
107113

108-
```
114+
```bash
109115
# Download GAIA
110-
mkdir data | cd data
116+
mkdir data && cd data
111117
git clone https://huggingface.co/datasets/gaia-benchmark/GAIA
112118

113-
# Run the script in the examples
119+
# Run
114120
python examples/run_gaia.py
115121
```
116122

123+
### Deploying Qwen Models via vLLM
124+
125+
#### Step 1: Launch the vLLM Inference Service
126+
127+
```bash
128+
nohup bash -c 'CUDA_VISIBLE_DEVICES=0,1 python -m vllm.entrypoints.openai.api_server \
129+
--model /input0/Qwen3-32B \
130+
--served-model-name Qwen \
131+
--host 0.0.0.0 \
132+
--port 8000 \
133+
--max-num-seqs 16 \
134+
--enable-auto-tool-choice \
135+
--tool-call-parser hermes \
136+
--tensor_parallel_size 2' > vllm_qwen.log 2>&1 &
137+
```
138+
139+
Update `.env`:
140+
141+
```bash
142+
QWEN_API_BASE=http://localhost:8000/v1
143+
QWEN_API_KEY="abc"
144+
```
145+
146+
#### Step 2: Launch the Agent Service
147+
148+
```bash
149+
python main.py
150+
```
151+
152+
Example command:
153+
154+
```bash
155+
Use deep_researcher_agent to search the latest papers on the topic of 'AI Agent' and then summarize it.
156+
```
157+
117158
## Experiments
159+
118160
We evaluated our agent on the GAIA validation set and achieved state-of-the-art performance on May 10th.
161+
119162
<p align="center">
120163
<img src="./docs/gaia_benchmark.png" alt="GAIA Example Result" width="700"/>
121164
</p>
122165

166+
## Questions
167+
168+
### 1. About Qwen Models
169+
170+
Our framework now supports:
171+
172+
* qwen2.5-7b-instruct
173+
* qwen2.5-14b-instruct
174+
* qwen2.5-32b-instruct
175+
176+
Update your config:
177+
178+
```toml
179+
model_id = "qwen2.5-7b-instruct"
180+
```
181+
182+
### 2. Browser Use
183+
184+
If problems occur, reinstall:
185+
186+
```bash
187+
pip install "browser-use[memory]"==0.1.48
188+
pip install playwright
189+
playwright install chromium --with-deps --no-shell
190+
```
191+
192+
### 3. Sub-Agent Calling
193+
194+
Function-calling is now supported natively by GPT-4.1 / Gemini 2.5 Pro. Claude-3.7-Sonnet is also recommended.
195+
123196
## Acknowledgement
124-
DeepResearchAgent is primarily inspired by the architecture of smolagents. The following improvements have been made:
125-
- The codebase of smolagents has been modularized for better structure and organization.
126-
- The original synchronous framework has been refactored into an asynchronous one.
127-
- The multi-agent setup process has been optimized to make it more user-friendly and efficient.
128197

129-
We would like to express our gratitude to the following open source projects, which have greatly contributed to the development of this work:
130-
- [smolagents](https://github.com/huggingface/smolagents) - A lightweight agent framework.
131-
- [OpenManus](https://github.com/mannaandpoem/OpenManus) - An asynchronous agent framework.
132-
- [browser-use](https://github.com/browser-use/browser-use) - An AI-powered browser automation tool.
133-
- [crawl4ai](https://github.com/unclecode/crawl4ai) - A web crawling library for AI applications.
134-
- [markitdown](https://github.com/microsoft/markitdown) - A tool for converting files to Markdown format.
198+
DeepResearchAgent is inspired by and improved upon:
135199

136-
We sincerely appreciate the efforts of all contributors and maintainers of these projects for their commitment to advancing AI technologies and making them available to the wider community.
200+
* [smolagents](https://github.com/huggingface/smolagents)
201+
* [OpenManus](https://github.com/mannaandpoem/OpenManus)
202+
* [browser-use](https://github.com/browser-use/browser-use)
203+
* [crawl4ai](https://github.com/unclecode/crawl4ai)
204+
* [markitdown](https://github.com/microsoft/markitdown)
137205

138206
## Contribution
139207

140-
Contributions and suggestions are welcome! Feel free to open issues or submit pull requests to improve the project.
208+
Contributions and suggestions are welcome! Feel free to open issues or submit pull requests.
141209

142210
## Cite
143-
```
211+
212+
```bibtex
144213
@misc{DeepResearchAgent,
145214
title = {`DeepResearchAgent`: A Hierarchical Multi-Agent Framework for General-purpose Task Solving.},
146215
author = {Wentao Zhang, Ce Cui, Yang Liu, Bo An},
@@ -149,25 +218,8 @@ Contributions and suggestions are welcome! Feel free to open issues or submit pu
149218
}
150219
```
151220

152-
## Questions
221+
---
153222

154-
### 1. About Qwen models
155-
Our framework now supports local Qwen models, including qwen2.5-7b-instruct, qwen2.5-14b-instruct, and qwen2.5-32b-instruct.
156-
```
157-
# Configure your config file to use qwen's model
158-
model_id = "qwen2.5-7b-instruct"
159-
```
160-
161-
### 2. About browser use
162-
If you are having problems with your browser, please reinstall the browser tool.
163-
```
164-
pip install "browser-use[memory]"==0.1.48
165-
166-
# install playwright
167-
pip install playwright
168-
playwright install chromium --with-deps --no-shell
169-
```
223+
### 🇨🇳 中文版说明文档
170224

171-
### 3. About calling for sub agents
172-
I’ve found that both OpenAI and Google models are strictly trained for function calling, which means they no longer use JSON outputs to invoke sub-agents. Therefore, I recommend using Claude-3.7-Sonnet as the planning agent whenever possible.
173-
This issue has been fixed. The planning agent can now call the sub-agents directly, so you can use gpt-4.1 or gemini-2.5-pro as the planning agent.
225+
如果你更习惯阅读中文说明文档,请查阅 [README.zh.md](./README.zh.md)

0 commit comments

Comments
 (0)