本文档为 RAGFlow 智能体流程系统中所有可用组件提供全面的参考。组件是模块化的构建块,可以连接在一起以创建 AI 工作流。每个组件都有特定的参数、输入、输出和行为,以实现复杂的智能体自动化。
有关使用可视化流程编辑器界面的信息,请参阅流程编辑器使用。有关整体智能体系统架构,请参阅智能体流程系统。
RAGFlow 智能体系统建立在模块化组件架构之上,所有组件都继承自基类,这些基类提供参数验证、输入/输出处理和执行生命周期管理等通用功能。
组件系统遵循一致的模式,每个组件都有一个参数类(继承自ComponentParamBase)和一个执行类(继承自ComponentBase)。
来源:agent/component/base.py34-564 agent/component/generate.py42-84 agent/component/retrieval.py33-57
每个组件遵循以下执行模式
check()方法验证所有必需参数get_input()从上游组件检索数据_run()方法执行组件的主要逻辑来源:agent/component/base.py351-383 agent/canvas.py169-298
这些组件构成任何智能体工作流的基本构建块,并处理主要的 RAG(检索增强生成)操作。
Begin组件是所有智能体工作流的入口点。它管理用户输入、全局参数和初始序言消息。
| 参数 | 类型 | 描述 | 必填 |
|---|---|---|---|
prologue | 字符串 | 向用户显示的欢迎消息 | 是 |
query | list | 输入参数定义 | 否 |
主要功能
来源:agent/component/begin.py agent/component/__init__.py18
Retrieval组件执行知识库搜索和检索操作,支持向量相似度和关键词匹配。
| 参数 | 类型 | 描述 | 必填 |
|---|---|---|---|
kb_ids | list | 要搜索的知识库ID | 否 |
similarity_threshold | 浮点数 | 最小相似度分数 (0-1) | 否 |
keywords_similarity_weight | 浮点数 | 关键词与向量搜索的权重 | 否 |
top_n | 整数 | 要检索的块数量 | 否 |
top_k | 整数 | 检索中的最大 token 数量 | 否 |
rerank_id | 字符串 | 重排序模型ID | 否 |
empty_response | 字符串 | 未找到结果时的响应 | 否 |
tavily_api_key | 字符串 | Web 搜索的 API 密钥 | 否 |
use_kg | 布尔值 | 启用知识图谱检索 | 否 |
检索过程
来源:agent/component/retrieval.py33-136
Generate组件执行基于 LLM 的文本生成,具有可配置的提示、引用和工具调用功能。
| 参数 | 类型 | 描述 | 必填 |
|---|---|---|---|
llm_id | 字符串 | LLM 模型标识符 | 是 |
prompt | 字符串 | 生成提示模板 | 是 |
max_tokens | 整数 | 最大输出 token 数量 | 否 |
temperature | 浮点数 | 采样温度 (0-1) | 否 |
top_p | 浮点数 | 核采样参数 | 否 |
presence_penalty | 浮点数 | 存在惩罚 (-2 到 2) | 否 |
frequency_penalty | 浮点数 | 频率惩罚 (-2 到 2) | 否 |
cite | 布尔值 | 启用引用插入 | 否 |
llm_enabled_tools | list | 可用工具函数 | 否 |
提示变量替换: prompt参数支持使用{variable_name}语法进行变量替换,其中变量可以引用
{component_id}{begin@parameter_key}{answer}来源:agent/component/generate.py42-277
Answer组件处理向用户的最终响应交付,包括流式传输支持和对话历史管理。
来源:agent/component/answer.py agent/component/__init__.py21
这些组件转换、过滤和操作流经工作流的数据。
Categorize组件使用基于 LLM 的分类方法将输入文本分类到预定义类别中。
| 参数 | 类型 | 描述 | 必填 |
|---|---|---|---|
category_description | dict | 包含示例的类别定义 | 是 |
llm_id | 字符串 | 用于分类的 LLM 模型 | 是 |
类别配置: 每个类别都需要
description:类别的文本描述examples:用于分类的训练示例to:用于路由的目标组件ID来源:agent/component/categorize.py23-115
Template组件提供使用 Jinja2 语法的高级文本模板功能,支持组件输出替换。
| 参数 | 类型 | 描述 | 必填 |
|---|---|---|---|
content | 字符串 | Jinja2 模板内容 | 是 |
parameters | list | 模板参数定义 | 否 |
模板功能
来源:agent/component/template.py25-137
Code组件在沙盒环境中执行代码,支持 Python 和 Node.js。
| 参数 | 类型 | 描述 | 必填 |
|---|---|---|---|
lang | 字符串 | 编程语言 (python/nodejs) | 是 |
script | 字符串 | 要执行的代码 | 是 |
arguments | list | 来自组件的输入参数 | 否 |
address | 字符串 | 沙盒服务 URL | 否 |
enable_network | 布尔值 | 允许网络访问 | 否 |
执行环境
来源:agent/component/code.py58-149
这些组件与外部 API 和服务集成,以扩展工作流功能。
提供多种搜索服务集成
| 组件 | 服务 | 关键参数 |
|---|---|---|
Google | 谷歌搜索 | api_key, search_engine_id, top_n |
Bing | Bing 搜索 | subscription_key, top_n |
Baidu | 百度搜索 | top_n |
DuckDuckGo | DuckDuckGo 搜索 | top_n |
Wikipedia | Wikipedia | top_n |
| 组件 | 服务 | 描述 |
|---|---|---|
PubMed | PubMed 数据库 | 医学文献搜索 |
ArXiv | ArXiv 存储库 | 学术论文搜索 |
GoogleScholar | Google 学术 | 引用和论文搜索 |
| 组件 | 服务 | 关键参数 |
|---|---|---|
DeepL | DeepL 翻译 | auth_key, source_lang, target_lang |
BaiduFanyi | 百度翻译 | appid, secret_key, trans_type |
来源:agent/component/__init__.py29-53 agent/component/baidufanyi.py23-97 agent/component/deepl.py21-62
ExeSQL组件支持直接进行数据库查询,并具有自动 SQL 生成和错误恢复功能。
| 参数 | 类型 | 描述 | 必填 |
|---|---|---|---|
db_type | 字符串 | 数据库类型 (mysql/postgresql/mssql) | 是 |
database | 字符串 | 数据库名称 | 是 |
username | 字符串 | 数据库用户名 | 是 |
主机 | 字符串 | 数据库主机 | 是 |
port | 整数 | 数据库端口 | 是 |
password | 字符串 | 数据库密码 | 是 |
loop | 整数 | 最大重试次数 | 否 |
top_n | 整数 | 最大结果行数 | 否 |
SQL 执行过程
来源:agent/component/exesql.py28-156
这些组件管理工作流执行模式和数据流控制。
Switch组件提供基于输入评估的条件路由。
来源:agent/component/switch.py agent/component/__init__.py23
| 组件 | 描述 |
|---|---|
Iteration | 管理集合上的循环执行 |
IterationItem | 表示迭代中的单个项 |
这些组件支持对数据集合进行带循环控制和聚合的处理。
来源:agent/component/iteration.py agent/component/iterationitem.py agent/component/__init__.py51-52
所有组件都通过ComponentParamBase类实现全面的参数验证。
验证方法
check_empty():验证必需的字符串参数check_positive_integer():验证正数值check_decimal_float():验证浮点数范围 (0-1)check_valid_value():对照允许值列表进行验证check_boolean():验证布尔参数来源:agent/component/base.py226-286
组件通过update()方法支持运行时参数更新,实现
来源:agent/component/base.py109-162
系统通过/debug API 端点提供全面的调试功能。
| 调试功能 | 描述 |
|---|---|
| 输入模拟 | 使用模拟输入测试组件 |
| 参数覆盖 | 修改参数进行测试 |
| 输出检查 | 查看组件输出数据 |
| 错误处理 | 捕获并显示执行错误 |
来源:api/apps/canvas_app.py235-257
组件通过多种来源检索输入
来源:agent/component/base.py419-517
组件可以支持流式执行以实现实时响应生成
流式传输主要用于Generate组件,用于向最终用户实时流式传输 LLM 响应。
来源:agent/component/generate.py235-263
组件系统使用动态模块加载进行组件发现
所有可用组件都注册在__all__导出列表中,从而实现画布执行引擎的自动发现。