Cherry Studio 知识库V2 提案

Dec 21 · 20min

目标

在Agent时代,打造一个为Agent使用的智能知识库。它不应该只是一个提供查询的"图书馆",而应该是能由Agent进行 自助阅读、自我学习、自我优化 的动态数据库。

3种常见的RAG架构对比

Modular RAG(当前架构)Graph RAGAgentic RAG(目标架构)
在传统RAG的基础上添加了重排序+重写等模块使用知识图谱,用关系增加检索以"原子化"的方式组织,将组织交给Agent
❌只能通过固定流程(重写+查询+重排序),系统无法灵活调整❌构建成本高(抽取关系),灵活性差(一旦构建,关系不可变)✅Agent可以自由调整流程,组织知识库,实现动态优化

原子化RAG架构

原子化RAG只提供最简能力,以MCP的形式提供给Agent使用,并且暴露API可以提供给外部使用。

提供两种操作模式:

  1. 🛡️标准模式(安全驾驶):提供最简单的"增、删、改、查"能力,Agent可以放心地写入知识,系统在后台会自动处理所有复杂的技术细节(如向量化)。
  2. ⚡️上帝模式(赛道狂飙):直接开放 SQL 查询接口。用户/Agent可以自由的对知识库进行操作,例如 "可以查询知识库中的文档个数","知识库中有什么内容"等。
  3. API模式:提供API接口,允许外部系统直接操作知识库,方便构建测试集、在已有工作流中调用或者实现对知识库进行强化学习训练[1]

Agent能利用原子化RAG做到什么?

  1. 基础RAG能力

    • 文档预处理
    • 混合检索(BM25+向量检索) + 重排序
    • 筛选检索(根据来源、时间、标签等条件进行过滤)
  2. 知识维护

    • Agent在对话中可以直接对知识库进行嵌入
    • Agent在对话中发现文档中存在错误或过时信息时可以直接修改知识库
  3. 智能标注[2]

    • Agent可以对chunk块的metadata进行标注,例如添加标签、来源、时间等信息
    • Agent也可以给高质量的chunk打分,检索时可以提高检索权重

原子化RAG的百变能力

  1. 原子化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。
  2. 原子化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:

  1. 用户提问:"项目A的进度怎么样了?"

  2. 检索:AI 搜索知识库,发现了两份文档。一份是"项目A启动会",另一份是"项目A暂停通知"。

  3. 推理与修正:AI 发现"启动会"的内容已经过时了。它没有直接把旧信息给你,而是:

    • 先回答你:"项目A目前已暂停。"
    • 在后台:给"启动会"文档打上 [已过时] 的标签,并降低了它的权重。
  4. 记忆沉淀:你在对话中告诉 AI:"以后项目A改名叫凤凰计划。"

    • 在后台:AI 自动在知识库里给相关文档添加了"凤凰计划"的别名标签。 下一次,当你搜"凤凰计划"时,AI 就能立刻找到所有资料。这就是"可进化的第二大脑"。

这是一类更类似RL-like的架构,它允许Agent在对话中不断优化自己的知识库,实现动态学习和优化。

参考文献


  1. R3-RAG: Learning Step-by-Step Reasoning and Retrieval for LLMs via Reinforcement Learning ↩︎

  2. Thinking Forward and Backward:Multi-Objective Reinforcement Learning for Retrieval-Augmented Reasoning ↩︎

> share with
>
CC BY-NC-SA 4.0 2024-PRESENT © Chen Tao