Previous
Day 14 · Building a Minimal RAG Demo
Next
Day 16 · Tool Calling Basics
记忆与 RAG
Day 1560 minutesAI Agent 动手实践

Day 15 - Weekly Review 3: Memory + RAG Design

今日目标

能输出《知识库问答 Agent 设计 v0.1》,理清记忆、上下文与外部知识的边界。

学习安排

时间模块做什么
0-10 分钟产出盘点翻出 Day 11-14 的四份产物,对照交付物清单逐项核对。
10-25 分钟概念回顾快速复述记忆、RAG、metadata 的关键概念,标出说不清的点。
25-45 分钟综合设计把四天产物整合成《知识库问答 Agent 设计 v0.1》,补齐七个模块。
45-55 分钟追问与反思回答追问练习,重点想冲突消解与评估问题。
55-60 分钟复盘与作业整理查漏清单,定下阶段 4 开始前要补的一点。

核心概念

术语中文解释应用场景
memory vs RAG记忆与 RAG 的分工:记忆管用户的个性化信息,RAG 管外部知识,两者共同进入上下文"按我的格式出报告"用记忆,"怎么排查 Nginx 503"用知识库
source priority来源优先级:记忆、知识库、模型内置知识冲突时,按什么顺序采信知识库说 A、模型说 B 时以知识库为准并提示
conflict resolution冲突消解:记忆与知识库矛盾时的处理策略用户项目已下线,但记忆里还存着旧项目名
correction mechanism纠正机制:用户指出错误后,如何修正记忆与知识库用户说"这个命令过期了",触发文档修订流程
retrieval evaluation检索评估:用命中率、精确率等指标衡量检索质量每周用 10 个标准问题回归检索效果
knowledge base知识库:经过清洗、切分、索引的外部知识集合测试文档库:排障手册、模板、规范
citation引用:答案标注来源,让用户可核验回答末尾附来源文件名与片段编号
feedback loop反馈闭环:用户反馈 → 更新记忆或知识库 → 再验证纠正一次错误后,同类问题不再答错

阅读重点

  • 对应章节:第 3 章整体回顾:用户记忆与知识库(跨会话记忆、用户画像、RAG、结构化索引、检索质量)
  • 关注点:记忆、短期上下文、外部知识三者的边界:各管什么、如何进入上下文
  • 关注点:冲突处理与纠正机制:记忆与知识库矛盾时怎么办
  • 关注点:安全边界:哪些信息能进系统、哪些必须人工把关
  • 关注点:评估:RAG 质量怎么度量、怎么持续改进
  • 补充材料:回看第 2 章上下文工程,确认记忆与检索结果在上下文中的位置
  • 补充材料:检索评估相关材料:recall@k 与人工抽查结合的做法

理解检查

  • 用户记忆和 RAG 的区别是什么?各回答哪类问题?
  • 回答用户问题时,优先用记忆还是知识库?判断依据是什么?
  • 如果记忆和知识库冲突怎么办?处理流程是什么?
  • 如何让用户纠正错误记忆?纠正后会发生什么?

实践任务

背景:阶段 3 的交付物是一份完整设计。把 Day 11-14 的产物整合成《知识库问答 Agent 设计 v0.1》,为 Day 16 之后接入工具做准备。

  • 盘点四份产物:记忆边界清单、RAG 流程设计、metadata schema、最小 Demo
  • 按模板补齐七个模块:用户输入、记忆读取、知识库检索、回答生成、来源引用、反馈更新、安全边界
  • 每个模块写清:输入、处理、输出、依赖哪个 Day 的产物
  • 最后写一段"v0.1 不做的事",控制范围,这是复盘日最容易忽略的一步

输出模板

# 知识库问答 Agent 设计 v0.1

## 1. 用户输入
- 输入形式:[自由文本问题]
- 需要补充的信息:[如环境、项目、时间范围]

## 2. 记忆读取
- 读取策略:[按用户与任务类型读取 user profile / preference memory]
- 读取时机:[会话开始 / 回答之前]

## 3. 知识库检索
- 数据来源:[文档清单,可引用 Day 12]
- 过滤条件:[environment / project 等 metadata,可引用 Day 13]
- 检索方式:[关键词或向量],top_k=[5]

## 4. 回答生成
- 生成约束:[只基于片段回答,信息不足时说明]
- 冲突处理:[知识库优先于记忆,记忆优先于模型内置知识]

## 5. 来源引用
- 引用格式:[文件名 + 片段编号]
- 不可引用时:[明确标注"知识库未覆盖"]

## 6. 反馈更新
- 用户纠正后:[更新记忆 / 标记知识库待修订]
- 更新条件与审核:[谁可以改,改前是否确认]

## 7. 安全边界
- 绝不处理的信息:[敏感身份信息等,可引用 Day 11 清单]
- 需要人工确认的操作:[高风险结论、删除操作]

## v0.1 不做的事
- [如:不做多轮追问、不做权限系统、不做自动更新]

示范输出

# 知识库问答 Agent 设计 v0.1

## 1. 用户输入
- 输入形式:自由文本问题,如"如何排查 Nginx CPU 升高"
- 需要补充的信息:环境(默认 prod)、项目(默认 order-service)、时间范围(可选)

## 2. 记忆读取
- 读取策略:读取用户输出格式偏好与常用项目名
- 读取时机:会话开始时加载 user profile,生成前读取 preference memory

## 3. 知识库检索
- 数据来源:nginx-cpu-spike.md、load-test-report-template.md、defect-report-guideline.md
- 过滤条件:environment=prod AND project=order-service
- 检索方式:关键词加向量混合,top_k=5

## 4. 回答生成
- 生成约束:只基于片段回答,片段没提的标注"知识库未覆盖"
- 冲突处理:知识库优先于记忆,记忆优先于模型内置知识

## 5. 来源引用
- 引用格式:[文件名 #片段编号]
- 不可引用时:明确标注"知识库未覆盖,以下为通用建议"

## 6. 反馈更新
- 用户纠正后:输出格式类纠正直接更新 preference memory;内容错误标记文档待修订,由 owner 确认后修改
- 更新条件与审核:知识库修改需 owner 确认,记忆修改需用户确认

## 7. 安全边界
- 绝不处理的信息:账号密码、未公开的版本计划
- 需要人工确认的操作:涉及删除、修改生产配置的建议

## v0.1 不做的事
- 不做多轮追问、不做用户权限系统、不做知识库自动更新

追问练习

  • 如何评估 RAG 系统质量?除了检索指标,答案层面还要评估什么?
  • 记忆和知识库冲突时如何取舍?"知识库优先"在所有情况下都成立吗?
  • 这个设计最大的风险是什么?如果明天上线,你最担心哪一环?
  • 阶段 4(Day 16-20)要接入工具了,这个设计里哪些模块会与工具产生交互?

常见误区

  • 把记忆与 RAG 混为一谈:记忆是"用户相关",RAG 是"外部知识",回答两类问题的来源不同。
  • 有引用但没有可信度分层:知识库内容也会过期,有引用不等于答案正确。
  • v0.1 想一次做全:范围失控是复盘日最常见的失败原因,写清"不做的事"与"要做的事"同等重要。
  • 把设计文档写成代码:v0.1 的目标是理清边界与顺序,实现细节留给阶段 4。

进阶扩展

  • 分层记忆架构:episodic / semantic / preference 分层存储与检索,是生产级 Agent 的常见形态。
  • RAG 评估体系:检索端 recall@k 加答案端忠实度、有用性人工评估,形成持续改进回路。
  • 知识库运营:文档 owner、版本审批、变更通知,让知识库像代码库一样被治理。

今日作业

  • 完成《知识库问答 Agent 设计 v0.1》,七个模块齐全。
  • 对照 Day 11-14 的四份产物,列出设计文档里"还没做"的 3 项。
  • 写 3 个下阶段(工具、MCP、Coding Agent)想解决的问题。
  • 明天开始前,用 5 分钟向同事讲一遍这个设计的七模块流程。

自检清单

Previous
Day 14 · Building a Minimal RAG Demo
Next
Day 16 · Tool Calling Basics