跳转至

RAG 时间线

本文按时间顺序整理仓库中 RAG 相关策略的演进。重点关注检索、切块、向量化、排序、上下文装配与可观测性,不展开纯前端重构或展示层调整。

相关当前态文档:

纳入范围

本页优先记录:

  • 检索策略变化
  • chunking / embedding / rerank 的能力边界变化
  • 调试、可观测性、运行时默认值这类会改变排障方式的节点

本页不单独记录:

  • 纯管理台页面改版
  • 不改变运行策略的文档整理
  • 仅影响 demo 的展示层提交

当前结论

当前落地形态可以概括为:

向量召回优先 + 按 Agent 挂载 source 过滤 + 托管纠错 source 定向召回并提权 + 可选 multi-query 扩展 + 可选 rerank + 短查询关键词 fallback 补位

这条主链路在 当前 RAG 全链路 中有完整说明。

演进时间线

日期 Commit 主题 变化
2026-02-05 ebcc227 初始知识库上传与摄取 RAG 基础链路落地,形成“上传文档 -> ingestion -> 检索”的最小闭环。
2026-02-09 a4191d7 第一轮 chunking 策略升级 引入 fixed_sizesentenceparagraphsemanticrecursive 等策略,把切块从固定方案变成可配置能力。
2026-02-09 03aa5e9 Embedding portability 支持本地模型目录、离线部署与 Docker bake-in,解决 embedding 供给形态问题。
2026-02-12 7303018 Embedding / rerank 分层 新增独立 [rerank] 配置,RAG 从单纯向量召回演进到“召回后可重排”。
2026-02-12 13e6083 Embedding backend 双栈 新增 embedding.backend_type = api/local,让 embedding provider 与运行环境解耦。
2026-03-08 6dafeb5 上下文长度策略调整 移除硬编码 context length limit,不再默认把 RAG 上下文强截断到固定长度。
2026-03-12 e786b95 第二轮 chunking 升级 用 regex 替代 NLTK,并加入 LlamaIndex sentence_window / semantic_splitter 与 docling parse。
2026-03-25 6df926e Semantic splitter 兼容性修复 对不受支持的 semantic splitter 参数做安全处理,减少配置可写但运行失败的情况。
2026-03-26 ebbc3a2 Chunking capability 校验 增加策略可用性校验与 UI 集成,把“策略存在”与“当前环境可运行”区分开。
2026-03-27 a9f602d Multi-query retrieval 引入 query expansion,多 query 召回后合并去重,提升语义改写场景的 recall。
2026-03-27 d220570 托管纠错检索策略 引入 managed_correction source,检索时执行定向召回,并在最终排序里优先考虑纠错来源。
2026-03-27 fc73415 检索日志与指标 为 retrieval 过程补充日志和指标,开始强化 RAG 可观测性。
2026-03-30 aab6c66 Keyword fallback 为短查询引入关键词回退路径,但保持整体 vector-first,而非直接改成全量 hybrid retrieval。
2026-03-31 82af7cd RAG 运行时默认值与 debug 可见性 新增 [rag] 配置,显式暴露 top_kscore_threshold,并把 keyword fallback eligibility / provenance 纳入 debug。
2026-03-31 ee9ddf3 当前态文档固化 新增 当前 RAG 全链路,把当前生效方案写成一份面向运维与开发的说明。

分阶段理解

第一阶段:先把知识摄取和向量召回跑通

这个阶段以 2026-02-052026-02-12 为主。

  • 先有知识源、文档上传、摄取与基础召回
  • 很快发现“切块策略”和“embedding 供给形态”不能写死
  • 因此先后引入多 chunking 策略、本地 embedding、双 backend、rerank 配置

这一阶段解决的是“RAG 能不能稳定运行”。

第二阶段:把切块和上下文管理做细

这个阶段以 2026-03-082026-03-26 为主。

  • 去掉硬编码上下文长度限制
  • 把切块策略扩展到更贴近语义与复杂文档结构的方案
  • 补齐 capability 校验与 inspect 体系

这一阶段解决的是“知识被怎样切开、怎样进入可检索状态,以及为什么某些策略在当前环境不能直接跑”。

第三阶段:针对检索命中率做补强

这个阶段以 2026-03-272026-03-31 为主。

  • multi_query 解决单 query 语义表达不稳的问题
  • managed_correction 解决运营纠错无法稳定优先命中的问题
  • keyword fallback 解决短术语、产品名、缩写类 query 的召回空洞
  • debug 可见性补齐后,RAG 从“黑盒命中/未命中”变成可解释链路

这一阶段解决的是“为什么有知识却命不中,以及怎么让修正过的知识优先生效”。

当前仍保留的边界

  • 当前不是全量 hybrid retrieval,关键词检索只是 fallback,不是主召回面。
  • rerank 已进入正式配置,但文档仍把真实模型接入视为继续演进方向。
  • chunking 影响的是“知识如何切开”,不直接决定运行时 query 是否命中。

与其他时间线的关系

  • 这条线与 编排器时间线 的交点主要在:RAG 何时被接入 chat runtime、上下文如何注入最终生成、以及 debug / observability 如何暴露。
  • 这条线与 MCP 时间线 的交点较少,但在“最终回复如何融合多种上下文”这一层会通过编排器发生耦合。

参考来源