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之间流转(流程图)及控制变量

image

posted @ 2025-11-25 14:44  向着朝阳  阅读(15)  评论(0)    收藏  举报