DeepResearchAgent 代码库逻辑结构总结

项目概述

DeepResearchAgent 是一个深度研究智能体框架,提供了多种智能体实现、工具集成和配置管理功能,支持研究任务的自动化和智能化处理。

核心目录结构

1. 配置文件 (configs/)

存放不同场景的配置文件,包括示例配置和针对特定任务的配置:

  • config_example.toml: 示例配置模板
  • config_gaia.toml: GAIA 基准测试配置
  • config_general.toml: 通用配置
  • config_hle.toml: HLE 任务配置
  • config_mcp.toml: MCP 相关配置
  • config_qwen.toml: Qwen 模型配置

2. 文档 (docs/)

项目文档和资源文件:

  • architecture.png: 架构图
  • gaia_benchmark.png: GAIA 基准测试示意图
  • python_interpreter_sandbox.md: Python 解释器沙箱说明

3. 示例代码 (examples/)

包含不同场景下的运行示例:

  • run_example.py: 示例运行脚本
  • run_gaia.py: GAIA 任务运行脚本
  • run_general.py: 通用任务运行脚本
  • run_hle.py: HLE 任务运行脚本
  • run_mcp.py: MCP 任务运行脚本

4. 源代码 (src/)

4.1 智能体模块 (agent/)

实现不同类型的智能体:

  • agent.py: 基础智能体类
  • browser_use_agent/: 浏览器使用智能体
  • deep_analyzer_agent/: 深度分析智能体
  • deep_researcher_agent/: 深度研究智能体
  • general_agent/: 通用智能体
  • planning_agent/: 规划智能体
  • reformulator.py: 重构器
4.2 基础模块 (base/)

基础抽象类和通用实现:

  • async_multistep_agent.py: 异步多步智能体
  • code_agent.py: 代码智能体
  • multistep_agent.py: 多步智能体
  • prompts/: 提示词模板
  • tool_calling_agent.py: 工具调用智能体
4.3 配置模块 (config/)

配置管理:

  • cfg.py: 配置处理类
4.4 数据集模块 (dataset/)

数据集处理:

  • huggingface.py: HuggingFace 数据集集成
4.5 异常处理 (exception/)

自定义异常类:

  • error.py: 错误定义
4.6 日志模块 (logger/)

日志和监控:

  • logger.py: 日志工具
  • monitor.py: 监控工具
4.7 MCP 模块 (mcp/)

MCP (可能是某种通信协议或服务) 相关实现:

  • adapter.py: 适配器
  • client.py: 客户端
  • mcpadapt.py: MCP 适配
  • server.py: 服务器
4.8 内存模块 (memory/)

内存管理:

  • memory.py: 内存处理
4.9 指标模块 (metric/)

评估指标:

  • gaia_scorer.py: GAIA 任务评分器
4.10 模型模块 (models/)

模型集成和管理:

  • base.py: 基础模型类
  • hfllm.py: HuggingFace LLM 集成
  • litellm.py: LiteLLM 集成
  • message_manager.py: 消息管理器
  • models.py: 模型注册和管理
  • openaillm.py: OpenAI LLM 集成
  • restful.py: RESTful API 模型
  • amazonllm.py: Amazon LLM 集成
4.11 代理模块 (proxy/)

代理服务:

  • local_proxy.py: 本地代理
4.12 工具模块 (tools/)

各种工具实现:

  • archive_searcher.py: 档案搜索器
  • auto_browser.py: 自动浏览器
  • browser/: 浏览器工具
  • custom_browser.py: 自定义浏览器
  • deep_analyzer.py: 深度分析器
  • deep_researcher.py: 深度研究器
  • default_tools.py: 默认工具
  • executor/: 执行器
  • file_reader.py: 文件读取器
  • final_answer.py: 最终答案工具
  • markdown/: Markdown 工具
  • planning.py: 规划工具
  • python_interpreter.py: Python 解释器
  • search/: 搜索工具
  • tool_validation.py: 工具验证
  • tools.py: 工具注册
  • web_fetcher.py: 网页获取器
  • web_searcher.py: 网页搜索器
4.13 工具类 (utils/)

通用工具函数:

  • agent_types.py: 智能体类型定义
  • function_utils.py: 函数工具
  • image_utils.py: 图像工具
  • path_utils.py: 路径工具
  • singleton.py: 单例模式
  • token_utils.py: 令牌工具
  • utils.py: 通用工具
4.14 源代码结构可视化

以下是src/目录下主要模块的结构关系图:

src/
agent/
base/
config/
dataset/
exception/
logger/
mcp/
memory/
metric/
models/
proxy/
tools/
utils/
agent.py
browser_use_agent/
deep_analyzer_agent/
deep_researcher_agent/
general_agent/
planning_agent/
reformulator.py
async_multistep_agent.py
code_agent.py
multistep_agent.py
prompts/
tool_calling_agent.py
base.py
hfllm.py
litellm.py
message_manager.py
models.py
openaillm.py
restful.py
amazonllm.py
archive_searcher.py
auto_browser.py
browser/
custom_browser.py
deep_analyzer.py
deep_researcher.py
default_tools.py
executor/
file_reader.py
final_answer.py
markdown/
planning.py
python_interpreter.py
search/
tool_validation.py
tools.py
web_fetcher.py
web_searcher.py
4.15 模块依赖关系

以下是核心模块间的主要依赖关系图:

Core_Modules
agent/
base/
tools/
models/
utils/
关键组件说明
  • agent/: 包含各类智能体实现,是系统的核心执行单元,依赖base提供的基础接口和tools提供的功能模块
  • base/: 提供基础抽象类和通用实现,为其他模块提供统一接口规范
  • models/: 集成多种LLM模型,为智能体提供语言理解和生成能力
  • tools/: 提供丰富的工具集,包括浏览器、代码解释器、搜索等,是智能体与外部交互的主要途径
  • utils/: 提供通用工具函数,为其他所有模块提供基础支持
4.16 组件交互流程

以下是智能体执行任务时的核心组件交互时序图:

智能体(agent/) 工具集(tools/) 模型服务(models/) 通用工具(utils/) 内存存储(memory/) User 初始化配置与日志 加载历史上下文 任务规划与分解 调用工具(如浏览器/代码解释器) 使用路径/函数工具 请求LLM能力(如文本生成) 令牌计数/格式处理 返回处理结果 返回工具执行结果 存储中间结果 loop [执行子任务] 生成最终回答 保存任务结果 返回最终结果 智能体(agent/) 工具集(tools/) 模型服务(models/) 通用工具(utils/) 内存存储(memory/) User
核心工作流程说明
  1. 初始化阶段:智能体通过utils模块完成配置加载和日志初始化,同时从memory模块读取历史上下文
  2. 任务规划:智能体内部进行任务分解和规划
  3. 工具执行循环
    • 智能体根据任务需求调用tools模块中的具体工具
    • 工具使用utils模块提供的通用功能
    • 复杂任务通过models模块调用LLM能力
    • 执行结果返回给智能体并存储到memory
  4. 结果生成:所有子任务完成后,智能体调用models模块生成最终回答
  5. 结果存储与返回:最终结果保存到memory并返回给用户
4.17 分层架构设计

以下是系统的分层架构图,展示了模块间的垂直组织关系:

Infrastructure Layer
Support Layer
Core Logic Layer
Interface Layer
Common Utils (utils/)
Exception Handler (exception/)
Metrics Monitor (metric/)
Memory Management (memory/)
Config System (config/)
Logger System (logger/)
Task Planning
Reasoning Engine
Tool Execution
Model Integration (models/)
Agent API (agent/)
Tools API (tools/)
分层说明
  • 接口层:提供对外服务接口,包括智能体和工具的访问入口
  • 核心逻辑层:实现系统核心功能,包括任务规划、推理引擎和模型集成
  • 支撑层:提供内存管理、配置和日志等支撑服务
  • 基础设施层:提供通用工具、异常处理和指标监控等基础能力
4.19 补充模块说明
数据集模块 (dataset/)
  • 功能:集成HuggingFace等数据集,为模型训练和评估提供数据支持
  • 核心文件:huggingface.py - 实现HuggingFace数据集的加载和预处理
  • 依赖关系:依赖utils模块进行数据格式转换和路径处理
代理模块 (proxy/)
  • 功能:提供本地代理服务,支持网络请求转发和安全访问控制
  • 核心文件:local_proxy.py - 实现本地HTTP代理功能
  • 使用场景:在web_fetcher和web_searcher工具中用于网络请求转发
MCP模块 (mcp/)
  • 功能:提供多智能体通信协议支持,实现智能体间的消息传递和协作
  • 核心文件
    • server.py - MCP服务器实现
    • client.py - MCP客户端实现
    • adapter.py - 协议适配层
  • 应用场景:多智能体协同完成复杂研究任务时的通信协调
4.18 数据流程图

以下是系统中数据在各模块间的流动路径和处理过程:

Data Output
Data Storage
Data Processing
Data Input
User Output
Metric Data (metric/)
Memory (memory/)
Logs (logger/)
Agent (agent/)
Toolset (tools/)
Model Services (models/)
Config System (config/)
User Input
Config Files (configs/)
External Data (web_fetcher/)
数据流程说明
  1. 数据输入:系统接收用户输入、配置文件和外部数据(如网页内容)
  2. 配置处理:配置系统读取并解析配置文件,为智能体和模型提供参数
  3. 核心处理
    • 智能体接收用户输入并调用工具集
    • 工具集获取外部数据并请求模型服务
    • 模型服务处理后将结果返回给工具和智能体
  4. 数据存储
    • 内存模块保存任务上下文和中间结果
    • 日志系统记录各模块运行状态
  5. 数据输出:智能体生成最终结果返回给用户,日志数据用于指标分析

5. 测试代码 (tests/)

单元测试和集成测试:

  • test_analyzer.py: 分析器测试
  • test_browser_use.py: 浏览器使用测试
  • test_dataset.py: 数据集测试
  • test_local_python_executor.py: 本地 Python 执行器测试
  • test_mdconverter.py: Markdown 转换器测试
  • test_models.py: 模型测试
  • test_python_interpreter.py: Python 解释器测试
  • test_researcher.py: 研究器测试
  • test_web_fetcher.py: 网页获取器测试
  • test_web_searcher.py: 网页搜索器测试
  • tmp.py: 临时测试文件

关键文件说明

  • main.py: 项目入口点
  • Makefile: 构建和运行脚本
  • poetry.lock & pyproject.toml: Python 依赖管理
  • requirements.txt: 依赖列表
  • .env.template: 环境变量模板
Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐