RAG 框架怎么选?按瓶颈选,别按 star 数选
数据截至 2026-07,价格与限额以各官网为准。
RAG 框架没有”最好的那个”,只有”跟你当前瓶颈对得上的那个”。先搞清楚你的效果卡在解析、检索、评估还是知识关系上,再去挑框架;顺序反过来——先选了一个名气大的框架再回头凑需求——是大多数 RAG 项目返工的起点。
一个很常见的误解是:GitHub star 多的框架 = 更适合我。star 数反映的是关注度和社区活跃度,跟”能不能解决你手上这批扫描版 PDF”没有直接关系。据第三方对比统计,截至 2026 年 1 月的 GitHub star 排名大致是 LangChain 约 12.5 万、Dify 约 11.4 万、RAGFlow 约 7 万、LlamaIndex 约 4.65 万、Haystack 约 2.4 万——这五个项目的差距看起来很大,但它们解决的根本不是同一段问题。以上数字为第三方口径且带明确时间点,现在再看肯定已经变了,具体以各项目仓库当前页面为准。
如果你还不清楚 RAG 本身在干什么,建议先看 RAG 是什么?一文讲清给大模型外挂知识库的原理,本文默认你已经跑通过一个最小的检索问答链路,现在要解决的是”效果不够好,该往哪儿投入”。
一、先定位瓶颈:把失败案例分成四类
选框架之前,请先做一件很朴素的事:从线上或测试集里捞出二三十个回答得不好的问题,逐个看它是坏在哪一环。按第三方实践总结,瓶颈基本能归到下面四类:
- 解析:文档根本没被正确读进来。表格串行、扫描件只提出乱码、PDF 分栏被拉成一行——这类问题下游怎么调都救不回来。
- 检索:文本进来了,但该被召回的那一段没被召回,或者排在了很后面。
- 评估:你其实不知道好不好。改一版参数,凭感觉说”好像好点了”,没有可复现的分数。
- 知识关系:单条文本片段本身没错,但答案需要跨多个文档串起来(谁属于谁、哪版覆盖哪版),扁平的向量检索天然拼不出这种链路。
这四类对应的入手框架并不一样,下面分开讲。判断方法很土但很有效:把召回出来的片段原文打印出来人肉读一遍,答案要用的信息到底在不在里面——在,就是生成或排序的问题;不在,就是检索的问题;连原始文本都是乱的,那就是解析的问题。
二、瓶颈在解析:从 LlamaIndex 或 RAGFlow 入手
如果你的语料是排版规整的 Markdown、Confluence 导出或者纯文本,解析这一段基本不用操心。真正难受的是财报、法律文书、施工图纸说明、扫描版档案这类东西。
RAGFlow 是开源的 RAG 引擎,它被反复提到的强项就是深度文档理解:分块时会尊重文档本身的结构,而不是机械地按固定字符数切;同时内置版面感知解析和知识图谱构建。对扫描版 PDF、财报、版式复杂的法律文书这类传统文本解析器搞不定的语料,它是值得优先试的一个方向。它还带一套低代码界面来配 RAG 工作流,对于不想从头写编排代码的团队门槛低一些。
LlamaIndex 走的是数据优先路线,专注于对私有内容做索引和查询,配套的 LlamaParse 是常被拿来处理复杂文档的组件。相比 LangChain 生态更广但抽象层更厚,LlamaIndex 的 RAG 专用原语更贴身——你想做的事就是”把这批文档索引好、查得准”,那它的 API 形状跟你的意图是对齐的。
可操作的做法:先做一次纯解析对比实验,不接大模型。拿十份最难的文档,分别用现有方案和候选方案跑一遍,只看提取出来的纯文本。表格有没有保持行列对应、标题层级在不在、页眉页脚有没有混进正文——这一步的差距肉眼就能看出来,比端到端跑问答再猜原因高效得多。
三、瓶颈在检索:LangChain、Haystack、Cognita 的旋钮更多
如果原文提得挺干净,但就是召不回来,那你需要的是可调项多的框架。嵌入模型换哪个、要不要混合检索(关键词 + 向量)、要不要加重排、查询要不要先重写——LangChain、Haystack、Cognita 在这一层暴露的可调旋钮相对最多。
LangChain 出现最早、生态最大,有 chains、agents,以及对模型、嵌入、向量库的大量集成。要灵活性和现成连接器,它是绕不开的一个选项,代价是学习曲线更陡:抽象层比较多,出问题时你得知道自己在哪一层。
这里有个值得写进决策依据的取舍:有第三方评测指出,LangChain 的 LCEL 语法能做复杂的查询重写,但相比 LlamaIndex 的直接检索会多出约 15%-20% 的延迟开销。 需要强调这是第三方基准的口径、不是官方指标,你自己的场景差多少必须自己压一遍。但方向性的结论是成立的:查询重写这类操作是拿延迟换召回,你得先确认自己有没有这个延迟预算。对话式产品和批量离线处理,在这件事上的答案完全不同。
检索这一层还有一半在框架之外——向量库本身的能力。常被拿来搭配的是 Qdrant,它支持过滤、payload 索引与量化;第三方称在 100 万以上向量的规模下可以做到 50ms 以内的检索,这个数字同样是第三方口径,跟硬件、量化配置和过滤条件强相关,别当成保证值。它可以作为独立二进制运行,也可以跑 Docker 容器。向量库这一层的横向比较可以看 向量数据库怎么选?Qdrant/Milvus/Supabase 对比。
四、瓶颈在评估:不用换框架,加挂 RAGAS
这一类最容易被跳过,也最容易让团队白忙。症状是:每次改完都说”感觉准了一些”,但没人能拿出数字;换个人来问同样的问题,结论又反过来。
处理方式很直接:不用换框架,在你已有的框架上加挂 RAGAS 就行。 它是评估层的工具,跟你用 LangChain 还是 LlamaIndex 不冲突。配套要做的事情比装库本身重要——你得先攒出一份评测集:几十到上百条真实问题,每条标注期望答案或至少标注”答案应该出自哪一段原文”。这份数据只能靠业务同事一起攒,没有捷径,但它一旦有了,后面所有的参数调整才有了可比的基准,才谈得上”这一版比上一版好”。
五、语料是有链接的结构化内容:考虑图检索
如果你的知识本身带明确关系——组织架构、产品与配件的从属、条款之间的引用与废止、故障与处置流程的关联——那扁平的向量检索是有结构性短板的:它按语义相似度找片段,但”相似”不等于”相关联”。这种语料适合走图检索路线,RAGFlow 的 GraphRAG 是其中一个可选方向。
诚实提醒:图路线的建设成本明显高于普通向量检索,实体和关系抽取的质量直接决定上限,而抽取本身又要用大模型跑一遍全量语料。如果你的问题里只有一小部分需要跨文档串联,先别整体切图路线,可以只对这部分问题做专门处理。判断标准是看你的失败案例——真正因为”关系拼不起来”而答错的比例有多高,比例不高就不值得为它重建整条链路。
六、自托管这件事,成本差别比想象中大
RAGFlow 走 Docker 部署,提供 slim 与 full 两种镜像,区别在于是否内置嵌入模型:slim 约 2GB,full 约 9GB。这个差别在带宽受限或者要往内网离线环境搬的时候是实打实的成本,值得提前规划。
LangChain 和 LlamaIndex 是库,不是服务。 所谓”自托管”,实际含义是你自己跑一个 Python 服务,外加自己部署和运维向量库——没有一个现成的管理界面等着你,监控、日志、版本升级都得自己接。这不是缺点,只是要提前算进人力成本,别拿”它们也能自托管”跟开箱即用的引擎做同一维度的比较。
选择上有个粗略的分界:数据必须留在内网的,就在可自托管的方案里挑;主要想快速验证业务假设、不想在搭建上耗时间的,Dify 这类低代码平台能省掉不少搭建成本。企业知识库的整体建设思路可以参考 企业 AI 知识库怎么搭?。
七、它们不是互斥的,生产上常常混着用
这一点被误解得很普遍:很多人把选型当成单选题,好像选了 LangChain 就不能用 LlamaIndex。实际的生产组合里,一种常见搭配是——LlamaIndex 负责 ingestion 与索引,LangChain 负责编排,LangGraph 负责 agent 工作流。 三段各用擅长的那个,比硬凑一个框架从头包到尾更务实。
当然混用也有代价:依赖变多、升级时的兼容面变大、新人上手要理解的概念也翻倍。建议是别一上来就三件套,而是从最痛的那一段开始换。比如解析实在过不去,就只把 ingestion 换成 LlamaIndex,编排层先不动——一次只动一段,才能确认到底是哪个改动带来的提升。
如果你的场景开始需要”自己决定检索几次、查哪个源”,那已经越过普通 RAG 的范畴了,可以看 Agentic RAG 是什么 再判断要不要往上走。
八、这篇没法替你决定的事
说几个局限,免得被这篇文章误导:
- 上面所有的对比性描述都来自公开评测和项目定位,不是我在你的语料上实测的结论。 同一个框架在不同语料上的表现差异,往往比框架之间的差异还大。
- 版本变化很快。 RAG 生态这两年迭代频繁,功能边界随时在挪——某个框架今天缺的能力,下个版本可能就补上了。任何具体能力和参数请以各项目官方文档当前版本为准。
- 进入维护期或转向的项目要单独看。 选型时顺手看一眼仓库最近的提交节奏和 issue 响应,这是公开信息,比看 star 总数有参考价值。这只是就事论事的尽调动作,不代表对任何项目的评价。
- 框架换对了也不一定救得回效果。 如果问题出在语料本身就没有答案,或者业务问题的定义就是模糊的,换几个框架都一样。
小结
选 RAG 框架的正确顺序是先诊断、后选型:捞出失败案例,分清是解析、检索、评估还是知识关系的问题。解析卡壳从 LlamaIndex 或 RAGFlow 入手,检索卡壳看 LangChain、Haystack、Cognita 这类可调旋钮多的,评估缺失就在现有框架上加挂 RAGAS,关系型语料再考虑图检索。star 数只反映关注度,不代表适用性,那份排名还带着”截至 2026 年 1 月”的时间戳。最后记住它们不是互斥的——ingestion、编排、agent 工作流分别用擅长的那个,是生产环境里常见的做法,一次只换一段才看得清收益。