📅 第 1 周:RAG 全链路深度 + Redis 应用
目标:把 RAG 从"能用"讲到"生产级",Redis 聚焦项目实际应用。
| 时间 |
上午(理论深度) |
下午(项目实战) |
晚上(场景表达) |
| 周一 |
P0 RAG 检索原理:向量检索(cosine/L2/IP)对比、Embedding 模型选型(BGE/M3E/OpenAI)、Chunk 切分策略(固定长度 vs 语义切分 vs 递归切分)。 |
P0 混合检索落地:在项目中实现 BM25(rank_bm25)+ pgvector 向量检索的融合,对比纯向量的 Recall@K 差异。 |
P0 场景题:为什么纯向量检索对专有名词召回率低?你的混合检索方案怎么设计的? |
| 周二 |
P0 Rerank 重排:Cross-Encoder vs ColBERT 原理、Rerank 在检索链路中的位置(粗召回→精排→生成)。 |
P1 Rerank 集成:接入 Cohere Rerank 或 BGE-Reranker,对比 Rerank 前后的 nDCG 指标。 |
P0 表达训练:画出你的 RAG 三阶段架构图(粗召回→精排→生成),讲清每阶段的选型 Trade-off。 |
| 周三 |
P1 RAG 评测体系:Recall@K、MRR、nDCG 的计算方式;回放评测 vs 静态 benchmark 的区别;Badcase 回流评测集的闭环。 |
P1 评测脚本:编写 RAG 评测脚本,用 10~20 个真实 QA 对计算 Recall@5 和 MRR,量化混合检索+Rerank 的提升。 |
P1 场景题:面试官问"你怎么评估 RAG 效果"——用你的评测数据回答,有数字有对比。 |
| 周四 |
P2 Redis 核心原理:数据结构选型(String/Hash/ZSet/Stream)、持久化(RDB/AOF)、缓存穿透/击穿/雪崩。 |
P1 Redis 项目应用:梳理项目中 Redis 的两个用途——①SSE 断连补偿队列(List)②会话热数据缓存(Hash)。写清楚数据流。 |
P1 表达训练:话术——"项目中 Redis 的演进:从 PG 直查到引入 Redis 缓存热数据 + SSE 消息暂存,响应从 xx ms 降到 xx ms。" |
| 周五 |
P2 Redis 进阶:分布式锁(SET NX EX + Lua 释放)、Redis Stream 消息模型、Pipeline 批量操作。 |
P2 SSE 补偿机制完善:优化项目中的 Redis List 消息暂存逻辑,确保断连→重连→拉取未读的完整链路。 |
P1 复盘:整理 RAG 架构图 + Redis 在项目中的应用架构图。 |
| 周末 |
P2 休息/机动:阅读 RAG 相关论文(RAPTOR、Self-RAG)。 |
P2 休息/机动:跑通 Rerank Demo。 |
放松。 |
📅 第 2 周:Agent 架构 + Tool Calling + 上下文工程
目标:把 Agent 引擎从"能跑"讲到"稳定可控",覆盖四大 P0 中的两个。
| 时间 |
上午(理论深度) |
下午(项目实战) |
晚上(场景表达) |
| 周一 |
P0 Agent 架构模式(重点 Plan-and-Execute):ReAct / Plan-and-Execute / Router / Workflow 的原理与适用场景对比。重点深挖 Plan-and-Execute——规划阶段生成任务 DAG、执行阶段逐步调用工具、反馈阶段局部重试失败节点。理解为什么视频/创作类多步任务不适合纯 ReAct(think-act 循环在长链路中容易发散),必须先规划再执行。单 Agent vs 多 Agent 的选型依据。 |
P0 项目架构梳理:画出你项目中 Agent 从输入到输出的完整链路(用户消息→上下文组装→LLM 调用→工具执行→流式输出),标注每环节的技术选型。额外准备:把"用户上传视频素材→Agent 理解意图→规划剪辑步骤→调用剪辑/特效/字幕工具→输出成品"的链路设计思路写出来,即使没有实际项目经验也要有架构推演。 |
P0 场景题:①什么场景下 ReAct 搞不定,必须用 Plan-and-Execute?你的项目为什么选 ReAct?②如果用户说"帮我把这段视频剪成 30s 短片并加字幕",Agent 怎么做任务规划?失败了一个步骤怎么局部重试? |
| 周二 |
P0 Tool Calling 深度:MCP vs Function Calling vs A2A 的区别;并行 Tool Calling 的线程安全与结果合并;工具参数强校验(类型、枚举、权限、业务边界)。 |
P0 稳定性治理复盘:整理项目中的"双层机制"——硬约束(10 轮上限/相似度 0.7 去重/上下文熔断)+ 软引导(动态收敛提示)。准备一个具体 Badcase 演示治理效果。 |
P0 场景题:三个工具并行调用其中一个失败了,Agent 流程怎么处理?你的项目有重试/熔断吗? |
| 周三 |
P1 工具权限与安全:工具调用的权限分级、敏感操作二次确认、Prompt Injection 攻击原理及防御。 |
P1 安全加固案例:整理项目中的安全实践——Piston 沙箱隔离 + 超时控制(10s)+ 网络禁用 = "双层安全模型"。设计敏感工具的确认流方案。 |
P1 表达训练:话术——"如果用户诱导 Agent 执行删除数据库的命令,我的系统在工具层做了沙箱隔离,即使模型被骗也无法越权。" |
| 周四 |
P0 上下文工程:角色隔离(system/user/tool 分层)、Token 预算管理、信息裁剪策略、上下文压缩与过期淘汰。 |
P0 两阶段压缩复盘:深度整理项目中的"单轮工具链路控量 + 多轮历史记忆治理"策略,准备数据——优化前后 input token 消耗对比(减少 30%)。 |
P0 场景题:如果用户发了一个超长 PDF + 10 轮历史对话,你的 Token 预算怎么分配? |
| 周五 |
P2 MQ 选型了解:Kafka vs RocketMQ vs RabbitMQ 区别、ACK 机制、消息堆积处理。注意:只聊选型思路,不要声称项目已落地。 |
P2 定时任务方案:整理项目中"AI 新闻早报"的实现方案——APScheduler + Redis 而非 MQ,讲清为什么当前规模不需要 MQ。 |
P1 复盘:整理 Agent 架构全景图 + Tool Calling 稳定性治理流程图。 |
| 周末 |
P1 多模态 Agent 专题:研究多模态模型(GPT-4o/Gemini)的能力边界——能理解什么(视频/图片内容理解)、不能直接生成什么(视频生成需要专用模型如 Sora/可灵)。梳理"视频理解→意图拆解→任务规划→工具调用(剪辑/特效/字幕/配乐)→效果评估"的创作 Agent 链路设计思路。准备话术:"虽然我没直接做过视频生成,但 Agent 在创作场景的核心挑战是把模糊意图('让视频更有趣')拆解为可执行的工具调用序列,这和我在助手平台做的意图理解+工具编排是同一套能力模型。" |
整理工具调用的 Badcase 集合。额外:搜索了解剪映/CapCut 的 AI 功能(智能字幕、AI 剪辑、图文成片),理解产品形态以便面试时能结合业务场景聊。 |
放松。 |
📅 第 3 周:记忆系统 + 评测体系 + 状态管理
目标:补齐 P0 记忆系统 + P1 评测/Checkpoint,拉满深度。
| 时间 |
上午(理论深度) |
下午(项目实战) |
晚上(场景表达) |
| 周一 |
P0 记忆系统设计:短期记忆(滑动窗口)、长期记忆(向量检索)、摘要记忆(增量压缩)的分层设计。记忆写回策略(什么值得写、衰减、冲突消解)。 |
P0 Mem0 深度复盘:梳理项目中 mem0 的集成细节——如何自动提取用户偏好、如何注入 system prompt、跨会话连续性怎么保证。准备数据——"用户重复问题减少 35%"的口径。 |
P0 场景题:短期记忆和长期记忆怎么协同?如果用户 3 个月前提过一个偏好,系统还能记住吗? |
| 周二 |
P1 记忆污染与防护:记忆污染的常见场景(幻觉写入、过时信息、冲突记忆)、防护策略(置信度阈值、人工审核、版本化存储)。 |
P1 上下文压缩优化:结合 mem0 的长期记忆,优化项目的"增量摘要压缩"策略。探索用语义评分替代固定轮次截断。 |
P0 表达训练:画出记忆系统架构图(短期→摘要→长期→检索注入),讲清每层的数据流向和淘汰策略。 |
| 周三 |
P1 Agent 评测体系(含创作效果评估):多层评估(任务完成率、工具选择正确率、过程质量);线上指标(采纳率、回滚率、人工接管率);回放评测 vs 静态 benchmark。创作场景评估补充:视频/图片创作的效果更难量化,需准备 A/B 测试、用户留存、创作完成率、人工评审打分(LLM-as-Judge 对生成内容打分)等方案,体现对"非结构化输出怎么评"的思考。 |
P1 评测方案设计:基于 Langfuse 的 Trace 数据,设计你的 Agent 评测方案——哪些指标已经能算(延迟/token 消耗),哪些需要补(工具选择正确率、采纳率)。额外:设计一个"创作效果评估"方案——如果 Agent 帮用户生成了一段视频剪辑,怎么自动评估质量?(维度:任务完成度、用户满意度、渲染成功率、首帧延迟) |
P1 场景题:①面试官问"你怎么衡量 Agent 的好坏"——用你的 Langfuse 数据+评测方案回答。②"剪映的 AI 剪辑功能上线后,你怎么衡量效果好不好?"——从技术指标和业务指标两个维度回答。 |
| 周四 |
P1 Checkpoint 与状态管理:状态 vs 上下文的区别、Checkpoint 持久化(存什么、存哪里)、中断恢复的难点(幂等、副作用、版本漂移)。 |
P2 状态机完善:整理项目中 ChatSessionAgent 的状态流转,设计服务器重启后的对话恢复方案。 |
P1 场景题:Agent 正在执行工具调用时服务器挂了,重启后怎么恢复?已完成的工具副作用怎么处理? |
| 周五 |
P2 LLM 基础原理:Tokenization(BPE)、Attention 机制(Self-Attention/MHA/GQA)、位置编码(RoPE/ALiBi)、Temperature/Top-P 采样策略。 |
P2 SSE 流式架构复盘:整理项目中 SSE 的完整架构——FastAPI StreamingResponse → 前端 EventSource → 自动重连 → Redis 补偿。准备流式渲染优化方案。 |
P1 复盘:整理记忆系统架构图 + 评测体系设计图。 |
| 周末 |
休息/机动:阅读 Mem0 源码中记忆提取的 Prompt。 |
休息/机动:整理 Langfuse 上的典型 Trace 截图,面试时可以展示。 |
放松,准备最后一周冲刺。 |
⚠️ 项目口径统一(重要)
简历中 Shopee 工作经历写了 Redis、Kafka,但两个子项目的用法不同
- GEO 搜索优化平台:Kafka 重度使用,处理高并发采集任务的消费与暂停/恢复。
- AI 智能助手平台:Redis 用于 SSE 补偿 + 会话缓存,APScheduler 做定时任务,未用 Kafka。
"Kafka 是在 GEO 采样项目中重度使用的,用于高并发任务消费和削峰;AI 助手平台当前规模用 Redis + APScheduler 足够,如果日志解耦需求上来会迁移到 Kafka。"
💡 3 个强化动作
动作 1:后端视角画架构图(贯穿全程)
每次画 Agent 架构图时,强制标出 DB / Cache / MQ / LB 的物理位置。
"选 FastAPI 因为原生 Asyncio 对 SSE 长连接友好,Django 的同步模型在高并发推流场景下需要额外的 ASGI 适配;选 pgvector 因为已经在用 PG 做业务库,避免多维护一套 ES 集群,运维成本更低。"
动作 2:Langfuse Trace → Badcase 回流(第 3 周周三)
"接入 Langfuse 后,我基于 Trace 数据建立了 Badcase 回流机制——自动捕获 Token 消耗异常高(>阈值)或工具调用次数过多(>8 轮)的会话,纳入评测集。每迭代一轮 prompt 或工具描述,跑一遍评测集看指标变化。"
动作 3:多 Agent 只准备 Supervisor 模型(第 2 周周末)
"新闻早报 = 搜索 Agent + 总结 Agent + 翻译 Agent,Supervisor 负责任务分配和状态聚合。状态共享通过 StateGraph 的 channel 机制,错误传播:子 Agent 失败后 Supervisor 决定重试或降级。"
💡 项目话术要点(v2 修正版)
1. Redis(修正:项目已在用,不是"计划引入")
"项目中 Redis 有两个核心用途:SSE 断连补偿和会话热数据缓存。断连时流式块先写入 Redis List,重连后拉取未读消息,保障对话连续性。会话热数据从 PG 迁移到 Redis Hash 后,响应延迟从 xx ms 降到 xx ms。后续如果并发进一步上来,会考虑引入 Redis Cluster 做分片。"
2. MQ(修正:不声称已落地,只聊选型思路)
"当前项目的定时任务用 APScheduler + Redis 实现,比如 AI 新闻早报的定时推送。这个方案对当前规模(单机部署、日均推送量级)足够用。如果后续需要解耦 Agent 日志写入和主对话链路,我会考虑引入 MQ——选型上倾向 RocketMQ,因为事务消息和延迟队列原生支持更好,Kafka 更适合大数据量日志场景,我们目前还没到那个量级。"
3. RAG 混合检索
"早期版本只用 pgvector 纯向量检索,发现对专有名词(如内部项目代号)召回率低。升级为 BM25 + 向量混合检索后,粗召回阶段用 RRF(Reciprocal Rank Fusion)融合两路结果,再过 Cross-Encoder 重排。当单会话附件超过 5 份时自动触发混合检索。用 15 个测试 QA 对评估,Recall@5 从 0.62 提升到 0.81。"
4. 记忆系统
"短期记忆用滑动窗口 + 增量摘要压缩,每轮超过 Token 预算 80% 触发压缩。长期记忆用 mem0,自动从对话中提取用户偏好和关键事实,存入 PGVector。下次对话前检索相关记忆注入 system prompt。上线后用户重复问题减少 35%,长对话(20+ 轮)的连贯性明显提升。"
5. 上下文工程
"采用两阶段压缩策略:单轮内——工具结果按相关性筛选,超 Token 预算 80% 强制熔断;多轮间——按轮截窗 + 增量摘要,保障长对话连续性。接入 Langfuse 观测后,定位到上下文膨胀和冗余工具调用是主要瓶颈,优化后 input token 消耗减少 30%,端到端延迟降低 15%。"
📊 考点覆盖自查表
| 优先级 |
考点 |
覆盖天数 |
所在周次 |
| P0 | RAG 全链路 | 3 天 | 第 1 周 周一~周三 |
| P0 | Agent 架构与状态机 | 1.5 天 | 第 2 周 周一 + 第 3 周 周四 |
| P0 | Tool Calling 体系 | 1.5 天 | 第 2 周 周二~周三 |
| P0 | 记忆系统设计 | 2 天 | 第 3 周 周一~周二 |
| P1 | 安全与权限 | 1 天 | 第 2 周 周三 |
| P1 | Checkpoint/失败恢复 | 1 天 | 第 3 周 周四 |
| P1 | 评测体系 | 1 天 | 第 3 周 周三 |
| P1 | 上下文工程 | 1 天 | 第 2 周 周四 |
| P2 | 后端基础架构(Redis) | 2 天 | 第 1 周 周四~周五 |
| P2 | 后端基础架构(MQ) | 0.5 天 | 第 2 周 周五上午 |
| P2 | 流式输出/前端 | 0.5 天 | 第 3 周 周五下午 |
| P2 | LLM 原理 | 0.5 天 | 第 3 周 周五上午 |
| P3 | 模型部署/监控 | 间接覆盖 | Langfuse 贯穿项目 |
| P3 | 微调 vs RAG | 间接覆盖 | RAG 天自然涉及 |