系列:100 天系统学习 AI Agent 开发
当前阶段:RAG、知识库与工具边界
今日目标:RAG 让 Agent 能基于外部知识回答,而不是完全依赖模型参数记忆。

AI Agent 大模型 Agent开发 LlamaIndex

模型说得很像,不代表它见过这份资料

问一个通用概念,模型可能回答得不错;问公司昨天更新的退款规则、项目里某个配置字段,它就未必知道。更麻烦的是,它可能仍然给出一个语气确定的答案。RAG 的价值就在这里:回答前先找资料,把相关片段连同问题交给模型,再要求结论能回到证据。

“外接大脑”是好记的比喻,却也容易误导。RAG 不会自动让知识正确,更不是把一堆文件丢进向量库就结束。资料是否可信、切分是否完整、查询是否命中、引用是否真的支撑结论,任何一处出错都会把问题带到最终答案里。

RAG 有两条流水线

在线:回答问题

用户问题

查询理解/改写

检索候选片段

过滤与排序

基于证据生成

引用、拒答或追问

离线:建立知识库

可信资料

清洗与切分

补来源和版本元数据

建立可检索索引

离线链解决“哪些内容能被找到”,在线链解决“这次问题该找什么、能否回答”。把两条链混成一个“search”按钮,出现错误时就很难判断是知识库没收录、切分损坏,还是查询跑偏。

先做一个手工基线

在接 Embedding 前,我准备先用三份官方资料做一张“问题—证据—回答”表。手工基线速度慢,但能逼自己检查证据是否真的支持结论。

问题 计划查阅的资料 需要摘出的证据 回答边界
Agent 与普通问答有什么不同? LangChain Agents 文档 工具循环、任务完成条件 不延伸到所有框架实现
LlamaIndex 如何连接数据和 Agent? LlamaIndex Agents Agent、Tools、Workflows 的关系 以文档当前描述为准
什么时候需要持久化状态? LangGraph Persistence thread、checkpoint、store 的职责 不把短期状态等同长期偏好

每一条证据卡至少保存:

{
  "question": "什么时候需要持久化状态?",
  "source_url": "官方页面地址",
  "source_title": "页面标题",
  "retrieved_at": "待填写",
  "excerpt_summary": "用自己的话概括,不复制长段原文",
  "supports": ["可恢复执行", "线程状态"],
  "does_not_support": ["所有信息都应永久保存"]
}

这里的 retrieved_at 和摘要要在真实查阅后填写。先留空比编造访问时间更可靠。

三种失败,答案看上去可能都很顺

  1. 没检到。 正确资料存在,但查询词、切分或过滤让它没有进入候选。
  2. 检错了。 召回语义相似却版本不匹配的资料,例如旧版部署说明。
  3. 用错了。 检到了正确片段,模型却给出片段没有支持的额外结论。

因此评测不能只看最终答案。至少要保留原始问题、改写查询、召回片段 ID、来源版本、最终引用和拒答原因。否则答案偶然正确时,我们会高估系统;答案错误时,又不知道该改检索还是改生成。

什么时候不必 RAG

简单寒暄、纯文本改写、用户已经给齐的资料摘要,通常不需要再检索。每个问题都强制查库会增加延迟和费用,还可能让无关片段污染答案。另一方面,涉及私有规则、近期变化或需要引用的事实时,直接依赖模型记忆就不合适。

我现在对 RAG 的理解更克制了:它不是“让模型什么都知道”,而是让系统有机会说清“我依据什么知道,以及资料不足时为什么不知道”。Day 012 会继续拆 Embedding 和向量检索;在那之前,这张手工证据表是很重要的对照组。

面试官会追问:RAG 上线后答错,先改 Prompt 吗?

不先改。我要沿着证据链定位:

  1. 语料层:正确文档是否入库、版本是否最新、权限是否正确。
  2. 召回层:正确 chunk 是否进入 top-k;没有进入就查解析、切分、Embedding、过滤和 query rewrite。
  3. 排序层:进入候选池却排得低,再查混合检索、RRF 和 reranker。
  4. 生成层:证据已经进入上下文仍答错,才检查引用提示、上下文位置、模型忠实度和拒答规则。

作品集里最好保存一张失败卡:问题、标准答案、召回 chunk、排序分数、最终引用和错误归因。面试官看到这张卡,能立刻判断我是否真的调过 RAG,而不是只会说“向量库 + 大模型”。

今日检查清单

  • 知识库只纳入来源明确、权限允许的资料
  • 每个测试问题都写出期望证据范围
  • 保存召回片段,而不只保存最终回答
  • 引用必须支撑对应结论,不能只放一个相关链接
  • 资料不足时追问或拒答,不让模型补齐事实
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐