资讯详情

资讯详情

OpenRAG Agent Flow拆解:聊天核心流程的8大组件逐一解析

OpenRAG Agent Flow拆解聊天核心流程的8大组件逐一解析【免费下载链接】openragOpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch.项目地址: https://gitcode.com/GitHub_Trending/open/openragOpenRAG 是一个开箱即用的 RAG检索增强生成平台基于 Langflow、Docling 和 OpenSearch 三大开源项目构建。你在 OpenRAG 网页端发起的每一轮 Chat 对话背后都在运行一条名为OpenRAG OpenSearch Agent的 Agent Flow。这条流程由 8 大核心组件协同完成接收消息 → 检索知识库 → 生成回答的全过程。本文将带你逐一拆解 OpenRAG Agent Flow 的每个组件、连线逻辑和可调参数帮助你快速理解并定制这条 RAG 聊天流水线。为什么值得拆 OpenRAG 的聊天流程对新手来说RAG 系统常被形容为黑盒提问、等几秒、出答案中间发生了什么一无所知。而 OpenRAG 的最大亮点恰恰是全链路透明——它的聊天 Agent 就是一个可以用可视化编辑器打开、拖拽修改的 Langflow 流程每个组件Agent、向量库、Embedding、MCP 工具都可以单独编辑参数工具调用过程比如search_documents会在聊天界面直接展示可点开查看详细日志改坏了随时可以一键Restore flow恢复出厂配置。想先跑起来再看源码克隆仓库后按 README.md 中的 Docker 方式启动即可克隆地址https://gitcode.com/GitHub_Trending/open/openrag默认使用 Docker Compose 编排 Langflow、OpenSearch、Docling 等容器。8大组件全景图打开流程定义文件 flows/openrag_agent.json你可以看到这条 Agent Flow 的完整接线图。整体数据流如下Chat Input ──► Prompt Template ──► Agent ──► Chat Output ▲ │ Text Input ──► Prompt Template ├─► MCP ToolsURL 抓取工具 │ ├─► OpenSearch 向量库检索工具 └─► OpenSearch 向量库◄─ Embedding Model OpenAI 兼容 LLM ──► Agent语言模型端口下面按数据流向从第 1 个组件开始逐个拆解。组件1Chat Input —— 流程的起点Chat Input聊天输入组件负责接收你在网页端发出的聊天消息是整个 Agent Flow 的触发器。它把用户消息交给Agent组件处理并携带session_id等上下文信息保证多轮对话的历史连贯性。对应端口Agent 的Input端口关键参数should_store_message默认开启消息会落库到聊天历史。 小细节组件里的sender默认为User、Chat Output的sender默认为AI这就是聊天界面里头像区分你和机器人的来源。组件2Text Input Prompt Template —— 知识过滤与提示词组装这一对组件负责在消息进入 Agent 前做两件事Text Input读取 Langflow 全局变量OPENRAG-QUERY-FILTER。如果你在 OpenRAG 里设置了知识过滤器比如只允许搜索产品文档标签这个变量就会包含过滤表达式限定 Agent 能访问的知识范围未设置过滤器时变量为空Agent 可访问全部知识。Prompt Template把过滤条件和聊天输入拼装成结构化提示词This is Knowledge filter - use it as a context of what to search on the database, unless its empty: {filter} Chat input: {input}同时Text Input 还会把过滤表达式传给OpenSearch 向量库组件的Search Filters端口——也就是说过滤器既约束怎么问也约束能搜什么双保险。组件3Agent —— 整条流程的大脑Agent组件是整条 OpenRAG Agent Flow 的明星。它拿到拼装好的提示词后基于Agent Instructions系统提示词和挂接的工具自主决策判断你的问题是否需要外部知识→ 调用 OpenSearch 向量库检索判断消息里是否包含URL→ 调用 MCP Tools 抓取网页并存入知识库判断需要做简单计算 → 调用计算器工具否则直接用语言模型基于自身知识回答。流程定义里的关键参数参数默认值作用max_iterations15工具调用最大轮数防止死循环n_messages100携带的历史消息数streamtrue流式输出回答打字机效果add_current_date_tooltrue内置当前日期工具add_calculator_tooltrue内置计算器工具Agent 的工作机制详见官方文档 docs/docs/core-components/chat.mdx其中还收录了Agent 与普通 LLM 的区别的完整说明。组件4Language Model —— 驱动 Agent 的引擎OpenAI 兼容 LLMLanguage Model 组件连接到 Agent 的Language Model端口提供推理与文本生成能力。值得注意的是OpenRAG 的 Langflow 内部不保存任何上游模型厂商的密钥组件实际指向 OpenRAG 的 LLM 代理OPENRAG_LLM_BASE_URL/OPENRAG_LLM_TOKEN由 OpenRAG 统一鉴权转发。这个设计带来一个实用好处在 Settings 里切换语言模型Agent 行为立刻改变无需改动流程本身。回答偏题或深度不够时换一个更强的模型往往立竿见影。组件5Embedding Model —— 语义检索的钥匙Embedding Model组件OpenAI 兼容向量模型源码见 custom_components/openrag/openai_compatible_embedding.py负责把你的提问转成向量。⚠️新手最容易踩的坑这里的 Embedding 模型必须与文档入库时使用的模型完全一致模型名和维度都要对齐。模型不匹配会导致相似度搜索质量骤降Agent 检索到一堆不相关的文档回答自然就跑偏。OpenRAG 在设置页会帮你校验这一点。组件6OpenSearch 向量库 —— 检索工具本体OpenSearch多模态多嵌入向量库组件源码见 custom_components/openrag/opensearch_multimodal.py是挂载在 AgentTools端口上的核心检索工具暴露search_documents等动作index_name指向你的 OpenSearch 知识库索引number_of_results默认返回 Top 10 相关文档片段filter_expression接收组件 2 传入的知识过滤表达式认证走 JWTJWT变量保证只有合法会话才能检索。知识库里存了什么就是你在 Knowledge 页面看到的文档——由 Docling 解析 PDF/DOCX/PPT 等格式后切块、嵌入并存入 OpenSearchAgent 并非每次提问都会检索——只有它判断知识库里可能有答案时才会真正调用这个工具。聊天界面上的Function Call: search_documents卡片就是这次调用的可视化凭证。组件7MCP Tools —— 网页内容的抓取桥梁MCP Tools组件连接到 Langflow 的Starter ProjectMCP 服务器把OpenSearch URL Ingestion流程当作工具暴露给 Agent。当你把某个 URL 直接丢进聊天框时Agent 检测到 URL调用该 MCP 工具URL 抓取流程拉取网页内容、解析、嵌入并写入 OpenSearch 知识库Agent 基于刚入库的网页内容作答。这意味着 OpenRAG 的聊天天然支持边聊边喂新资料而不需要你手动去上传文件。想接入更多外部能力数据库查询、内部 API 等也可以在这里挂载其他 MCP 服务器。组件8Chat Output —— 把答案送回你的屏幕Chat Output组件挂在 Agent 的Output端口负责把 Agent 生成的响应以聊天消息形式渲染回网页端。它开启should_store_message后会把回答写入会话历史配合组件 1 的输入落库构成完整的对话持久化闭环对应后端 src/services/chat_service.py 的持久化逻辑。data_template参数{text}决定了最终输出的消息格式一般保持默认即可。彩蛋Calculator 组件 —— 隐藏的计算器工具除了上述 8 大组件流程里还藏着一个Calculator Component一个安全沙箱内的四则运算计算器用ast模块解析表达式杜绝任意代码执行。Agent 遇到 3 的平方乘以 4 再加 10 等于多少 这类问题时会调用它而不是硬算——这也是add_calculator_tool默认开启的意义。如何动手定制你的 Agent Flow看完拆解上手修改只需三步在 OpenRAG 网页端点击Settings → Edit in Langflow进入可视化编辑器解锁Unlock流程后编辑组件参数——比如修改 Agent Instructions、更换模型、调整number_of_results如果误改在 Settings 页点击Restore flow一键恢复出厂。运行时临时微调不永久改变配置可以用 Langflow 的tweaks机制官方说明见 docs/docs/core-components/agents.mdx。总结#组件一句话职责1Chat Input接收用户消息触发流程2Text Input Prompt Template注入知识过滤条件组装提示词3Agent决策中枢选工具、控轮数4Language ModelLLM 引擎经 OpenRAG 代理鉴权5Embedding Model提问向量化须与入库模型一致6OpenSearch 向量库Top-K 文档检索工具7MCP ToolsURL 抓取入知识库工具8Chat Output流式渲染回答并持久化OpenRAG 把RAG 聊天这件听起来复杂的事拆解成了 8 个各司其职、连线清晰、随时可改的组件。理解了这条 Agent Flow你就掌握了从提示词、检索、模型到工具调用的完整 RAG 链路——下一步不妨打开 Langflow 编辑器亲手改掉 Agent 的一句话指令看看回答风格的即时变化。【免费下载链接】openragOpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch.项目地址: https://gitcode.com/GitHub_Trending/open/openrag创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →