一、项目概览
DeepResearchAgent是由SkyworkAI团队开发的分层多智能体框架,其设计目标是通过智能体协作解决复杂研究任务和通用问题。该框架在GAIA基准测试中取得SOTA成绩(2025年5月),支持OpenAI、Anthropic、Google等主流LLM,并提供本地模型集成方案。
架构设计
采用双层架构模式:
├── Top-Level Planning Agent # 顶层规划代理
│ ├── 任务分解
│ ├── 智能体调度
│ └── 流程协调
└── Specialized Agents # 专用智能体
├── Deep Analyzer # 深度分析器
├── Deep Researcher # 深度研究员
└── Browser Use Agent # 浏览器控制代理
二、快速入门
环境配置
# 使用conda创建环境
conda create -n dra python=3.11
conda activate dra
# 安装依赖
make install # 使用poetry安装
# 或
make install-requirements # 使用requirements.txt
# 浏览器驱动安装
playwright install chromium --with-deps
配置文件示例(.env)
OPENAI_API_KEY="sk-xxx" # OpenAI密钥
GOOGLE_API_KEY="gcp-xxx" # Google密钥
PYTHONWARNINGS=ignore # 禁用Python警告
启动本地模型服务
# 使用vLLM启动Qwen服务
CUDA_VISIBLE_DEVICES=0,1 python -m vllm.entrypoints.openai.api_server \
--model /path/Qwen3-32B \
--served-model-name Qwen \
--port 8000 \
--tensor_parallel_size 2
三、应用场景
场景1:学术研究自动化
# examples/run_example.py
from agent.deep_researcher import DeepResearcher
researcher = DeepResearcher(llm="gpt-4.1")
report = await researcher.research(
topic="大语言模型安全对齐技术",
depth=2, # 研究深度级别
sources=["arxiv", "google scholar"]
)
print(report.to_markdown())
该场景实现:
- 自动检索近3年顶会论文
- 提取关键创新点生成对比表格
- 识别技术趋势并绘制时间线
场景2:GAIA基准测试
# examples/run_gaia.py
from evaluation.gaia_scorer import GAIAEvaluator
evaluator = GAIAEvaluator(
dataset_path="data/GAIA",
agent_config="configs/gaia.toml"
)
results = evaluator.run_benchmark(level="L3")
print(f"准确率:{results.accuracy}%")
测试结果包含:
- 多模态数据处理能力
- 复杂推理链准确率
- 实时信息检索效果
四、核心设计与实现
1. 异步任务引擎
# src/base/async_multistep_agent.py
class AsyncController:
async def dispatch(self, task):
"""任务分发逻辑"""
workers = [self._create_worker(t) for t in decompose(task)]
return await asyncio.gather(*workers)
def _create_worker(self, subtask):
match subtask.type:
case "research": return DeepResearcher(**subtask.params)
case "analysis": return DeepAnalyzer(**subtask.params)
case "browse": return BrowserAgent(**subtask.params)
2. 安全执行沙箱
# tools/python_interpreter.py
class SandboxedExecutor:
__allowed_modules = {"math", "numpy", "datetime"} # 白名单
__restricted_builtins = {"open", "__import__"} # 禁用函数
def execute(self, code):
with ResourceLimiter(max_memory="512MB", timeout=30):
return restricted_exec(code, globals_)
3. 模型适配层
# models/litellm.py
class UnifiedLLM:
def __init__(self, provider):
self.adapter = self._get_adapter(provider)
def _get_adapter(self, provider):
return {
"openai": OpenAIModel,
"anthropic": ClaudeModel,
"google": GeminiModel,
"qwen": QwenModel
}[provider]
五、关键创新点
- 动态任务分解算法
def decompose(task):
# 基于LLM的实时任务拆分
planner = Planner(model="gpt-4.1")
return planner.generate_plan(task)
- 混合推理引擎
符号推理 → 神经网络推理 → 外部验证
↘ 知识图谱检索 ↙
- 自适应浏览器控制
# tools/auto_browser.py
async def smart_scroll(page):
"""根据页面布局智能滚动"""
while not page.is_end:
if page.has_pagination:
await page.click_next()
else:
await page.scroll(distance="80%")
六、开发实践示例
自定义智能体开发
# src/agent/custom_agent.py
@register_agent("finance_analyzer")
class FinanceAgent(AgentBase):
def __init__(self, llm):
self.tools = [
StockDataTool(),
ReportParser(),
RatioCalculator()
]
async def analyze(self, report):
"""财务报告分析"""
pipeline = AnalysisPipeline([
("extract", self.extract_key_data),
("calculate", self.compute_ratios),
("compare", self.benchmark_analysis)
])
return await pipeline.execute(report)
配置管理示例
# configs/custom_config.yaml
agents:
planner:
model: "gemini-2.5-pro"
temperature: 0.3
researcher:
max_depth: 3
allowed_sources: ["arxiv", "ieee"]
tools:
browser:
headless: true
timeout: 120