中文 / EN
Dify

RAG 的演进之路:
从“状态”到“记忆

Dify × Milvus 联合技术分享

演讲者:郑立(Zheng Li)· Dify 开源生态负责人

Unstructured Data Meetup · 30 分钟

RAG 的真正价值:为 LLM 构建“记忆

  • LLM 擅长“计算”,参数承载的是训练期的静态知识
  • RAG 本质:为 LLM 挂载外部、动态的记忆(Memory)。
  • 行业观点:RAG 是一个谱系
  • 核心问题:如何构建—管理—使用这份“记忆”?

RAG 演进谱系(Agenda)

  • Naive RAG:简易“状态”检索
  • Advanced RAG:系统性提升“状态”质量
  • Agentic RAG:让“记忆”成为 Agent 的一部分
  • Knowledge Pipeline:高质量“记忆”的生产线

阶段一 · Naive RAG(简单“状态”检索)

  • 流程:Query → Embedding → 向量检索(Milvus)→ Chunks → LLM
  • 痛点:语义割裂、检索噪音、Lost in the Middle
  • 结论:能用但不好用 → 静态、低质量的“状态”

阶段二 · Advanced RAG(系统性提质)

三条硬原则

  • 混合召回:向量 + 关键词/正则 + 元数据过滤;候选 100–300
  • 先精排后组装:Cross-Encoder 或 LLM 精排 → Top 20–40
  • 尊重 Context Rot:结构化、紧凑上下文胜过堆满窗口

上下文组装:指令优先、去重合并、多样化来源、严格 Token 上限

行业建议:第一阶段混合召回 200–300 候选也可行;随后务必 re‑rank 再组装上下文。

Dify 实践

  • 父子文档检索:命中子块,回传父块,兼顾精准与上下文完整
  • RerankingMilvus 快召回 → 精排后再喂入 LLM
  • 趋势LLM 充当精排器 正在普及;成本/延迟下降后更偏向“brute‑force”式信息整理。

“别交付 RAG”,交付 检索

  • 挑战:把方案叫“RAG”会掩盖关键设计取舍。
  • 原语:dense、lexical/regex、filters、re‑rank、assembly、eval loop。
  • 行动:先赢下第一阶段混合召回200–300 候选也可)。
  • 纪律始终先精排,再组装上下文;尊重 Context Rot

思考 · 精排的未来与权衡

  • 趋势LLM 充当精排器 将成主流;专用 re‑ranker 可能边缘化。
  • 现实:并行 300 次 LLM 精排的尾延迟在今天仍是问题。
  • 策略:短期混用(Cross‑Encoder + LLM);中期靠缓存/切分减少尾延迟。
  • 远期:更廉价/更快的 LLM → brute‑force 信息整理变得可行。

阶段三 · Agentic RAG(从“状态”到“记忆”)

  • RAG 由被动流程 → Agent 的主动工具
  • 查询重写:先把问题问清楚,再去检索
  • 多步推理/循环检索:基于中间结果决定下一步行动
  • Dify:在 Agent 编排中将 RAG 工具化,支持规划→检索→反思→迭代

根基 · Knowledge Pipeline(“记忆”的生产线)

[Ingest]

  • 解析 + 分块(领域感知:标题、代码块、表格)
  • 富化:标题、锚点、符号、元数据
  • 可选:块摘要(代码/API 的 NL gloss
  • 嵌入:向量(dense)+ 可选稀疏信号
  • 写入 Milvus(文本、向量、元数据)

[Query]

  • 第一阶段混合召回:向量 + 词法/正则 + 元数据过滤
  • 候选池:约 100–300 → 精排至 Top 20–40
  • 上下文组装:指令优先、去重合并、多样化、硬性 Token 上限

定律:Garbage In, Garbage Out

外环(Outer Loop):评估与运营闭环

  • 缓存与成本护栏(Guardrails
  • 小规模黄金集(Gold Set)→ 接入 CI 与看板
  • 误差分析:重分块/调过滤/精排 Prompt 调优
  • 记忆压缩:将交互轨迹总结为可检索事实(Compaction

实践贴士:花一个晚上(披萨之夜)打造小型 Gold Set,并接入 CI 与数据看板。

“一次处理,多处使用”

  • 解耦:知识处理 ↔ 应用研发
  • 复用:一个 Milvus 知识库服务多个 Dify 应用
  • 质量:统一治理“记忆”,持续抬高上层应用上限

Dify × Milvus:各司其职,协同增效

Milvus = 记忆基座

  • 存储/索引/高效召回向量与元数据
  • 稳定、可靠、可扩展

Dify = 记忆与应用中台

  • 知识管道:构建/管理/优化“记忆”(写入 Milvus
  • 应用引擎:编排与使用“记忆”(Advanced/Agentic RAG

Dify 平台能力(一站式)

  • 提示词工程与评测
  • 知识管道:父子文档、混合召回、精排
  • Agent 编排:工具化与可视化流程
  • 全生命周期运营:日志、标注、分析

Knowledge Pipeline 的核心特性

企业级数据源集成

  • 本地文件:支持 30+ 格式(PDF、Word、Excel 等)
  • 云存储:Google Drive、S3、Azure Blob 等
  • 在线文档:Notion、Confluence、SharePoint
  • 网页爬虫:Firecrawl、Jina、Bright Data

可视化调试与编排

  • 可视化编排:从源连接到文档处理的全流程
  • 实时调试:逐步测试、检查中间变量
  • 标准化处理:发布后进入规范化流程

预置模板与处理流程

  • 通用文档处理:经济型索引,适合大批量处理
  • 长文档处理:父子层级分块,保持精准度与全局语境
  • 表格数据提取:结构化问答对构建
  • 复杂 PDF 解析:针对性提取图表
  • 多模态富化:使用 LLM 描述图表,提升检索效果

Pipeline 核心步骤:Extract(提取)→ Transform(转换)→ Load(加载)

企业级价值

降低门槛

  • 业务团队可直接参与数据处理
  • 可视化调试,快速定位问题
  • 工程师专注核心开发工作

提升效率

  • 处理流程模板化,可复用
  • 灵活替换各环节组件
  • 稳定架构,降低维护成本

愿景:让企业非结构化数据处理变得简单、可靠、高效

总结与行动

  • RAG 正从“静态状态”进化为“动态记忆”。
  • “记忆”的上限由知识管道与外环评估决定。
  • Dify × Milvus 提供“记忆构建—存储—使用”的端到端路径。
Dify

谢谢

联系:banana@dify.ai · GitHub:dify