MCP + RAG:为什么我不再构建复杂的 RAG 系统

我花了四年时间构建复杂的 RAG 系统。

我使用了分块策略、嵌入模型、向量数据库和重排序器。我为自己长达 1,800 小时的知识库构建了一套系统。每一次,我都以为自己正在使其趋于完美。

但它从未运行良好。

后来,我加入了 Model Context Protocol (MCP) 支持。这改变了一切。对于大多数人来说,MCP 让传统的复杂 RAG 变得过时了。

我过去常被这些问题困扰:

  • 在语义分块(semantic chunking)还是递归分块(recursive chunking)之间做选择。
  • 在 OpenAI、Cohere 或 Nomic 嵌入模型之间做选择。
  • 在 Pinecone、Weaviate 或 Chroma 之间做决定。
  • 管理 top-k 检索和重排序。

我的 RAG 系统达到了 2,000 行代码。它看起来很厉害,但失败了。我试图让我的数据变得“聪明”,而事实上 AI 本身就已经很聪明了。

我转向了 MCP 方法。我只用了 150 行代码就构建了一个服务器。

我只给了 AI 两个工具:

  • search_notes:使用简单的文本匹配来查找笔记。
  • get_note_content:返回笔记的全文。

没有分块。没有复杂的嵌入。没有向量数据库。

这种简单的方法在 10 次中有 9 次胜过我那套花哨的 RAG 系统。原因如下:

  1. AI 处理逻辑。AI 比预设的分块器更擅长判断什么是相关的。
  2. 全文上下文。传统的 RAG 将笔记切成碎片,这往往会导致丢失答案。通过 MCP,AI 可以阅读整篇笔记,从而理解完整的思想。
  3. 可预测性。文本搜索非常简单。只要关键词存在,它就能奏效。你避免了嵌入漂移(embedding drift)和维度错误。

如果遇到以下情况,你仍然应该使用传统的 RAG:

  • 你拥有超过 100,000 份大型文档。
  • 你需要低延迟的大规模生产环境。

但对于个人知识库、侧边项目或内部工具,你并不需要它。

MCP 的优势:

  • 易于维护:150 行代码,而不是 2,000 行。
  • 无嵌入成本:当模型变化时,你不需要重新对数据进行嵌入。
  • 更高的准确度:AI 可以获取完整的上下文。
  • 易于调试:你可以清楚地看到搜索失败的具体原因。

停止过度工程。让 AI 来承担繁重的工作。给它访问数据的权限,让它去阅读。

Source: https://dev.to/kevinten10/mcp-rag-why-i-stopped-building-complex-rag-systems-after-mcp-changed-everything-4g86

Optional learning community: https://t.me/GyaanSetuAi