DeerFlow源码分析
目录
背景和价值
DeerFlow多智能体系统解析
1. DeerFlow有哪些Agent,以及定义
DeerFlow基于LangGraph构建的多智能体协作系统,主要包含以下核心Agent:
| Agent类型 | 定义 | 主要职责 |
|---|---|---|
| 协调器(Coordinator) | 系统入口点,领导者 | 接收用户输入,处理简单问候/拒绝不当请求,将任务转交给规划器 |
| 规划者(Planner) | 系统参谋部 | 将宏观问题分解为子任务,制定研究计划,判断是否需要背景调查 |
| 研究员(Researcher) | 研究团队核心 | 通过网络搜索、爬虫等工具收集信息,确保数据质量 |
| 程序员(Coder) | 研究团队技术专家 | 执行Python代码进行数据处理、统计分析、运行模拟 |
| 报告员(Reporter) | 最终成果输出者 | 整合所有信息,生成结构化、人类可读的报告/播客/演示文稿 |
| research_team决策跳转逻辑 | 总结节点 | 无调研计划 / 计划无步骤 ,所有步骤均已执行完成等 |
research_team-> continue_to_running_research_team 函数返回节点的判断逻辑
| 节点 | 类别 | 具体触发场景 | 核心业务目的 |
|---|---|---|---|
| planner | 计划异常 | 1. 全局状态中current_plan为None(无调研计划);2. current_plan存在但steps列表为空(计划无步骤) |
跳转到规划师节点,重新生成包含有效步骤的调研计划,为流程推进提供依据 |
| planner | 流程收尾 | 调研计划中所有步骤的execution_res均有值(无论执行成功/失败,所有步骤已完成) |
跳转到规划师节点,由规划师触发后续收尾流程(如生成最终调研报告、结束调研任务) |
| planner | 兜底防御 | 1. 遍历步骤列表后未找到任何未完成的步骤(与流程收尾场景形成双重兜底); 2. 找到的未完成步骤类型既非 StepType.RESEARCH也非StepType.PROCESSING;3. 函数执行到最后一行无其他匹配分支(终极兜底) |
1. 避免因数据结构错误、判断逻辑异常导致流程卡死; 2. 由规划师处理无法识别的步骤类型或异常分支,保障流程稳定性 |
| researcher | 调研执行 | 找到第一个未完成的步骤,且该步骤的类型为StepType.RESEARCH |
跳转到研究员节点,由研究员执行调研类步骤(调用搜索/爬取工具、收集数据等) |
| coder | 数据处理 | 找到第一个未完成的步骤,且该步骤的类型为StepType.PROCESSING |
跳转到编码师节点,由编码师执行数据处理类步骤(如生成分析脚本、处理结构化数据等) |
💡 从知识库[3][6]可知:DeerFlow采用"协调器→规划器→研究团队→报告员"的层级协作模式,研究团队包含研究员和程序员两个专业角色。
2. Agent之间流转(流程图)及控制变量


浙公网安备 33010602011771号