18 · 读地图:用框架拆解陌生系统
一句话点题:会设计的人,首先要会读图:对着一张陌生的架构图,用同一套问题把每条连接背后的原因一层层剥出来。AI 系统看着新,可这套读图动作一个字都不用改。
🎯 实战篇第 1 章 · 本章只练一件事
不设计、不写代码——只练逆向读图:拿到一张架构说明,能说出约束、灵魂路径、关键取舍、先死在哪。
读完你应该能 本章怎么练 用四步法读任何模板,不从头读到尾 第一节:方法 + 读图笔记模板 跟着示范走通一遍 第二节:RAG 知识库示范,约 15 分钟 自己填一张读图笔记 第三节:AI 对话产品,10 分钟练习 换一个系统独立完成 第四节:课后作业 为什么实战篇拿 AI 系统开刀? 因为它们正是大多数人最不熟、最容易被术语唬住的陌生系统——而读图法恰恰是用来对付陌生的。下一章,也就是第 19 章起,我们会正向设计一个 AI 智能客服;本章先用它的近亲练眼:学会读,才谈得上设计。
一、方法与工具:四步 + 三问 + 一页笔记
07 章 是正向:约束 → 方案 → 图。本章是逆向:图 → 反推约束与取舍。
设计: 约束 ──▶ 方案 ──▶ 图
读图: 图 ──▶ 约束 ──▶ 取舍 ──▶ 换约束还会这样吗?认字 vs 读懂:认字是看到有向量库、有编排层、有 GPU;读懂是对每个框能答三问(02 框架 的逆向):
- 它在服务哪个质量属性或约束?
- 它放弃了什么?
- 规模涨 100 倍,这里会先裂吗?
四步读图口诀:本质 → 全景 → 取舍 → 死穴。读仓库里任意一张 模板 时,可按段对照:需求与约束 → 全景图与数据流 → 关键决策 → 瓶颈与误区。
| 步骤 | 你在干什么 |
|---|---|
| ① 抓本质 | 功能需求 + 质量属性 + 硬约束 |
| ② 看全景 | 灵魂数据流是哪条,跟一条请求走完 |
| ③ 挖取舍 | 2~3 个选择 X、放弃 Y 的判断 |
| ④ 找死穴 | 第一个规模化瓶颈 + 一个常见反模式 |
读图笔记模板:示范、练习、作业都填这一张。
系统名: _______________
① 本质
· 一句话业务:
· 质量属性(最重的 2 条):
· 硬约束(1 条):
② 全景
· 灵魂路径(一句话):
③ 取舍(至少 2 条)
· 选了 ___ / 放弃 ___ / 因为约束 ___
· 选了 ___ / 放弃 ___ / 因为约束 ___
④ 死穴
· 先死在哪:
· 常见反模式(我见过的一种):AI 系统读图,只多盯三个新约束。这三个约束都来自 17 章,后面几章会反复用:成本:每次调用都在烧 token;非确定性:同样输入未必同样输出;上下文:模型的工作内存有限且昂贵。读 AI 地图时,在质量属性和取舍这两栏里多问一句:这块是在省钱、在防胡说,还是在管上下文?
二、示范:约 15 分钟读 RAG 知识库
是什么:把你自己的文档切块、向量化、建索引,用户提问时先检索出最相关的几段塞进 prompt,让大模型开卷考试——基于你的资料作答,而不是凭训练记忆瞎编。
读图目标:填完上面笔记模板。下面按四步走;不必背 RAG 细节,要背的是读图动作。
① 抓本质 → 填笔记的本质栏
| 要点 | |
|---|---|
| 功能 | 文档接入、切块+向量化、向量+关键词检索、重排、组装上下文生成带引用的答案 |
| 质量属性主线 | 检索质量:找不准模型必胡说 · 可溯源:答案能指回原文 · 成本:切块/检索/生成三段都烧钱 |
| 硬约束 | 检索质量决定回答上限;上下文窗口塞不下全部资料;检索到的内容是不可信输入,可能藏注入 |
✅ 这一步结束,你应该能说出:这不是问一个更聪明的模型,而是让模型开卷考试——功力八成在检索。
② 看全景 → 填笔记的全景栏
离线: 文档 → 解析 → 切块 → 向量化 → 写入向量库(块向量+来源)
在线: 提问 → ①向量+关键词召回 ②重排选 top-K → ③组装 prompt → LLM → 带引用答案跟一条退款政策问题走:问题向量化 → 向量库召回 ~20 块 → 重排精选 3~5 块 → 拼进 prompt → 模型照着写答案 + 附上依据:政策文档 3.2 节。
| 图上的关键块 | 在服务什么 |
|---|---|
| 离线建库:切块+向量化 | 把资料变成可检索的形态 |
| 召回 + 重排:两阶段漏斗 | 检索质量:先广后精 |
| 引用来源 | 可溯源:可信、可核实 |
| 把检索结果当不可信文本 | 防提示注入 |
✅ 这一步结束,你应该能说出灵魂路径:离线把资料组织好 → 在线把对的资料找出来 → 模型照着写,而不是把问题直接丢给模型。
③ 挖取舍 → 填笔记的取舍栏:示范写 2 条
| 决策 | 选了 | 放弃 | 因为 |
|---|---|---|---|
| RAG vs 长上下文 vs 微调 | RAG 临时检索 | 把资料全塞进 prompt 的简单 | 资料多、要常更新、要溯源——长上下文又贵又容易迷失在中间 |
| 纯向量 vs 混合检索 | 混合:向量+关键词 + 重排 | 纯向量的实现简单 | 向量擅长语义、却对产品型号/人名等精确词不灵 |
另两条你读图时常见:切块怎么切是检索质量的隐形开关;检索结果永远当不可信输入。
✅ 这一步结束,你应该能写出:至少 2 条选了 / 放弃 / 因为的判断。
④ 找死穴 → 填笔记的死穴栏
| 先死在哪 | 破解方向 |
|---|---|
| 检索质量差 → 模型跟着胡说 | 混合检索 + 重排 + 持续评测召回,这是面试和生产高频点 |
| 向量规模、embedding 成本涨上来 | 向量库分片 + 增量更新,只重算变化的块 |
反模式举例:检索拉胯却怪模型太笨;切块拍脑袋:太大噪音多,太小丢上下文;不给引用。
✅ 四步走完,你应该有一张完整的读图笔记。
架构智慧:RAG 的图再花哨,记住一句——RAG 的上限 = 检索的上限(garbage in, garbage out)。 模型只是最后读着资料写答案的环节,八成功力在把对的资料找出来。其它框都是为这句服务。
📎 需要更多切块、重排、Contextual Retrieval 细节时,再翻 RAG 知识库模板。
三、10 分钟练习:AI 对话产品,设计 ↔ 读图
这一节不是第二篇长文。你带着半页材料 + 读图笔记模板,自己填;最后对答案。
为什么挑它? 因为它就是下一章我们要正向设计的 AI 智能客服的母体。先把它读懂,第 19 章动手设计时你会快一倍。
材料 A:MVP 版搭法摘要
| MVP 怎么定的 | |
|---|---|
| 范围 | 要:多轮对话、流式输出 · 先砍:不要 RAG、自建 GPU、工具调用 |
| 全景 | 客户端带着历史 → 薄薄一层编排 → 直接调某个模型厂商的 API → SSE 流式吐字 |
| 成本 | 按调用付费,先不优化——先验证有没有人用 |
材料 B:成熟期成品地图要点摘要
| 成品地图怎么定的 | |
|---|---|
| 灵魂部件 | 推理服务(GPU)——最贵最稀缺,整套架构都在尽量喂饱、用满、用省它 |
| 全景 | 网关:鉴权/限流/维持流式连接 → 编排层:组装上下文+安全+Agent 循环+计费 → |
| 省钱三件套 | 连续批处理:GPU 不空转、prompt 缓存:重复前缀不重算、模型路由:简单问题给小模型 |
| 死穴 | GPU 被打满→首字延迟飙升;上下文越长单请求越吃显存;成本本身就是瓶颈 |
你的任务:计时 10 分钟
- 用材料 B,按四步填一张AI 对话产品读图笔记,先别看下面参考答案。
- 回答对照三问,先自答,再展开答案。
对照三问:
- 为什么这类系统几乎一定选流式输出(SSE),而不是憋完整答案再返回?
- 为什么说成本在这里是第一天就要管的架构议题,而普通网站可以先上线再优化?
- MVP 直接调 API,成熟期却要自建 GPU + 连续批处理——是 MVP 错了吗?
参考答案:AI 对话产品读图笔记示例
系统名: AI 对话产品:成熟期成品地图
① 本质
· 一句话: 把一个昂贵的推理大脑(LLM)包装成可对话、能流式、能用工具的产品
· 质量属性: 首字延迟(TTFT)极低;生成吞吐高;每千 token 成本越低越好
· 硬约束: GPU 又贵又缺(头号约束);上下文窗口有限;推理是有状态计算(KV cache 吃显存)
② 全景
· 灵魂路径: 网关维持流式连接 → 编排层组装上下文+安全 → 推理服务把多请求拼批喂 GPU → token 一个个 SSE 回传
③ 取舍
· 选了 流式 SSE / 放弃 一次性返回 / 因为 感知延迟比真实总延迟更重要
· 选了 连续批处理+prompt缓存+模型路由 / 放弃 每请求单独算的简单 / 因为 GPU 是头号稀缺资源,成本即毛利
④ 死穴
· 先死在哪: GPU 集群被打满 → 请求排队 → 首字延迟飙升
· 反模式: 当普通 CRUD 网站设计、不做流式、每轮重算全部历史从不缓存、不记 token 账参考答案:对照三问
1. 为什么几乎一定流式? 一次性返回要让用户盯着空白屏幕等十几秒,体验灾难;流式让首字 1 秒内就出,感知延迟骤降。代价是连接管理、重试恢复更复杂——但值。
2. 为什么成本第一天就管? 普通网站多一次请求几乎不要钱,这里多生成 1000 字就是实打实的 GPU 成本。如果不做缓存、路由、批处理,毛利直接为负。所以省钱从第一天就是架构议题,不是上线后的优化项。
3. MVP 错了吗? 没错,是约束不同。
| 约束 | 选 |
|---|---|
| 还在验证有没有人用的 MVP | 直接调 API — 最快上线,别自建 GPU |
| 已有稳定流量、成本压毛利的成熟期 | 自建 GPU + 批处理 + 路由 — 把单 token 成本打下来 |
先有人用,才谈得上省钱——这正是第 20 章演进剧本的主线。
和材料 A 的 MVP 不一致时怎么说? 先问:现在到底在解决哪个问题? 验证需求 → 调 API 合理;成本压毛利 → 才自建。不是谁错,是约束随阶段变了。
四、课后作业:换一个系统,15 分钟
任选 templates/ 里没读过的一个,建议先在 AI 系统里挑:
- AI Agent / 工作流平台 —— 第 22 章会正向设计它,先读眼熟。
- 模型推理服务 —— 把上面的推理服务那个框放大特写。
- 想找对照,也可挑一个经典系统,比如支付、在线票务,感受 AI 系统 vs 经典系统的读图动作一模一样。
步骤照旧:
- 合上关键决策段。
- 用第一节的读图笔记模板填空。
- 打开模板对照——不一样不要紧,能说清约束不同即可。
🎯 随堂检验
本章小结
- 本章只练逆向读图,产出物是一页读图笔记,不是设计方案。
- 四步 + 三问:本质 → 全景 → 取舍 → 死穴;AI 系统再多盯三个新约束:成本 / 非确定性 / 上下文。
- RAG = 示范:灵魂路径是离线建库 → 在线检索 → 模型照着写;一句话——RAG 的上限 = 检索的上限。
- AI 对话产品 = 10 分钟练习:半页材料 + 自填笔记 + 对照三问;重点练 MVP 调 API 与成熟期自建 GPU 的差异:约束随阶段变。
- 作业:任选一个模板,建议 AI Agent / 推理服务,15 分钟填笔记。
承上启下:你已经会读别人的 AI 地图了。下一章 19 · 完整设计演练:中等复杂度系统 换你正向画图——用 07 章 的八步,从 0 设计一个能查单、能退款的 AI 智能客服:既要管 AI 的新约束:防胡说、烧钱、非确定;又要扛经典硬约束:钱不能错。读图练眼,设计练手。
💬 评论