目标 #
在Agent时代,打造一个为Agent使用的智能知识库。它不应该只是一个提供查询的"图书馆",而应该是能由Agent进行 自助阅读、自我学习、自我优化 的动态数据库。
3种常见的RAG架构对比 #
| Modular RAG(当前架构) | Graph RAG | Agentic RAG(目标架构) |
|---|---|---|
| 在传统RAG的基础上添加了重排序+重写等模块 | 使用知识图谱,用关系增加检索 | 以"原子化"的方式组织,将组织交给Agent |
| ❌只能通过固定流程(重写+查询+重排序),系统无法灵活调整 | ❌构建成本高(抽取关系),灵活性差(一旦构建,关系不可变) | ✅Agent可以自由调整流程,组织知识库,实现动态优化 |
原子化RAG架构 #
原子化RAG只提供最简能力,以MCP的形式提供给Agent使用,并且暴露API可以提供给外部使用。
提供两种操作模式:
- 🛡️标准模式(安全驾驶):提供最简单的"增、删、改、查"能力,Agent可以放心地写入知识,系统在后台会自动处理所有复杂的技术细节(如向量化)。
- ⚡️上帝模式(赛道狂飙):直接开放 SQL 查询接口。用户/Agent可以自由的对知识库进行操作,例如 "可以查询知识库中的文档个数","知识库中有什么内容"等。
- API模式:提供API接口,允许外部系统直接操作知识库,方便构建测试集、在已有工作流中调用或者实现对知识库进行强化学习训练[1]。
Agent能利用原子化RAG做到什么? #
基础RAG能力
- 文档预处理
- 混合检索(BM25+向量检索) + 重排序
- 筛选检索(根据来源、时间、标签等条件进行过滤)
知识维护
- Agent在对话中可以直接对知识库进行嵌入
- Agent在对话中发现文档中存在错误或过时信息时可以直接修改知识库
智能标注[2]
- Agent可以对chunk块的metadata进行标注,例如添加标签、来源、时间等信息
- Agent也可以给高质量的chunk打分,检索时可以提高检索权重
原子化RAG的百变能力 #
原子化RAG -> Modular RAG 当你把
search接口内部集成了 Hybrid Search 和 Rerank,并且 Agent 在调用前自己做了一步 Query Rewrite(查询重写)时:- 动作流:Agent (Rewrite) -> MCP Tool (Hybrid Search + Rerank) -> Agent (Synthesis)。
- 本质:这就是标准的 Modular RAG 流程。
- 区别:传统 Modular RAG 在代码写死把这些模块串起来;而你的架构里,Agent 根据需要自己决定要不要 rewrite,要不要 rerank。
原子化RAG -> Graph RAG 当你在 metadata 中存储了关联信息(如 {"links": ["doc_id_123"]}),并且 Agent 懂得顺藤摸瓜时:
- 动作流:Agent 搜到文档 A -> 发现 Metadata 里有关联文档 B -> Agent 主动调用 read_document(B) -> 综合 A 和 B 回答。
- 本质:这就是图谱检索中的“邻居节点遍历”。
- 区别:
- 硬图谱 (Hard Graph):Neo4j 等数据库,关系是物理存在的,查询快但构建极贵。
- 软图谱 (Soft Graph):关系存在 Metadata 里,由 Agent 的注意力(Attention)来"脑补"连接。虽然速度慢一点,但构建成本几乎为零,且极其灵活。
你的 Agent 会根据用户的问题,动态坍缩成最适合的架构:
- 用户问模糊概念(如“那个…什么计划”)👉 Agent 走 Modular RAG 模式,先重写查询,再混合检索。
- 用户问深度关联(如“A项目对B公司的财务影响”)👉 Agent 走 Graph RAG 模式,搜到A,读 Metadata 里的链接找到B,再综合推理。
使用示例 #
想象一下,你的 AI 助手正在使用 Agentic RAG MCP:
用户提问:"项目A的进度怎么样了?"
检索:AI 搜索知识库,发现了两份文档。一份是"项目A启动会",另一份是"项目A暂停通知"。
推理与修正:AI 发现"启动会"的内容已经过时了。它没有直接把旧信息给你,而是:
- 先回答你:"项目A目前已暂停。"
- 在后台:给"启动会"文档打上 [已过时] 的标签,并降低了它的权重。
记忆沉淀:你在对话中告诉 AI:"以后项目A改名叫凤凰计划。"
- 在后台:AI 自动在知识库里给相关文档添加了"凤凰计划"的别名标签。 下一次,当你搜"凤凰计划"时,AI 就能立刻找到所有资料。这就是"可进化的第二大脑"。
这是一类更类似RL-like的架构,它允许Agent在对话中不断优化自己的知识库,实现动态学习和优化。