Spring AI 与 RAG 集成
1. 通用思想:它在 Agent 里是什么?
RAG 解决的是:模型知识老、看不到企业私域数据、面对长文档和实时规则容易幻觉。对 Agent 来说,RAG 不是“多检索一点资料”,而是把外部知识在正确时机注入到本轮推理里。
所以从通用思想上看,RAG 是 Agent 的知识补给层:
- 用户问题进来
- 系统判断是否需要外部知识
- 检索相关文档
- 把高价值证据注入模型
- 模型基于这些外部证据回答
真正关键的不只是检索本身,而是检索前、检索后、上下文注入方式和噪声控制。
2. Spring AI 落点:由哪些抽象和链路承载?
核心抽象
- VectorStore:向量数据库抽象层,屏蔽底层实现差异
- QuestionAnswerAdvisor:官方的轻量级 Naive RAG 入口
- RetrievalAugmentationAdvisor:更完整的模块化 RAG 承载器
RAG 在请求链中的介入方式
最常见的链路是:
- 接收用户问题
- 通过 Advisor 触发向量检索
- 将检索结果拼接到当前请求中
- 再发给模型生成答案
RetrievalAugmentationAdvisor 更进一步,把链路拆成:
- Pre-Retrieval:查询改写、压缩、扩展
- Retrieval:检索
- Post-Retrieval:重排、去噪、压缩
- Generation:带着处理后的证据去生成
高频边界
- RAG 不等于上下文工程的全部,它只是上下文来源之一
- 检索不是越多越好,噪声过大反而伤效果
- Query Transformer 这类预检索链路如果温度太高,容易把查询改写坏
3. 项目口径:在我的项目里怎么落地?
在我的 [[苍穹外卖AI客服]] 项目里,RAG 主要承担 FAQ 和业务规则补给,而不是兜底所有问题。我会优先区分两类场景:
高频 FAQ 类问题
- 先走本地语义缓存
- 命中就短路,不再走 RAG 和 LLM
需要外部业务规则支撑的问题
- 再由 RAG 补充文档、规则、知识库证据
我对 Spring AI 与 RAG 的理解不是“框架帮我接了向量库就结束”,而是它给了我一个很好的承载层,让我能把检索增强织入 Advisor 链里,再和记忆、工具白名单、安全拦截一起协同工作。最终效果好不好,关键还是你怎么控制检索噪声、怎么排序上下文、怎么决定哪些场景该进 RAG,哪些场景该走缓存或直接工具。
相关链接:[[上下文工程]] | [[Spring AI Advisor 链]] | [[Spring AI 与我的项目]] | [[苍穹外卖AI客服]] | [[RAG 检索架构]]