RAG 链路
用户问题 → Query 改写/扩展
→ Embedding 检索(向量库 + 可选 BM25 混合)
→ Rerank 精排 Top-K
→ 拼 Prompt + LLM 生成
→ 后处理(引用、拒答、安全)
分块策略:chunk size、overlap、按标题/段落语义切;表格与代码块单独处理。
向量检索
Embedding 模型将文本映射向量;ANN(HNSW、IVF)近似最近邻。元数据过滤(tenant、时间)在检索前缩小集合。
混合检索:关键词 + 向量,RRF 融合,提升专有名词命中。
Agent 架构
- Planner:分解子任务
- Tool:search、sql、http、code interpreter
- Memory:短期对话 + 长期向量记忆
- Loop:ReAct(Thought-Action-Observation)直到终止
# 概念伪代码
while not done:
action = llm.plan(context, tools)
if action.type == "tool":
obs = toolsaction.name
context.append(obs)
else:
return action.answer
工程要点
- 超时与取消:context 传播(Go
week02-go-mutex-context) - 幂等 tool call:写操作带 idempotency key
- 观测:trace 每步 latency、token、检索 hit
- 安全:工具权限白名单、Prompt 注入防护
与站内路径
/zh/knowledge/agent/rag-architecture、/zh/knowledge/agent/build-first-agent 可延伸阅读。Week 8 侧重 面试能讲清架构与权衡。
常见面试题
RAG vs 微调何时选?数据常变、成本低用 RAG;风格/格式深度定制可微调或小模型。Agent 失控如何限步数、人工确认写操作。
下一篇
week08-llm-api-prompt 讲 API 与 Prompt 工程细节。
实战巩固与面试表达
本篇属于 8 周冲刺 week08-rag-agent-engineering 主题。复习时先闭卷回答 frontmatter 中三张 flashcard,再展开口述两个「为什么」:为什么这种方案能 work、边界失败时如何降级。与相邻章节对照:算法篇强调复杂度与模板,Go 篇强调工程默认写法,中间件篇强调线上故障案例。
动手与自检清单
用 25 分钟限时做 1 道相关练习题或画出一张架构/数据结构示意图;用 5 分钟写 STAR 片段说明你在项目里是否用过类似技术。记录 3 个面试追问及你的标准答法,存入 /zh/notebook/master-plan 笔记。若某点不熟,回到对应 /chapters 交互 Lab 重新走一遍流程,比死记卡片更有效。
易错点提醒
避免只背名词不会画图;避免只说优点不谈 trade-off(性能、一致性、运维成本至少提一项);避免把学习 Demo 说成百万 QPS 生产。回答时使用「场景 → 方案 → 结果 → 反思」四段式,体现工程成熟度。
自检
画一条带 rerank 的 RAG 时序;说明 chunk 过大/过小的 trade-off。