两者不是同一层的产品:一个是 RAG 引擎,一个是 RAG 引擎级的「企业受控层」。理解了这层差异,后续的对比才有意义。
| 维度 | RAGFlow | g2rain-knowledge |
|---|---|---|
| 自我定位 | 开源 RAG 引擎 + Agent 编排 | G2rain 客服与 Agent 知识库服务 |
| 责任边界 | 文档解析、知识编译、混合检索、Agent 工作流、Chat UI、Sandbox 等端到端覆盖 | 知识接入、版本、审核、发布、检索编排、引用、受控问答;不含 Agent 编排与会话状态 |
| 对外门户 | Web UI + REST API + MCP | POST /knowledge/retrieve 和 POST /knowledge/answer 两个稳定契约 + 运营管理 API |
| 是否独立可用 | 是,自托管一键拉起 | 否,强依赖 G2rain Gateway / IAM / Starter 组织上下文 |
| 技术栈端到端范围 | 模型层到 UI 层 | 仅知识子域;前端在配套的 g2rain-knowledge-app |
| 协议 | Apache 2.0 | Apache 2.0 |
RAGFlow 把一切打包成一个产品;g2rain-knowledge 把自己打包成平台的一个组件,明确「不在本服务内做 Agent 编排、会话状态、模型训练、模型账号、基础设施生命周期」。
api(对外契约)→ biz(领域服务、外部适配器)→ startup(Spring Boot 4.0.5 / JDK 25)。/v1/embeddings、/v1/rerank、/v1/chat/completions(受控问答)。@DataIsolation + 主体上下文 organ_id:组织隔离在入口与每一处查询强制生效。 ┌─ RAGFlow ─────────────────────────────┐ │ DeepDoc · Chunking · Index · Retrieve │ │ Agent Workflow · Sandbox · Chat UI │ │ ES/Infinity · MinIO · MySQL · Redis │ └─────────────── Go 单体 ────────────────┘ ┌─ g2rain 平台尺度 ─────────────────────────────────────────┐ │ Agent Runtime ─→ g2rain-knowledge ─→ 证据/受控回答 │ │ main-shell ─→ g2rain-knowledge-app ─→ 运营流程 │ │ Gateway + IAM + Starter(organ_id 数据隔离 + 入口校验) │ │ MySQL(权威) ┊ Milvus(派生,可重建) ┊ Docling ┊ Model Nexus │ └─────────────────────────────────────────────────────────┘
客观判断:RAGFlow 是「短链路、自托管」的好选择;g2rain-knowledge 是「需要嵌入企业平台、把权限与发布约束前置到知识子域」的选择。把 RAGFlow 直接当成 g2rain-knowledge 的替代,需要先拼回多租户、人工发布和审计闭环。
这是 g2rain-knowledge 差异化最强的一段。
DRAFT ─提交审核→ REVIEWINGREVIEWING ─拒绝→ DRAFTREVIEWING ─通过→ APPROVEDAPPROVED ─发起处理→ PROCESSINGPROCESSING ─成功→ READY_TO_PUBLISHPROCESSING ─失败→ PROCESS_FAILEDREADY_TO_PUBLISH ─人工发布→ PUBLISHEDPUBLISHED ─新版本替换/下线→ DEPRECATEDDEPRECATED ─回滚→ PUBLISHED
关键规则:
PROCESS 任务;审核前不消耗 Embedding、不写 Milvus。searchable 字段由发布命令同步维护,检索侧再次以 MySQL 活动 revision 兜底复核,旧 Entity 没关掉也不会泄露给 Agent。knowledge_id / revision_id / chunk_id / 标题路径 / 页码,否则不进生产。organ_id + idempotency_key 防重复执行,租约过期可安全回收。上述状态机与运营入口并非纸面设计,g2rain-knowledge-app 已提供对应的真实运营界面。以下截图是知识库「版本管理」抽屉的实际运行画面:左侧菜单完整呈现知识内容、内容审核、知识处理、发布管理、效果验证、分类管理、标签管理、回复模板等运营入口;抽屉内展示知识键 g2rain-platform-getting-started、当前线上版本 v1、状态「已发布」、标签 platform_intro,并提供受控原文下载,以及「内容 / 审核 / 处理结果 / 切片」四个查看页签——与文中描述的版本状态机、标签治理和「审核只审源」规则一一对应。截图由部署 g2rain-knowledge v1.0.0 + g2rain-knowledge-app v1.0.0 后采集。

客观说明:g2rain-knowledge v1.0.0 的发布说明也明确,多实例任务的持久输入快照、租约代次和协作取消仍有延期项;下线/对账等完整发布恢复操作仍见开发计划;首期仅支持人工立即发布、回滚和下线,不支持定时发布、自动到期或发布任务。也就是说,受控发布的设计是完整的,但部分并发与灾备场景尚未全部覆盖。
POST /knowledge/answer 设计上把模型当作「带证据的输出器」,而不是「带提示词的对话者」:
organ_id 必须由 Gateway 注入的可信主体上下文派生,调用方不得传 organ_id、revision、collection、Milvus filter、模型、分数阈值或本地文件定位。allTagsCodes/anyTagsCodes 是业务筛选条件,不是权限或隔离依据,未知 code 直接拒绝请求。organ_id && searchable=true)→ MySQL 复核 chunk 未删除 + 活动 revision → Rerank → 证据策略判定。answerable / sources / trace_id:无证据返回 answerable=false;依赖不可用返回 HTTP 503,不伪装成「无知识」,避免 Agent Runtime 据此编造答案。chat/completions;模型只收到「重排后的可信证据 + 服务端模板 + 问题」,调用方不能指定模型或提交 prompt 正文——这是重要的 prompt injection 防线。NO_EVIDENCE」对应「拒绝幻觉、可审计、可追责」的合规诉求。客观说明:g2rain-knowledge 目前没有多步 agentic 检索、思维链推理、知识图谱或代码沙箱能力,也不做可视化 Agent 编排;这些是 RAGFlow 的明显优势区。
这是 g2rain 作为 SaaS 底座最直接的体现:
organ_id 隔离;Starter @DataIsolation 在每条 MySQL / 磁盘 / Milvus 查询上强制生效。organ_id == <trusted_organ_id> && searchable == true,且标签值必须经过服务端校验转义,不允许客户端传 Milvus filter。/basis/authority/resources 下发页面 / 页面元素 / API 端点,运营入口同样受平台 RBAC 控制。g2rain-deploy 在内部网络提供。部署门槛上,RAGFlow 一键更快、更紧凑;运维治理上,g2rain 的依赖与平台职责更清晰地解耦但前置成本更高(需要先把 Gateway / IAM / 部署拓扑搭起来)。这也正是「单体引擎」与「平台子服务」在工程现实上的取舍。
这是 g2rain 作为 SaaS 底座的另一突出面,也是本研究的重点之一。
| 角色 | 代表项目 |
|---|---|
| 平台架构与治理 | g2rain(组织级 README + Profile + ADR + catalog) |
| 身份与企业权限 | g2rain-iam、g2rain-basis |
| 网关 | g2rain-gateway-webflux / g2rain-gateway-webmvc |
| 知识子域 | g2rain-knowledge(后端) + g2rain-knowledge-app(前端运营) |
| Agent 运行时 | g2rain-agent-runtime / g2rain-agent-studio / g2rain-agent-app |
| 前端主壳与模板 | g2rain-main-shell、g2rain-app-template、g2rain-appkit、g2rain-app-cli |
| 模型接入 | g2rain-model-nexus |
| 部署 | g2rain-deploy |
这套矩阵带来的能力:
project.yaml 显式声明每个项目采用的 Profile、基线 Tag 与偏差登记,跨仓库变更须先出 ADR——避免「静默覆盖基线」的常见演化冲突。g2rain-generator-maven-plugin 生成 knowledge_* 表的基础 CRUD;前端 g2rain-app-cli 生成 views、route-map、资源配置——把知识子域的运营页面与后端表绑定。instanceId 隔离。RAGFlow 提供「一条完整的 RAG 流水线」;g2rain-knowledge 提供「企业级 SaaS 底座中、知识子域的受控接口与运营闭环」。前者放在企业后台流程里仍有集成成本,后者把知识治理、发布管控、租户权限、引用追溯和前端运营页面与平台绑成一个整体。
下面建议不替代实测,只作为评估起点:
| 你的优先诉求 | 倾向哪个 |
|---|---|
| 30 分钟内拉起一个能聊文档的 RAG Demo | RAGFlow |
| 内部团队用知识库assistant,成员协作够用即可 | RAGFlow |
| 复杂多跳问题、研究型 Agent 工作流 | RAGFlow |
| 文档密集型(PDF/扫描件/影印件/表格/PPT),看重 OCR 与版面分析 | RAGFlow(DeepDoc 一体化) |
| 知识需要多形态复用(Wiki / 图谱 / 时间线 / 思维导图) | RAGFlow(Knowledge Compilation) |
| 知识必须先「人工审核 + 受控发布 + 可回滚」 | g2rain-knowledge |
| 多租户 SaaS,知识必须按 organ_id 严格隔离 | g2rain-knowledge |
| 模型不能接收 prompt 正文(防 prompt injection / 合规) | g2rain-knowledge |
每条证据必须能落到 知识ID + 版本号 + chunkID + 页码 稳定引用 | g2rain-knowledge |
| 知识要嵌入企业平台 RBAC + 微前端 + Gateway 准入链路 | g2rain-knowledge |
| 需要追溯每次问答的 trace、操作者、revision 与 chunk | g2rain-knowledge |
| 维度 | RAGFlow | g2rain-knowledge |
|---|---|---|
| 产品形态 | 一体化 RAG 引擎 | SaaS 平台内的知识子服务 |
| 后端栈 | Go-native 服务 | Java 25 / Spring Boot 4.0.5 |
| 前端 | 自带 Web UI / Chat | g2rain-knowledge-app(Vue 3 + qiankun 微前端) |
| 文档解析 | DeepDoc(版面/OCR/表格) | Docling Serve |
| 知识结构化产物 | Wiki/Graph/Tree/MindMap/Timeline/Skills | 知识主题 + 版本 + 标签(扁平字典) |
| 检索机制 | 混合检索 + Agentic Retrieval(多档深度) | Embedding + Milvus 召回 + MySQL 复核 + Rerank |
| Agent 编排 | 内置可视化工作流 + MCP + Sandbox | 不参与,由 g2rain-agent-runtime 承担 |
| 多租户隔离 | 工作空间 / 团队成员 | 入口 Gateway + Starter @DataIsolation + organ_id 全链路强制 |
| 权限模型 | 团队 + 资源共享 | 平台 IAM:组织 / 应用授权 / 角色 / 控制域 / 控制单元 / 资源 |
| 知识生命周期 | 上传即处理、可见即可用 | DRAFT → REVIEWING → APPROVED → PROCESSING → READY_TO_PUBLISH → PUBLISHED → DEPRECATED |
| 发布模型 | 系统自动 | 人工发布、人工回滚、人工下线(首期) |
| 权威/派生数据 | 主存在向量库 | MySQL 权威,Milvus 可重建投影 |
| 受控问答 | 知识库驱动的 Chat + Agent 模板 | 必须有证据才调模型,模型只收证据+模板+问题 |
| 引用追溯 | 文本块可视化与防幻觉引用 | knowledge_id / revision_id / chunk_id / 标题路径 / 页码 稳定引用 |
| 部署门槛 | Docker Compose 一键 | 需先建 Gateway / IAM / 部署拓扑 |
| 高可用 | 取决于叠加组件 | 首期 Milvus Standalone,非高可用;MySQL 与 Milvus 责任分离支持索引重建 |
| 治理 | 模块化能力 | Profile + ADR + project.yaml + 基线 Tag,跨仓库变更显式登记 |
| 已知限制 | 多模态 Agent 工具调用扩展有限 | 多实例任务并发/灾备/对账恢复有延期项;首期无定时发布;依赖外部模型服务 |
到目前为止,对比聚焦的是「知识服务」这一项能力。但 RAGFlow 的一个特点是「RAG 引擎 + Agent Workflow」打包在一起,而「knowledge 配合 agent 模块可以更好地为企业提供服务和其他业务能力的接入」正是 g2rain 在这一层的关键差异化——再补一节,看清楚二者在「Agent 模式」上的分野。
RAGFlow 把 Agent 视作 RAG 引擎的延伸能力:以 Knowledge Compilation 的产物(Wiki / Graph / Tree / Mind Map / Timeline / Skills)为知识底座,配上 LLM、Agentic Retrieval、工具节点、MCP、Sandbox 构成可视化工作流。
这种结构的好处是「知识 → Agent」一气呵成;代价是 Agent 必须在 RAGFlow 内编排,业务系统的接入要么靠 MCP 接入、要么靠 Sandbox 写代码, deafult 路径上偏向「以知识为中心扩展」。
g2rain 把 Agent 拆成三件套,并在协作链路上让 knowledge 与业务工具处于平等位置:
| 模块 | 角色 | 与 knowledge 的关系 |
|---|---|---|
g2rain-agent-studio | 运行资料所有者:Agent 画像 + Skill 定义 + Agent-Skill 绑定 + Skill-Tool 绑定 | 把「知识检索」作为 Skill 之一;通过 Skill-Tool 绑定决定何时调 knowledge 工具、何时调 MCP 业务工具 |
g2rain-agent-runtime | 任务执行权威:任务图、节点编排、状态恢复、工具调用记录、SSE 流式进度 | 调用 knowledge 的受信检索契约 POST /knowledge/retrieve;不直读 MySQL/Milvus;不决定活动 revision |
g2rain-agent-app | 业务应用前端:Vue 3 + qiankun 微前端,可被 main-shell 集成或独立运行 | 提供对话界面;权限点、路由、API 端点全部由 /basis/authority/resources 下发 |
三件套之间显式解耦:
Agent Runtime ─查询证据→ g2rain-knowledge (受信检索契约)Agent Runtime ─调用业务→ g2rain-mcp-registry (订单/CRM/工单等 MCP 工具)Agent Runtime ─获取模型→ g2rain-model-nexus (chat / embeddings / rerank)Agent Runtime ─加载能力→ g2rain-agent-studio (Skill + Tool binding) knowledge 不被 Runtime 反向访问底层平台权限:Gateway + IAM + @DataIsolation 全链路贯穿
企业真实场景里,客服 Agent 既需要「依据退款政策给出答案」,也需要「调出订单系统查询用户订单状态」。
后者对应的能力:把企业既有业务系统(订单 / CRM / 工单 / 库存)以 MCP 工具注册到 g2rain-mcp-registry,Agent 通过 Skill 绑定组合知识与业务能力,整个过程在同一套租户隔离、性能域控制、调用追踪下运行。
| 比较点 | RAGFlow | g2rain knowledge + agent 三件套 |
|---|---|---|
| Agent 编排位置 | RAGFlow 引擎内 | 独立的 agent-runtime 服务,knowledge 是其能力源之一 |
| 业务工具接入 | 主要靠 MCP + Sandbox | MCP Registry + Skill-Tool 绑定统一管理,含工具调用记录 |
| 知识 vs 业务的能力平衡 | 知识优先,业务靠 MCP 补 | Skill 显式声明二者:某 Skill 只用知识、某 Skill 跨用业务系统 |
| 任务恢复 | 引擎内重启 | Checkpoint + Resume Record + 工具幂等,避免重放有副作用的工具调用 |
| 事件回传 | 自有 Chat UI / SSE | SSE PROGRESS/RESULT + trace_id 全链路日志,可与平台审计联动 |
| 配置与执行分离 | 混合 | Studio 管配置、Runtime 管执行;分离降低运维耦合 |
| 平台权限链路 | 工作空间成员 | Gateway + IAM + @DataIsolation + organ_id 全链路强制 |
| 多业务系统接入体验 | 主要面向「以知识为中心扩展」 | 知识与业务工具并列于 Skill 资源层 |
knowledge-service-integration-design.md 明确标注截至 2026-10-04「可执行业务和运行闭环尚未完成」。RAGFlow 的 Agent 是「围绕知识库扩展业务能力」的内置工作流;g2rain 的 Agent 是「围绕 Skill-Tool 绑定自由组合知识与业务能力」的受控执行平台。这是 g2rain 作为 AI 原生 SaaS 底座在 Agent 维度上的差异化要点:让企业 Agent 不只是「能聊文档」,而是「能查知识、调业务、留记录、被审计、按租户执行边界」。
把对比放回 G2rain 作为「企业级 AI Native SaaS 平台」的语境下,g2rain-knowledge 的差异化优势不是把 RAGFlow 的每一项能力都做齐,而是把企业级 SaaS 底座必须有的能力下沉到知识子域,并通过 agent 三件套让「查询证据」与「调用业务系统」对 Agent 而言是同一种工具绑定:
organ_id 在网关、Starter、MySQL、Milvus、磁盘上层层强制,不在向量库里另起一套。NO_EVIDENCE,把 prompt injection 与幻觉风险往后退一层。不需要这套「企业受控层」的团队,RAGFlow 的开箱即用与 Agentic Retrieval 体验更直接。需要知识、Agent 与企业组织授权一起演进的团队,g2rain-knowledge 走的是另一条路:把知识从「能跑」推到「能交账」。
本报告结论基于仓内事实与官方文档。生产选型应在一致环境下完成实测:知识体量、文档类型、并发与隔离要求、合规审计要求都应纳入压测与功能验收。
README.md、docs/architecture/overview.md、docs/architecture/knowledge-lifecycle.md、docs/architecture/domain-rules.md、docs/architecture/business-flows.md、docs/architecture/milvus-design.md、docs/api/integration-contracts.md、docs/security/security-boundaries.md、docs/releases/v1.0.0.md、docs/project.yaml。README.md、docs/index.md、docs/project.yaml、docs/architecture/overview.md。README.md、docs/index.md、docs/architecture/overview.md、docs/project.yaml。README.md、docs/index.md、docs/architecture/overview.md。README.md、docs/architecture/overview.md。README.md、docs/comparison.md、docs/overview.md、docs/architecture/knowledge-service-integration-design.md。infiniflow/ragflow)、ragflow.org 首页、官方文档「System Architecture」「Docker Deployment」「Key Features」、ragflow.io HTTP API 文档、ragflow.io v1.0.0-rc1 权限概览。