系列: RAGFlow v0.25.0 源码深度解析
作者: 耿雨飞
前置知识: 已完成第二十七课"完整 RAG 应用开发实战"的学习
导读
在前面的课程中,我们用 Python SDK 实现了标准的"检索-生成"管道。但真实业务场景往往更复杂——客服系统需要根据用户意图走不同处理分支;研究助手需要先搜索、再提取、最后综合;数据分析需要先生成 SQL、再执行、最后可视化。这些多步骤、有分支、可循环的工作流,靠简单的 RAG 管道无法实现。
RAGFlow 的解决方案是agent/目录——一套完整的Canvas DSL 执行引擎。这个目录包含22 个组件、23 个工具、25 个预置模板,总计约 5000 行核心代码。其设计核心是:有向图执行模型 + 组件/工具双基类体系 + 变量引用数据流。组件处理流程控制(分类、路由、循环),工具封装外部能力(检索、搜索、SQL、代码执行),两者通过 Agent 组件的 Function Calling 协议桥接。
本课将从 DSL 引擎的底层结构开始,逐层深入组件体系和工具集成,最后通过三个真实业务场景展示完整的开发实践。
学习目标
- 理解
agent/canvas.py的Gr