Skip to content

18 · 读地图:用框架拆解陌生系统

一句话点题:会设计的人,首先要会「读」——对着一张陌生的架构图,用同一套问题把「为什么这么连」一层层剥出来。AI 系统看着新,可这套读图动作一个字都不用改。


🎯 实战篇第 1 章 · 本章只练一件事

不设计、不写代码——只练逆向读图:拿到一张架构说明,能说出约束、灵魂路径、关键取舍、先死在哪。

读完你应该能本章怎么练
用四步法读任何模板,不从头读到尾第一节:方法 + 读图笔记模板
跟着示范走通一遍第二节:RAG 知识库(示范,约 15 分钟)
自己填一张读图笔记第三节:AI 对话产品(10 分钟练习)
换一个系统独立完成第四节:课后作业

为什么实战篇拿 AI 系统开刀? 因为它们正是大多数人「最不熟、最容易被术语唬住」的陌生系统——而读图法恰恰是用来对付陌生的。下一章(19)起,我们会正向设计一个 AI 智能客服;本章先用它的「近亲」练眼:学会读,才谈得上设计。


一、方法与工具:四步 + 三问 + 一页笔记

07 章正向:约束 → 方案 → 图。本章是逆向:图 → 反推约束与取舍。

   设计:  约束 ──▶ 方案 ──▶ 图
   读图:  图 ──▶ 约束 ──▶ 取舍 ──▶ 「换约束还会这样吗?」

认字 vs 读懂:认字是「有向量库、有编排层、有 GPU」;读懂是对每个框能答三问(02 框架 的逆向):

  1. 它在服务哪个质量属性约束?
  2. 放弃了什么?
  3. 规模涨 100 倍,这里会先裂吗?

四步读图(口诀:本质 → 全景 → 取舍 → 死穴)。读仓库里任意一张 模板 时,可按段对照:需求与约束 → 全景图与数据流 → 关键决策 → 瓶颈与误区。

步骤你在干什么
① 抓本质功能需求 + 质量属性 + 硬约束
② 看全景灵魂数据流是哪条(跟一条请求走完)
③ 挖取舍2~3 个「选了 X,放弃 Y」
④ 找死穴第一个规模化瓶颈 + 一个常见反模式

读图笔记模板(示范、练习、作业都填这一张):

系统名: _______________

① 本质
  · 一句话业务: 
  · 质量属性(最重的 2 条): 
  · 硬约束(1 条): 

② 全景
  · 灵魂路径(一句话): 

③ 取舍(至少 2 条)
  · 选了 ___ / 放弃 ___ / 因为约束 ___ 
  · 选了 ___ / 放弃 ___ / 因为约束 ___ 

④ 死穴
  · 先死在哪: 
  · 常见反模式(我见过的一种):

AI 系统读图,只多盯三个新约束(都来自 17 章,后面几章会反复用):成本(每次调用都在烧 token)、非确定性(同样输入未必同样输出)、上下文(模型的工作内存有限且昂贵)。读 AI 地图时,在「质量属性」和「取舍」里多问一句:这块是在省钱、在防胡说,还是在管上下文?


二、示范:跟着读「RAG 知识库」(约 15 分钟)

是什么:把你自己的文档切块、向量化、建索引,用户提问时先检索出最相关的几段塞进 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 分钟)

  1. 材料 B,按四步填一张AI 对话产品读图笔记(先别看下面参考答案)。
  2. 回答对照三问(先自答,再展开答案)。

对照三问:

  1. 为什么这类系统几乎一定选流式输出(SSE),而不是憋完整答案再返回?
  2. 为什么说「成本」在这里是第一天就要管的架构议题,而普通网站可以「先上线再优化」?
  3. 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 经典系统的读图,动作一模一样」。

步骤照旧:

  1. 合上「关键决策」段。
  2. 用第一节的读图笔记模板填空。
  3. 打开模板对照——不一样不要紧,能说清约束不同即可。

🎯 随堂检验

🤔用本章四步读图法读一张架构地图,正确的顺序是?
  • A从文档开头顺序读到结尾,每一段都不能漏
  • B先抓本质(需求/约束) → 看全景与数据流 → 挖关键决策 → 找瓶颈与反模式
  • C只看架构全景图,图看懂了就等于读懂了
🤔读一张 RAG 知识库的架构图,最该认定为「决定回答质量上限」的环节是?
  • A底层用的大模型有多大、多强
  • B检索得准不准——有没有把对的资料找出来
  • Cprompt 模板写得多花哨

本章小结

  • 本章只练逆向读图,产出物是一页读图笔记,不是设计方案。
  • 四步 + 三问:本质 → 全景 → 取舍 → 死穴;AI 系统再多盯三个新约束:成本 / 非确定性 / 上下文
  • RAG = 示范:灵魂路径「离线建库 → 在线检索 → 模型照着写」;一句话——RAG 的上限 = 检索的上限
  • AI 对话产品 = 10 分钟练习:半页材料 + 自填笔记 + 对照三问;重点练「MVP 调 API 与成熟期自建 GPU 的差异 = 约束随阶段变」。
  • 作业:任选一个模板(建议 AI Agent / 推理服务),15 分钟填笔记。

承上启下:你已经会别人的 AI 地图了。下一章 19 · 完整设计演练:中等复杂度系统 换你正向画图——用 07 章 的八步,从 0 设计一个「能查单、能退款」的 AI 智能客服:既要管 AI 的新约束(防胡说、烧钱、非确定),又要扛经典硬约束(钱不能错)。读图练眼,设计练手。

💬 评论