系统设计题 + 68 天收官
昨天(Day 67)把概念题逐条过了一遍。今天(Day 68)是最后一天:先教你怎么答"设计一个客服/文档 Agent"这类系统设计题(一套需求澄清→架构→检索/工具→评测→成本→上线的答题框架),用它现场演练一遍;再带你回望全程 68 天你都学到了什么、织成了怎样一张能力网;最后给你一份能立刻照着做的下一步行动清单。这一天走完,你就毕业了。🎓
系统设计题:先别急着画架构图
第①②步:需求澄清 & 架构分层
- 谁用、干嘛:内部员工查制度?还是对外客服答疑?(决定语气、权限、容错度)
- 数据规模与更新:多少文档?多久更新一次?(决定要不要重建索引、增量更新)
- 准确度要求:答错的代价多大?(高风险场景要加 Critic 校验、要能说"不知道")
- 延迟与并发:要秒回吗?同时多少人用?(决定要不要缓存、流式输出)
- 预算:能用贵模型吗?(决定模型选型和路由策略)
第③④步:检索/工具选型 & 评测方案
| 环节 | 关键决策 | 参考答法(带取舍) |
|---|---|---|
| 切块 | 怎么切、多大 | 按语义/段落切+overlap;标题类短文档整块留。太大噪声多、太小语义断 |
| 检索 | 怎么提准确率 | 向量+BM25 混合召回,再 rerank 精排 top-k;按部门/权限做元数据过滤 |
| 工具 | Agent 要哪些手 | 查订单/工单、转人工、提交表单;描述清晰、幂等、错误结构化返回 |
| 防幻觉 | 怎么不瞎编 | "只据资料答、没有就说不知道"+带引用ID+Critic 校验高风险回答 |
| 评测 | 怎么验收 | 攒 golden set;检索看 hit rate/MRR,生成看 faithfulness/相关性;接 CI 回归 |
"我会先攒 50~100 条真实问题+标准答案做成 golden set。每次改 prompt 或换模型,都自动跑一遍:检索层看命中率(MRR),回答层用 LLM-as-Judge 打忠实度和相关性分。这套评测接进 CI,分数掉了就拦住合并——保证每次上线都是'有数据证明变好了',而不是凭感觉。" —— 这段话直接体现你懂"评测驱动",是资深味道。第⑤⑥步:成本核算 & 上线运维
"成本上我会做三件事:① 缓存——重复/相似问题直接命中缓存不再调模型;② 模型路由——简单问题走便宜模型、复杂的才上贵模型;③ 控上下文——检索精一点、历史做摘要,别让 token 无谓膨胀。再加个预算闸,超额告警。"👶 小白:系统设计题我要不要把每一层的具体技术选型(哪个向量库、哪个模型)都说死?
👨🏫 老师:不要说死,要给选项+理由+取舍。比如向量库:"小规模用 FAISS 够了,要多人协作和过滤就上 Qdrant/pgvector"——这比直接说"用 Milvus"高级得多,因为你展示了"我知道有哪些选择、也知道什么场景选什么"。面试官怕的不是你不知道某个具体工具,而是你只知道一个工具、不知道为什么用它。记住:系统设计考的是判断力,不是背诵力。
实战演练:3 分钟答完"设计一个客服 Agent"
①先澄清:我想先确认几点——这个客服 Agent 是对外用户还是内部坐席辅助?知识来源是产品文档还是工单历史?答错的代价高不高、要不要能转人工?大概多少并发、预算如何?(假设:对外、基于产品文档+订单系统、要求准、能转人工、中等并发)
②架构:我会分六层——入口层(聊天窗,鉴权限流、流式返回)、编排层(Agent 主循环,带护栏)、能力层(RAG 检索文档 + 查订单/转人工工具)、模型层(带路由)、数据层(向量库+原文)、观测层。
③检索/工具:文档按语义切块加 overlap;检索用向量+关键词混合再 rerank;订单查询等做成描述清晰、幂等、错误结构化的工具;答案要求只据资料回答、带出处,高风险回答过一遍 Critic 校验。
④评测:攒一批真实问答做 golden set,检索看命中率、回答用 LLM-as-Judge 看忠实度与相关性,接进 CI 做回归,分数掉了就拦。
⑤成本:缓存高频问题、简单问题走便宜模型、控上下文长度,设预算告警。
⑥上线:加降级兜底和危险动作审批,上线后监控 token/延迟/错误率/输出漂移,灰度放量、可回滚。
最后我会强调:先做一个最小可用版本跑通端到端,再用评测数据一轮轮迭代,而不是一上来就追求完美。
68 天全程复盘:你织成了怎样一张网
| 阶段 | 你学会了 | 一句话价值 |
|---|---|---|
| S0-1 地基 (D1-9) | Python/命令行/Git/API/异步/FastAPI | 能读懂、能动手写代码 |
| S2 大模型 (D10-15) | 调 LLM、流式、参数成本、结构化输出、多模型 | 会用模型这块"砖" |
| S3 提示词 (D16-20) | Prompt/CoT/上下文工程/注入防护 | 会指挥模型好好干活 |
| S4 RAG (D21-28) | 切块/embedding/向量库/检索/rerank/评测 | 给模型外挂可信知识 |
| S5-6 工具&Agent (D29-38) | Function Calling/MCP/主循环/ReAct/记忆/手写Agent | 让模型会"动手办事" |
| S7-8 框架&多智能体 (D39-48) | LangGraph/CrewAI/协作模式/主管-专家 | 把 Agent 工程化、组队 |
| S9-10 评测&可信 (D49-56) | 评测体系/LLM-Judge/Critic/护栏/可观测/成本治理 | 让系统可信、可上线 |
| S11-12 部署&求职 (D57-68) | Docker/K8s/CI-CD/云/网关/作品集/简历/面试 | 交付+把自己卖出去 |
下一步行动清单:从今天到拿到 offer
📤 求职行动(本周就开始)
- 作品先行:确保 Day62-64 三个项目里至少 1 个在 GitHub 上有清晰 README + demo 录屏。
- 简历定稿:用 Day66 的 STAR(问题→方案→指标)写好,数字量化,一页纸。
- 小步投递:先投 5~10 家练手,别一次投完;每次面试后记下被问倒的题,回来补。
- 去看岗位:对照岗位要求反推还差什么(💼 岗位分析页)。
- 模拟面试:找朋友/用 AI 陪练,把 Day67 概念题 + 今天系统设计口述练到流畅。
📚 持续学习(长期,别停)
- 深潜源码:挑一个最感兴趣的方向深入——RAG 看《LlamaIndex 精讲》、编排看《LangGraph 精讲》、可信工程看《gov-agents 精讲》、网关看《Higress/APISIX 精讲》。
- 跟进前沿:这行变化快,养成读官方文档/发布说明的习惯(概念稳、API 常变)。
- 持续产出:每做一个小项目就写一篇博客讲"设计取舍",作品和影响力一起攒。
- 参与开源:给用过的开源 Agent 项目提 issue/PR,既学习又是简历亮点。
毕业寄语
🎓 恭喜你,毕业了!
68 天前,你可能连 Python 变量都没写过;今天,你能讲清 RAG、Agent、评测的原理,能照框架设计一个可信 Agent 系统,手里还攒着作品集和一份能打的简历。这不是终点,是你作为 Agent 工程师的起点。
你走完的不只是 68 个页面,而是一条别人以为"很难、学不会"、却被你一天天啃下来的路。能坚持到这里,本身就证明了你适合这行——因为做 Agent,靠的正是这种"拆解目标、一步步逼近、不轻易放弃"的能力。
现在,合上教程,去把第一份简历投出去吧。祝你早日上岸。🚀
🧠 收官这天你应该能
- 用六步框架(需求→架构→检索/工具→评测→成本→上线)答系统设计题。
- 对着"客服/文档 Agent"现场口述一段 3 分钟的完整方案。
- 说清 68 天每个阶段学了什么、在整张能力网里是什么位置。
- 拿出一份可执行的求职 + 持续学习行动清单,并从本周开始动手。
✋ 动手 10 分钟:完成"毕业三件事"
# 毕业收官·立刻做(做完就真正闭环了)
[ ] 1. 大声口述一遍"设计一个文档 Agent"(照 L05 模板,计时≤3 分钟)
[ ] 2. 打开 GitHub,给你最好的一个作品补上 README + 一张截图/录屏
[ ] 3. 在日历上定一个"本周投递 3 家"的提醒,并列出目标公司名单
# 可选:把这 68 天最大的一个收获写成一条朋友圈/一篇短博客
# —— 输出即巩固,也是你影响力的第一块砖