天工DeepResearchAgent 代码库逻辑结构总结
DeepResearchAgent 是一个深度研究智能体框架,提供了多种智能体实现、工具集成和配置管理功能,支持研究任务的自动化和智能化处理。
·
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/目录下主要模块的结构关系图:
4.15 模块依赖关系
以下是核心模块间的主要依赖关系图:
关键组件说明
- agent/: 包含各类智能体实现,是系统的核心执行单元,依赖base提供的基础接口和tools提供的功能模块
- base/: 提供基础抽象类和通用实现,为其他模块提供统一接口规范
- models/: 集成多种LLM模型,为智能体提供语言理解和生成能力
- tools/: 提供丰富的工具集,包括浏览器、代码解释器、搜索等,是智能体与外部交互的主要途径
- utils/: 提供通用工具函数,为其他所有模块提供基础支持
4.16 组件交互流程
以下是智能体执行任务时的核心组件交互时序图:
核心工作流程说明
- 初始化阶段:智能体通过utils模块完成配置加载和日志初始化,同时从memory模块读取历史上下文
- 任务规划:智能体内部进行任务分解和规划
- 工具执行循环:
- 智能体根据任务需求调用tools模块中的具体工具
- 工具使用utils模块提供的通用功能
- 复杂任务通过models模块调用LLM能力
- 执行结果返回给智能体并存储到memory
- 结果生成:所有子任务完成后,智能体调用models模块生成最终回答
- 结果存储与返回:最终结果保存到memory并返回给用户
4.17 分层架构设计
以下是系统的分层架构图,展示了模块间的垂直组织关系:
分层说明
- 接口层:提供对外服务接口,包括智能体和工具的访问入口
- 核心逻辑层:实现系统核心功能,包括任务规划、推理引擎和模型集成
- 支撑层:提供内存管理、配置和日志等支撑服务
- 基础设施层:提供通用工具、异常处理和指标监控等基础能力
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 数据流程图
以下是系统中数据在各模块间的流动路径和处理过程:
数据流程说明
- 数据输入:系统接收用户输入、配置文件和外部数据(如网页内容)
- 配置处理:配置系统读取并解析配置文件,为智能体和模型提供参数
- 核心处理:
- 智能体接收用户输入并调用工具集
- 工具集获取外部数据并请求模型服务
- 模型服务处理后将结果返回给工具和智能体
- 数据存储:
- 内存模块保存任务上下文和中间结果
- 日志系统记录各模块运行状态
- 数据输出:智能体生成最终结果返回给用户,日志数据用于指标分析
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: 环境变量模板
更多推荐



所有评论(0)