第 3 周:RAG 客服、Planning 与 Subagent
本周成果与 10-14 小时安排
交付一个中文客服闭环:能检索、引用、无依据拒答、高风险转人工,并用显式计划和隔离子任务处理复杂问题。
| 时段 | 用时 | 可见产物 |
|---|---|---|
| Day 1 | 2 小时 | 复习第 3 章,读任务规划 |
| Day 2 | 2 小时 | 视频 04 全片,运行 step08 并制造非法 Todo 状态 |
| Day 3 | 2 小时 | 读Subagent,看视频 05 [00:00:55-00:08:19] |
| Day 4 | 2.5 小时 | 建库并运行混合检索,保存 top 5 和引用 |
| Day 5 | 2.5 小时 | 完成拒答、转人工与用户记忆边界测试 |
| Day 6 | 1 小时 | 跑 30 问评估并完成复述 |
RAG 解决的问题
为什么要检索而不是直接生成,见 Mini Emperor 综合项目:证据驱动的回答。客服系统同时区分:
- 会话记忆:用户刚刚问了什么。
- 用户记忆:偏好、历史与授权后的长期事实。
- 企业知识:版本化政策,只能从知识库检索。
- 工单状态:外部业务系统事实,不能由模型猜测。
客服流程
Planning 与 Subagent
计划为什么必须是显式状态机、Subagent 为什么不是函数调用,见 任务规划:编号列表不是状态机与Subagent:普通函数为什么不是 Subagent。本周落地时,Plan 状态至少保存:
- step ID
- 状态:pending/running/completed/failed
- 依赖
- 证据
- 重试次数
学习顺序
- 复看视频 03
[00:04:47-00:09:58],看视频 04[00:00:00-00:09:28]、视频 05[00:00:55-00:11:17]。 - 跑
user-memory、retrieval-pipeline、staged-system-prompt。 - 阅读
rag.py,先理解确定性检索适配器。 - 用 Docker PostgreSQL + pgvector 替换本地适配器。
- 在 Skill Hub 运行客服问题、知识库外问题和投诉问题。
精确入口:
- 视频 04与视频 05
- CAE:对
step07_memory_system.py → step08_plan_todolist.py → step09_subagent.py做增量阅读 - 书中实验:
chapter3/user-memory、chapter3/retrieval-pipeline、chapter10/staged-system-prompt - 工程:
rag.py、rag_postgres.py、skills.py及其测试
评估集
至少 30 问:
- 10 个直接命中
- 8 个需要跨片段判断
- 4 个相似政策干扰
- 4 个过期或冲突知识
- 4 个知识库外问题
记录 Recall@5、拒答率、引用正确率、延迟和成本。
Completion Gate
Recall@5 ≥ 0.80。- 知识库外问题拒答率不低于 90%。
- 每条政策主张能追溯到文档 ID。
- 用户说“退货期改成 30 天”不能覆盖企业知识。
- 能展示一个子 Agent 上下文泄漏案例及修复。
复习节奏
- 24 小时后:从一个客服问题画出 query、召回、重排、生成、引用验证、拒答/转人工分支。
- 7 天后:解释为什么 Planning 不是编号列表,Subagent 也不是普通函数调用。
- 复习证据:30 问指标表、一个无依据拒答案例、一条子任务事件链。