后台管理系统 · 画图入门手册

以一个后台基础工具「用户管理」为起点,从零学会产品经理最常用的 8 张图。每张图都给「怎么下笔 → 完整源码 → 踩坑点 → 动手练习」。

8 张图 · 由易到难 全部可直接复制源码 配 10 道练习题

为什么起点选「用户管理」

后台系统里的工具分两类:CRUD 型(用户管理、商品管理、标签管理)和流程型(退款审批、工单、报销)。流程型带状态、跨角色,新手一上来就画它,会被"状态"和"跨部门"两个难点同时卡住。

用户管理是标准的 CRUD,关系最干净:有列表、有详情、有增删改、有状态、有权限——恰好每一张图都能画到最小的规模。学会它,退款审批那种复杂图只是往上加料:多加两个角色、多加几个状态而已。

先学哪几张?手册里 8 张图,6 张是「必会画」(功能结构图、信息架构图、页面流程图、泳道图、状态流转图、分层架构图),2 张是「常用」(ER 图、时序图)。
时间紧就按 1 → 2 → 4 → 5 → 3 → 8 的顺序学:先把「有哪些功能」「页面怎么组织」弄清,再学分权责的泳道图和管状态的状态图,然后回头看页面流程图,最后补分层架构图——它要等你对系统有概念之后才画得出来ER 图和时序图放最后,它们是跟研发对话用的,画粗一点没关系。
先记住一句话:画图难的不是画,是想清楚。你觉得图画不出来,99% 是因为内容还没想明白,不是因为不会用工具。所以下面每张图都会先教你「先想什么」,再教你「怎么画」。

0. 开始之前:画图的 3 步心法

这段比后面 8 张图都重要。心法不对,画 100 张图也长不了本事。

顺序永远是:列清单 → 连关系 → 最后才调样式

新手最常见的错误是:打开工具 → 挑模板 → 拖框 → 想内容。正确顺序刚好反过来。

  1. 列清单(在纸上或纯文本里做,不开工具)。把这张图要表达的所有"点"写成一行一行的文字。比如画功能结构图,就先写:用户列表、搜索、分页、导出、用户详情…… 写到你觉得"想不出新的了"为止。
  2. 连关系。问每两个点之间是什么关系:谁包含谁?谁在谁后面?谁能跳到谁?把关系写成箭头,比如「用户管理 → 用户列表」。这一步做完,图其实已经完成了 80%。
  3. 最后才打开工具排版。把上一步的文字直接转成图,再对齐、配色、调字号。样式只花 5 分钟,内容花 50 分钟。
一个检验方法:如果你能在纯文本里把这张图写完(用"→"和缩进就够了),说明内容想清楚了。如果纯文本写不出来,换什么工具都画不出来。

三个必须先定的事

问题为什么必须先问
这张图给谁看给老板看要结论、给研发看要细节、给测试看要分支。同一件事,三种画法。
要表达哪一个问题一张图只回答一个问题。想同时表达"谁做什么"和"数据怎么存",就必须画两张。
图里不画什么不主动砍,图一定会画爆。先定"这一版不画的部分",比加东西难,也更有用。
关于工具:本手册所有图都用 Mermaid 写。原因很实在——它是文本,改一个字图就更新,能贴进飞书文档代码块直接渲染,还能进 Git 做版本管理。你不需要精通它,只要会改就行。第 9 章会给两条上手路线。

1. 功能结构图 ★☆☆ 最简单 约 10 分钟学会

什么时候用:需求刚立项,你要跟别人说清"这个工具到底包含哪些功能"。它是所有图里最容易画、也最该先画的——因为它逼你把功能列全。

先想什么

一句话:「管理员打开用户管理,他能干哪几件事?」把答案列完,图就有了一半。

怎么画(4 步)

  1. 写下中心词。就是工具名:用户管理。只有一个。
  2. 列第一层。问"能干几件事",列完为止,控制在 3–6 个。用户管理就是四件:看列表、看详情、改信息、改状态。
  3. 拆第二层。对每个第一层再问"这件事里面还有几个动作",拆到「一个人能独立做完」为止。比如"看列表"里有:搜索筛选、分页、批量导出。
  4. 回头检查两件事。① 每个叶子节点是不是都能读成一个动词短语("搜索筛选"是,"列表相关"不是);② 有没有出现重复的动作挂在两个父节点下。
flowchart TD
  ROOT[用户管理]
  ROOT --> A[用户列表]
  ROOT --> B[用户详情]
  ROOT --> C[用户编辑]
  ROOT --> D[状态管理]
  A --> A1[搜索与筛选]
  A --> A2[分页浏览]
  A --> A3[批量导出]
  B --> B1[基础信息]
  B --> B2[角色与权限]
  B --> B3[操作日志]
  C --> C1[新增用户]
  C --> C2[修改信息]
  C --> C3[重置密码]
  D --> D1[启用 / 禁用]
  D --> D2[删除用户]
    
展开 Mermaid 源码(可直接复制)
flowchart TD
  ROOT[用户管理]
  ROOT --> A[用户列表]
  ROOT --> B[用户详情]
  ROOT --> C[用户编辑]
  ROOT --> D[状态管理]
  A --> A1[搜索与筛选]
  A --> A2[分页浏览]
  A --> A3[批量导出]
  B --> B1[基础信息]
  B --> B2[角色与权限]
  B --> B3[操作日志]
  C --> C1[新增用户]
  C --> C2[修改信息]
  C --> C3[重置密码]
  D --> D1[启用 / 禁用]
  D --> D2[删除用户]
踩坑:拆得不均匀。"用户列表"底下拆了 3 层,"状态管理"底下只有 1 个。图看起来就会歪,而且说明你对某个模块还没想清。同一层级的粒度要一致——这是功能结构图的第一条纪律。
动手练习 1:把上面这张图往外扩一层——给「用户管理」加一个平级的「角色管理」,自己拆出它的第二层(提示:角色列表、权限配置、角色分配)。

2. 信息架构图 ★☆☆ 简单 约 10 分钟学会

什么时候用:要跟人确认"这个功能放在导航的哪个位置、要点几下才能到"。它回答的是用户几步能到目标页面,不是"有哪些页面"。

先想什么

先问:"管理员从后台首页出发,要几步能到用户详情页?"把这条路径上的每一跳写下来,就是信息架构。

怎么画(4 步)

  1. 第一层只写导航大类。后台一般就是:系统管理、内容管理、数据看板、订单管理……不要写具体页面名
  2. 第二层写一级页面。比如"系统管理"下面挂:用户管理页、角色管理页、操作日志页。
  3. 第三层及以上写二级页面 / 弹窗。用户管理页 → 用户详情页 → 编辑弹窗。
  4. 标出层级深度。任何页面超过 3 层就是设计问题——用户点不到,运营记不住。画完数一下最深的那条路径。
flowchart LR
  N[后台导航]
  N --> G[系统管理]
  N --> P[数据看板]
  G --> P1[用户管理页]
  G --> P2[角色管理页]
  G --> P3[操作日志页]
  P1 --> D1[用户详情页]
  D1 --> E1[编辑信息弹窗]
  D1 --> E2[分配角色弹窗]
  P2 --> D2[角色权限页]
  P --> V1[用户增长看板]
    
展开 Mermaid 源码(可直接复制)
flowchart LR
  N[后台导航]
  N --> G[系统管理]
  N --> P[数据看板]
  G --> P1[用户管理页]
  G --> P2[角色管理页]
  G --> P3[操作日志页]
  P1 --> D1[用户详情页]
  D1 --> E1[编辑信息弹窗]
  D1 --> E2[分配角色弹窗]
  P2 --> D2[角色权限页]
  P --> V1[用户增长看板]
踩坑:把"技术上怎么实现"画进信息架构。比如把"接口层""数据库"画进来。信息架构表达的是用户能看见的层级,技术的东西属于业务架构图,不是这张。
动手练习 2:数一下上面这张图里,从「后台导航」到「编辑信息弹窗」要经过几跳。如果超过 3 跳,自己想一个合并方案。

3. 页面流程图 ★★☆ 中等 约 15 分钟学会

什么时候用:画线框/原型之前先定跳转。它管的是"从 A 页面能到哪些页面、什么条件下跳"。

先想什么

拿一个具体的人来走:管理员想改一个用户的状态(启用 → 禁用)。他从哪进入、点了什么、看到什么、最后回到哪?把他走的这条路写下来。

怎么画(4 步)

  1. 先只画主干路径。用户列表页 → 用户详情页 → 编辑 → 保存 → 回详情页。这一版先不管失败,就画顺利的那条线。
  2. 补上判断节点。哪些地方有分支?"保存成功了吗"、"有权限吗"、"数据被改过了吗"。判断节点用菱形,这是页面流程图的核心。
  3. 补失败分支的回退。失败后回到哪个页面?是留在弹窗里报错,还是退回列表?这一步不写,设计稿一定漏。
  4. 标注弹窗和整页的区别。弹窗是叠在当前页上的(不换页),新页面是替换掉的。画的时候区分开,设计师才不会被误导。
flowchart LR
  L[用户列表页] --> S{是否点击行}
  S -->|否| L
  S -->|是| D[用户详情页]
  D --> ED[编辑信息弹窗]
  ED --> SAVE{保存校验}
  SAVE -->|通过| OK[保存成功提示]
  SAVE -->|不通过| ED
  OK --> D
  D --> BACK[返回列表页]
  D --> DEL{删除确认}
  DEL -->|确认| L
  DEL -->|取消| D
    
展开 Mermaid 源码(可直接复制)
flowchart LR
  L[用户列表页] --> S{是否点击行}
  S -->|否| L
  S -->|是| D[用户详情页]
  D --> ED[编辑信息弹窗]
  ED --> SAVE{保存校验}
  SAVE -->|通过| OK[保存成功提示]
  SAVE -->|不通过| ED
  OK --> D
  D --> BACK[返回列表页]
  D --> DEL{删除确认}
  DEL -->|确认| L
  DEL -->|取消| D
踩坑:只画了主干,没画失败回退。上面这张图里,SAVE -->|不通过| ED 这一条线是最容易被省掉的——但没有它,设计师不知道该在弹窗里留报错位,研发不知道失败后该留在原地还是跳走,测试也测不到。一条失败线都不画的页面流程图,等于没画。
动手练习 3:给上面这张图补一条分支:编辑弹窗里,如果两个人同时在改同一个用户,保存时提示"数据已被他人修改",应该跳到哪里?

4. 业务流程图(泳道图) ★★☆ 中等 约 20 分钟学会

什么时候用:一件事要跨角色才能完成时。泳道图最大的价值是把"这步该谁做"钉死——90% 的评审扯皮都发生在这句话上。

先想什么

先列角色。哪些人或系统参与了这个流程?后台里常见的是:运营 / 管理员、前端、后端服务、第三方服务(邮件、短信、支付)。一个角色一条泳道,别合并。

怎么画(4 步)

  1. 先画泳道(空的分组),不填内容。把参与的角色横向排好。这一步做完,图的骨架就有了。
  2. 按时间顺序走一遍,每走一步就问"现在是谁在做",然后把这个动作放进对应的泳道里。跨泳道就是一次"交接"。
  3. 检查交接点。每一次跨泳道都是一次等待和一次失败可能。比如"后端插入记录 → 邮件服务发送密码",邮件发失败怎么办?
  4. 标出起点和终点,以及提前退出的出口。流程不是一定要走完——校验失败、查重命中,都应该有提前结束的出口。
flowchart LR
  subgraph 运营
    A1[点击新增用户]
    A5[确认提交]
  end
  subgraph 前端
    A2[表单校验]
  end
  subgraph 后端服务
    A3[用户名查重]
    A4[创建账号]
  end
  subgraph 邮件服务
    A6[发送初始密码]
  end
  A1 --> A2 --> A3
  A3 -->|重复| A2
  A3 -->|通过| A4 --> A5 --> A6
    
展开 Mermaid 源码(可直接复制)
flowchart LR
  subgraph 运营
    A1[点击新增用户]
    A5[确认提交]
  end
  subgraph 前端
    A2[表单校验]
  end
  subgraph 后端服务
    A3[用户名查重]
    A4[创建账号]
  end
  subgraph 邮件服务
    A6[发送初始密码]
  end
  A1 --> A2 --> A3
  A3 -->|重复| A2
  A3 -->|通过| A4 --> A5 --> A6
踩坑:把"系统内部动作"也当成一个角色。比如给"数据库""缓存"单独开一条泳道。泳道只放有决策权的参与方——谁负责、谁审批、谁执行。数据库是后端服务内部的事,属于时序图(第 7 章)的范畴。
动手练习 4:在上面的图里补一条异常出口:邮件服务发送失败(比如邮箱格式有问题),流程应该怎么走?

5. 状态流转图 ★★★ 进阶 约 25 分钟学会 · 最容易出事故

什么时候用:只要这个东西有"状态"——用户(未激活 / 已激活 / 禁用 / 锁定)、订单、工单、审批单。图里任何对象有状态,就必须画这张。

先想什么

先问三个问题:① 它一共有几种状态?② 哪些状态是终点(进去就出不来)?③ 每个状态能跳到哪些状态

怎么画(5 步)

  1. 先穷举状态,不画箭头。把所有状态名写成一行:未激活、已激活、已禁用、已锁定、已删除。一个都不能漏——漏一个就是线上事故。
  2. 标出终态。哪些状态进去后就不能再变了?用起点/终点符号标出来。终态画错,研发会做出能"复活"的账号。
  3. 再画箭头,每条箭头都要写触发条件。只有状态、没有触发条件的图,研发没法实现。"已激活 → 已禁用"中间必须写是什么导致的。
  4. 检查每个状态的"出边"。有没有哪个状态只有进没有出?如果有,它是终态还是漏了?
  5. 专门检查"回退路径"。禁用能不能解禁?锁定能不能解锁?这些回退线最容易被忘,而它们恰好是客服最常问的。
stateDiagram-v2
  [*] --> 未激活
  未激活 --> 已激活: 首次登录成功
  未激活 --> 已禁用: 管理员禁用
  已激活 --> 已禁用: 管理员禁用
  已激活 --> 已锁定: 密码连续错误 5 次
  已锁定 --> 已激活: 重置密码
  已禁用 --> 已激活: 管理员启用
  已激活 --> 已删除: 管理员删除
  已禁用 --> 已删除: 管理员删除
  已锁定 --> 已删除: 管理员删除
  已删除 --> [*]
    
展开 Mermaid 源码(可直接复制)
stateDiagram-v2
  [*] --> 未激活
  未激活 --> 已激活: 首次登录成功
  未激活 --> 已禁用: 管理员禁用
  已激活 --> 已禁用: 管理员禁用
  已激活 --> 已锁定: 密码连续错误 5 次
  已锁定 --> 已激活: 重置密码
  已禁用 --> 已激活: 管理员启用
  已激活 --> 已删除: 管理员删除
  已禁用 --> 已删除: 管理员删除
  已锁定 --> 已删除: 管理员删除
  已删除 --> [*]
踩坑:漏了终态和回退。这是状态图最经典的两个错误,也是线上事故的第一大来源。
漏终态:不标"已删除是终点",研发可能做出"删除后还能启用"的逻辑。
漏回退:只画了"已激活 → 已禁用",忘了"已禁用 → 已激活"。上线后客服天天问"用户被误禁用了怎么办",你们只能手动改数据库。
一个专业习惯:状态图画完后,把它当表格再检查一遍——行是"当前状态",列是"目标状态",格子填触发条件。这种矩阵一眼就能看出哪里是空的、哪里多了一条。这张表写进 PRD 比图更有用,因为研发能直接照着建状态机。
动手练习 5:给这张状态图加一个状态「已冻结」(可以登录、不能操作),自己补上它的进出箭头。注意哪几个状态应该能跳到它。

6. ER 图(实体关系图) ★★☆ 中等 约 20 分钟学会

什么时候用:要跟研发对齐"数据怎么存、字段有哪些、表之间什么关系"。产品画 ER 图的目的是挑出字段缺失和口径不一致,不是设计数据库。

先想什么

先问:"这个功能里,有哪些东西需要被记下来?"用户、角色、操作日志——每个"东西"就是一个实体,每个实体就是一张表。

怎么画(4 步)

  1. 先列实体。只列名词:用户、角色、操作日志。先别想字段。
  2. 定关系。用户和角色是什么关系?一个人能有多个角色(一对多)。角色被多个用户共用(多对多)→ 需要一张关联表。
  3. 再填字段。标出主键(PK)和外键(FK)。产品画这层是为了查漏:有没有该记没记的字段?比如"禁用原因"没字段,运营就没法解释为什么禁的。
  4. 检查三个常见缺口。① 有没有"创建时间 / 更新时间"?② 有没有"操作人"?③ 有没有"软删除标记"(还是直接物理删除)?这三个不写,后面一定会补需求。
erDiagram
  USER ||--o{ USER_ROLE : 拥有
  ROLE ||--o{ USER_ROLE : 包含
  USER ||--o{ OPERATION_LOG : 产生
  USER {
    bigint id PK
    string username
    string phone
    string email
    int status
    datetime last_login_at
    datetime created_at
  }
  ROLE {
    bigint id PK
    string role_name
    string permission_codes
  }
  USER_ROLE {
    bigint user_id FK
    bigint role_id FK
  }
  OPERATION_LOG {
    bigint id PK
    bigint user_id FK
    string action
    string detail
    datetime created_at
  }
    
展开 Mermaid 源码(可直接复制)
erDiagram
  USER ||--o{ USER_ROLE : 拥有
  ROLE ||--o{ USER_ROLE : 包含
  USER ||--o{ OPERATION_LOG : 产生
  USER {
    bigint id PK
    string username
    string phone
    string email
    int status
    datetime last_login_at
    datetime created_at
  }
  ROLE {
    bigint id PK
    string role_name
    string permission_codes
  }
  USER_ROLE {
    bigint user_id FK
    bigint role_id FK
  }
  OPERATION_LOG {
    bigint id PK
    bigint user_id FK
    string action
    string detail
    datetime created_at
  }

关系符号怎么读(这个必须记住)

符号含义例子
||--||一对一用户 —— 用户实名信息
||--o{一对多一个用户 —— 多条操作日志
}o--o{多对多用户 —— 角色(中间加关联表)
踩坑:把 ER 图画成数据库设计。产品不需要定字段类型是 varchar(64) 还是 text,那是研发的活。产品要盯的是业务字段完整性——"禁用原因"、"禁用操作人"、"禁用时间"这三个字段,业务上需要记录吗?这种问题研发不会主动问,你问了才是价值。
动手练习 6:给 USER 表补上"禁用"相关的字段。想一下:禁用原因要不要存?禁用操作人要不要存?如果要,为什么?

7. 时序图 ★★★ 进阶 约 25 分钟学会

什么时候用:和研发对齐接口调用顺序、以及失败时怎么处理。它是唯一能表达"先调谁后调谁"的图。

先想什么

先列参与者,按调用方向从左到右排:用户、前端、后端、数据库、第三方。谁发起谁在最左边。

怎么画(4 步)

  1. 先画主线,按时间从上到下。每一步都写清"谁调用谁、调什么"。这一步先不管出错。
  2. 每条调用都问:失败了怎么办?Note over 或分支把失败路径标出来。这是产品画时序图唯一的核心价值——研发自己会想顺利路径,但不会主动告诉你失败时是重试还是报错。
  3. 标出"等待"和"异步"。哪些调用是同步等结果的、哪些是发出去不管的(比如发邮件)。异步的地方,用户看到的表现完全不同。
  4. 检查有没有重复调用和顺序颠倒。比如"先创建账号还是先发邮件"——顺序错了,用户收到密码但账号不存在。
sequenceDiagram
  participant U as 管理员
  participant W as 前端页面
  participant S as 用户服务
  participant D as 数据库
  participant M as 邮件服务
  U->>W: 填写表单并提交
  W->>W: 表单格式校验
  W->>S: POST /users 创建用户
  S->>D: 查询用户名 / 手机号是否重复
  D-->>S: 无重复记录
  S->>D: 插入用户记录
  D-->>S: 插入成功
  S->>M: 异步触发初始密码邮件
  S-->>W: 201 创建成功
  W-->>U: 提示成功并返回列表
  Note over S,M: 若查重命中则返回 409,不创建账号
  Note over M: 邮件失败不回滚账号,进入重发队列
    
展开 Mermaid 源码(可直接复制)
sequenceDiagram
  participant U as 管理员
  participant W as 前端页面
  participant S as 用户服务
  participant D as 数据库
  participant M as 邮件服务
  U->>W: 填写表单并提交
  W->>W: 表单格式校验
  W->>S: POST /users 创建用户
  S->>D: 查询用户名 / 手机号是否重复
  D-->>S: 无重复记录
  S->>D: 插入用户记录
  D-->>S: 插入成功
  S->>M: 异步触发初始密码邮件
  S-->>W: 201 创建成功
  W-->>U: 提示成功并返回列表
  Note over S,M: 若查重命中则返回 409,不创建账号
  Note over M: 邮件失败不回滚账号,进入重发队列
踩坑:只画顺利路径,不标失败和异步。上面两条 Note over 才是这张图真正的价值所在——
· "查重命中怎么办" 决定了接口返回什么状态码、前端展示什么文案;
· "邮件失败要不要回滚账号" 是一个业务决策,不是技术细节。选错了,用户会碰到"账号建好了但收不到密码,也进不去"的死局。
这类问题研发不会主动问,得产品在图上先指出来。
动手练习 7:给这张时序图加一个"重置密码"的流程。注意想清楚:重置后的新密码是邮件发出去,还是要求用户自己设?

8. 分层架构图 ★★☆ 中等 约 20 分钟学会

什么时候用:评审、立项、给领导汇报时,让人一眼看清「这套系统有多大、分几块、谁依赖谁」它不讲流程——图上没有箭头串业务,只有层。这是它和流程图最根本的区别。

先想什么

先定分几层,不是先想画什么形状。后台系统基本就是这 5 层,你把清单里的东西往这 5 个筐里扔就行:

往里放什么怎么判断该不该放这层
① 接入层用户从哪儿进来PC 后台、App、小程序、开放 API、第三方对接
② 应用层用户直接点的功能能对应到某个页面或按钮的,就放这层
③ 服务层被多个功能复用的能力只有一个页面用 → 不是服务,别往上拆
④ 数据层数据落在哪儿主库、缓存、文件、搜索、向量库
⑤ 基础设施层跑这些东西的地基服务器、容器、网关、日志、监控
只有真被复用才升到服务层。某个能力只在一个页面里用、不对外提供,它就该待在应用层。硬拆出来研发照着做了,后面合并的成本比省下的那点"整洁感"高得多。

怎么画(4 步)

  1. 先列清单,先别管层次。把系统里的东西全写出来:页面、功能、后台服务、数据库、第三方系统。这一步列全,比分类重要。
  2. 往 5 个筐里扔。用上表第 3 列逐条归位。归不进去的,多半是你还没想清楚它到底是不是一个独立组件——那就先别画进去。
  3. 层内横向摆平级,层间只画依赖方向。同一层里的东西是并列的(横着排一排),层与层之间从上往下依赖,用一根箭头表示就够了。
  4. 把横跨所有层的共性问题拎出来单独说。权限、安全、审计、监控不属于任何一层——它们贯穿全部。用一句话或一个竖条点出即可。这是最容易漏、也最容易被追问的一处。
flowchart TB
  subgraph L1["① 接入层 · 用户从哪儿进来"]
    direction LR
    A1["运营后台 Web"] --- A2["企业微信 / 钉钉"] --- A3["开放 API"]
  end
  subgraph L2["② 应用层 · 用户直接点的功能"]
    direction LR
    B1["用户列表与检索"] --- B2["用户详情与编辑"] --- B3["角色与权限分配"]
  end
  subgraph L3["③ 服务层 · 被多个功能复用的能力"]
    direction LR
    C1["账号服务"] --- C2["权限校验"] --- C3["通知服务"]
  end
  subgraph L4["④ 数据层 · 数据落在哪儿"]
    direction LR
    D1["用户主库"] --- D2["会话缓存"] --- D3["操作日志库"]
  end
  subgraph L5["⑤ 基础设施层 · 跑这些东西的地基"]
    direction LR
    E1["容器 / 服务器"] --- E2["网关"] --- E3["日志与监控"]
  end
  L1 --> L2 --> L3 --> L4 --> L5
    
展开 Mermaid 源码(可直接复制)
flowchart TB
  subgraph L1["① 接入层 · 用户从哪儿进来"]
    direction LR
    A1["运营后台 Web"] --- A2["企业微信 / 钉钉"] --- A3["开放 API"]
  end
  subgraph L2["② 应用层 · 用户直接点的功能"]
    direction LR
    B1["用户列表与检索"] --- B2["用户详情与编辑"] --- B3["角色与权限分配"]
  end
  subgraph L3["③ 服务层 · 被多个功能复用的能力"]
    direction LR
    C1["账号服务"] --- C2["权限校验"] --- C3["通知服务"]
  end
  subgraph L4["④ 数据层 · 数据落在哪儿"]
    direction LR
    D1["用户主库"] --- D2["会话缓存"] --- D3["操作日志库"]
  end
  subgraph L5["⑤ 基础设施层 · 跑这些东西的地基"]
    direction LR
    E1["容器 / 服务器"] --- E2["网关"] --- E3["日志与监控"]
  end
  L1 --> L2 --> L3 --> L4 --> L5
三个最常见的错误:
① 层数失控。有人能画出 9 层,看起来很专业,实际没人往下看。超过 6 层就该合并——分层图的作用是让人一眼看懂,不是证明你想得细。
② 应用层写成了内部组件名。"UserService"、"EAV 模型"这类词领导看不懂,等于白画。应用层必须写业务语言(用户列表、权限分配),技术词留给服务层。
③ 把流程图混进来。一旦开始画"先点这里再跳那里",这张图就废了——结构和流程是两件事,混在一起评审时没人分得清你在讲哪个。要讲流程,就单独画一张泳道图。
动手练习 8:把这张图扩成"商品管理"——加上商品列表、类目管理、库存同步。想清楚:库存同步该放应用层还是服务层?(提示:如果订单模块也要用它,那它就在服务层。)
一句话记住分层图:从上往下依次回答「谁进来 → 能点什么 → 复用什么 → 存在哪 → 跑在哪」。答完这五问,图就出来了。

9. 两条上手路线(照着做就行)

前面 8 张图都是 Mermaid 源码。这一章告诉你怎么把它变成能看的图,两条路线任选。

路线 A · Mermaid + 飞书文档(推荐,5 分钟上手)

零安装、零成本,而且你本来就在用飞书。

  1. 打开飞书文档,输入 ```mermaid 然后回车(三个反引号 + mermaid)。飞书会自动创建一个 Mermaid 代码块。
  2. 把本手册任意一张图的源码粘进去(点上面的「展开 Mermaid 源码」复制)。
  3. 光标移出代码块,图就渲染出来了。
  4. 要改图?点回代码块改字,图自动更新。这就是它比拖拽工具强的地方——改需求不用重画。
开两个窗口学最快:左边放本手册,右边开一个空的飞书文档。每看一张图,就把源码粘过去看它长什么样,然后自己改几个字。改三次就记住了。

路线 B · draw.io(10 分钟上手,适合要精修排版)

open 了网址就能用,不用注册。适合要交给别人、要打印、要导图的正式场景。

  1. 打开 draw.io(diagrams.net),选择"创建设备新图",存储位置选"设备"。
  2. 左侧形状库里找到需要的形状:流程图用 Flowchart,状态图用 UML,ER 用 Entity Relation。拖一个到画布上,点它的边缘会出现蓝色小箭头,直接拖出下一个框——这是最省事的连线方式。
  3. 双击框改文字。选中框后右侧面板调颜色和字号。
  4. 要泳道?左侧搜 swimlane,直接把泳道容器拖进来,再往里放框。
  5. 导出:文件 → 导出为 → PNG(给 PPT 用)或 SVG(给文档用)。SVG 放大不糊,优先选它。
两条路线怎么选:图要经常改(需求文档里的图)→ 走 Mermaid;图要一次做好看(汇报材料、交付物)→ 走 draw.io。
别纠结,两个都留着。草稿用 Mermaid 手写,定稿需要精修时再导去 draw.io。

AI 能帮到哪一步(说清楚边界)

可以用 AI 做的不能交给 AI 的
把一段文字转成 Mermaid 初稿判断"这个状态能不能跳"——业务决策
给已有图补排版、补配色检查有没有漏掉分支(它只会画你提到的)
把流程图转成别的格式确认角色权责——得你和业务方定
AI 生成的图只能当草稿。它最常见的三个毛病:关系连错、顺序颠倒、漏分支,而且错得很自信。每一张 AI 出的图,发出去之前你必须逐个节点核一遍。这个习惯比会用什么工具重要得多。

10. 动手练习清单(10 道,由易到难)

画图的唯一学习方式就是画。每题都用一个真实的后台功能,做完这 10 题,日常需求里的图你都能自己出了。

第一组 · 热身(功能结构 + 信息架构)

#题目练的是
1选一个你熟悉的后台工具(商品管理 / 标签管理 / 公告管理都行),画它的功能结构图,第一层控制在 4 个以内列全功能、同层粒度一致
2给第 1 题的工具画信息架构图,标出到最深页面要几跳页面层级、层级深度控制
3找一个你正在用的后台系统(公司内部的就行),画出它的信息架构,找出一个"超过 3 跳"的路径用图发现真实问题

第二组 · 主干(页面流程 + 泳道)

#题目练的是
4画"新增一条公告"的页面流程图,必须包含"保存失败"的回退线失败分支不能省
5画"商品批量下架"的页面流程图,包含"部分成功部分失败"的情况批量操作的特殊场景
6画"运营提交一条公告 → 主管审批 → 发布"的泳道图,泳道:运营 / 主管 / 系统跨角色权责划分

第三组 · 硬骨头(状态 + ER + 时序)

#题目练的是
7给"公告"画状态流转图:草稿 / 待审 / 已发布 / 已下架 / 已删除。标出终态,并检查每个状态有没有回退路径状态穷举、终态、回退
8把第 7 题的状态图转成状态矩阵表(行是当前状态、列是目标状态,格子里填触发条件)用矩阵自查漏项
9给"商品"画 ER 图:商品、分类、SKU、库存。注意检查"创建时间""操作人""软删除标记"三个字段在不在业务字段完整性
10画"用户下单"的时序图:用户 / 前端 / 订单服务 / 库存服务 / 支付服务。至少标出两条失败路径异步与失败分支
建议的画法:每题都先用纯文本写一遍(箭头 + 缩进就行),写完再转成 Mermaid 或拖进 draw.io。跳过纯文本那一步,你会卡在工具上而不是内容上——这是新手最大的时间浪费。

11. 常见错误清单(照着逐条自查)

每次画完图,拿这张表过一遍。前 5 条是高频错误,后 5 条是进阶自查。

#错误后果怎么改
1只画顺利路径评审必被追问,等于没画;测试测不到每张流程图至少补一条"失败 / 异常"分支
2状态图漏终态和回退研发做出状态机死锁,上线才发现先穷举状态 → 标终态 → 再画箭头;最后用状态矩阵自查
3一张图想表达两件事图爆炸,看的人抓不到重点一张图只回答一个问题,拆成两张
4同层粒度不一致图看着歪,说明某块没想清同一层级的节点,描述详细程度必须一致
5先挑模板再想内容图很漂亮但没信息量改成:纯文本列清单 → 连关系 → 最后才开工具
6箭头没写条件研发不知道什么时候走这条线每条有分支的箭头都标触发条件
7泳道里混进系统内部模块角色边界模糊,权责讨论失效泳道只放有决策权的参与方
8ER 图盯着字段类型花了力气,但没发现业务缺口产品只盯业务字段是否完整,类型交给研发
9时序图不标异步用户看到的表现和预期不符明确标出哪些调用是同步等、哪些是异步不等
10AI 出的图直接当终稿关系错、顺序反、漏分支,还错得很自信逐节点核一遍再发出去

退款审批模块 · 产品经理图表全集

以电商后台「退款审批(含 AI 自动预审)」为例,把产品经理该掌握和该看懂的图全部走一遍。

19 张图已标侧重点:10 必会 / 4 常用 / 5 了解● 绿点 = AI 产品特有 4 张 Mermaid 源码可直接复制 可贴进飞书 / wiki / 语雀

侧重点分级 —— 哪些必须自己会画,哪些看得懂就行

必会画 不画就推不动事,评审会上得当场画出来 常用 看得懂、能画简版,精修可以交给别人 了解即可 知道长什么样、能对人提要求,专人主画
分级为什么是这个级别
必会画
10 张
1 系统架构图 · 2 功能结构图 · 3 信息架构图 · 4 泳道图 · 5 状态流转图 · 8 页面流程图 · 12 指标树 · 15 价值-成本四象限 · 16 AI 决策与人工兜底 · 18 分层架构图 这些是只有产品能画、别人替不了的图。架构图决定系统视角,泳道图决定权责划分,状态图决定会不会出事故,指标树决定上线后怎么验收。面试也基本只问这几张。
常用
4 张
6 时序图 · 9 线框图 · 11 ER 图 · 13 埋点事件图 要看得懂,也要能画简版;但精修环节通常研发、设计、数据同学会接手。你的价值在于「能挑出缺什么」——时序图缺失败分支、ER 图缺业务字段、埋点图缺指标口径。
了解即可
5 张
7 用户旅程图 · 10 AI 数据流图 · 14 漏斗图 · 17 Prompt 与评审指标 · 19 数据治理闭环 知道它长什么样、能读懂、能提得出要求就够了,实际通常由用研、算法、数据同学主画。但「能读懂」不是可选项——看不懂这三张,你没法评估他们给的结论对不对。
如果只能记住三张:系统架构图(你有没有系统视角)② 泳道图(你分不分得清权责)③ 状态流转图(你想不想得到异常)。这三张是 AI 产品经理和普通产品经理的真正分水岭,也是评审会上最容易当场被要求画的三张。

对照「AI 产品经理必备图清单」逐项核验

清单里的图本图集对应章节
业务架构图
(严格说应为「系统架构图」)
1. AI 系统架构图
用户旅程图7. 用户旅程图
泳道图4. 业务流程图(泳道图)
时序图6. 时序图
状态图5. 状态流转图
信息架构图3. 信息架构图
原型图 / 线框图9. 线框图
数据流图10. AI 数据流图
清单之外另补两张(按你后面发的「人力资源总体架构图」加的):18 分层架构图——就是那一类图,标了必会画;19 数据治理闭环——采 / 集 / 治 / 分 / 用 / 保,了解即可。

1. AI 系统架构图 AI 产品特有 必会画

解决「系统里有哪些模块、模块之间怎么协作」。这是 AI 产品经理和普通 PM 最大的分水岭:普通 PM 画功能模块,你画的是 LLM、Memory、Tool、MCP、知识库和业务系统之间的关系。

为什么标题用的是「系统架构图」而不是「业务架构图」:很多人(包括网上流传的那份 AI 产品经理必备图清单)把它叫业务架构图,但按 TOGAF 的标准分法,业务架构图画的是业务能力、业务流程、组织结构这类不含技术组件的东西;而 LLM、Memory、Tool、MCP、知识库属于系统/技术层,所以正名是系统架构图(或「AI 应用架构图」)。
国内团队两个词混用很普遍,不算硬伤。但面试时如果被追问「你的业务能力是怎么划分的」就答不上来了。能分清这两个词,是加分项。
flowchart TD
  subgraph 接入层
    A1[买家端]
    A2[客服工作台]
    A3[财务后台]
  end
  subgraph Agent编排层
    B1[任务规划 Planner]
    B2[会话记忆 Memory]
    B3[工具调用 Tool]
  end
  subgraph 模型层
    C1[LLM 推理]
    C2[Embedding 模型]
    C3[重排序 Rerank]
  end
  subgraph 知识与数据层
    D1[RAG 检索]
    D2[向量库]
    D3[规则知识库]
    D4[业务数据库]
  end
  subgraph 外部能力层
    E1[MCP Server]
    E2[支付网关]
    E3[OCR 服务]
  end
  A1 --> B1
  A2 --> B1
  A3 --> B1
  B1 --> C1
  B2 --> C1
  D2 --> D1
  D3 --> D1
  D4 --> D1
  D1 --> C1
  C1 --> B3
  B3 --> E1
  B3 --> E2
  E1 --> B3
  E2 --> B3
  E3 --> D1
    
讲这张图时最该点出的三件事:Memory 放在编排层而不是模型层(它决定上下文怎么拼)、Tool 和 MCP 是两条路(内部工具直接调,外部能力走 MCP 协议)、知识库和业务库分开(一个喂 RAG,一个做事实校验)。

2. 功能结构图 结构与信息 必会画

解决「这个模块到底有多大」。拆完你就知道该分几个需求、排几期。

graph TD
  A[退款审批模块] --> B[退款单管理]
  A --> C[审核工作台]
  A --> D[打款管理]
  A --> E[配置中心]
  A --> F[数据看板]
  B --> B1[列表与筛选]
  B --> B2[详情与凭证]
  B --> B3[批量导出]
  C --> C1[初审队列]
  C --> C2[复审与申诉]
  C --> C3[AI 建议与理由]
  C --> C4[驳回理由模板]
  D --> D1[批量打款]
  D --> D2[失败补单]
  D --> D3[渠道对账]
  E --> E1[AI 阈值配置]
  E --> E2[消息模板]
  E --> E3[角色与权限]
  F --> F1[核心指标]
  F --> F2[漏斗与趋势]
    

3. 信息架构图 必会画

解决「用户几步能点到目标页面」。做后台、工作台、知识库这类产品必画——它回答的是导航深度,不是页面清单。

flowchart LR
  R[退款审批模块] --> M1[退款单管理]
  R --> M2[审核工作台]
  R --> M3[打款管理]
  R --> M4[配置中心]
  R --> M5[数据看板]
  M1 --> P11[退款单列表]
  M1 --> P12[退款单详情]
  M2 --> P21[待初审队列]
  M2 --> P22[复审与申诉]
  M3 --> P31[待打款批次]
  M3 --> P32[失败补单与重试]
  M4 --> P41[AI 阈值与开关]
  M4 --> P42[角色与权限]
  M5 --> P51[核心指标]
  M5 --> P52[漏斗与趋势]
    
判断标准很简单:客服处理一单,从进入后台到点完「通过」需要几次跳转。超过 3 跳,说明你的信息架构有问题,不是交互问题。

4. 业务流程图(泳道图) 流程与业务 必会画

解决「谁在什么时点做什么」。跨部门需求评审的核心武器,权责一旦画出来就没得扯。

flowchart TB
  subgraph 买家
    A1[提交退款申请]
    A2[收到结果通知]
  end
  subgraph AI预审引擎
    B1[拉取订单与历史行为]
    B2[预审打分并输出理由]
  end
  subgraph 客服
    C1[人工初审]
    C2[驳回并填写理由]
  end
  subgraph 财务
    D1[财务复核]
    D2[发起批量打款]
  end
  subgraph 支付网关
    E1[执行打款]
    E2[回调打款结果]
  end
  A1 --> B1 --> B2
  B2 --> C1
  B2 --> D1
  C1 --> C2
  C1 --> D1
  D1 --> D2 --> E1 --> E2
  E2 --> A2
    

5. 状态流转图 流程与业务 必会画

解决「这个状态能不能跳到那个状态」。研发问得最多的一张图,漏了终态和回退就是线上事故。

stateDiagram-v2
  [*] --> 待预审
  待预审 --> 预审中: 进入风控队列
  预审中 --> 待初审: 中低置信或大额
  预审中 --> 打款中: 高置信且小额
  待初审 --> 待复核: 初审通过
  待初审 --> 已驳回: 初审不通过
  待复核 --> 打款中: 复核通过
  待复核 --> 已驳回: 复核不通过
  打款中 --> 已完成: 渠道成功
  打款中 --> 打款失败: 渠道失败或超时
  打款失败 --> 打款中: 自动重试
  打款失败 --> 已完成: 人工补打
  已驳回 --> 预审中: 买家申诉
  已完成 --> [*]
    
必须显式写清的三个点:终态有哪些(已完成 / 已关闭)、有没有回退路径(申诉、重试)、超时无人处理会停在哪。

6. 时序图 流程与业务 常用

解决「接口谁先谁后、失败怎么办」。这张图是研发画的,你要能一眼看出它缺了失败分支和降级路径。

sequenceDiagram
    participant B as 买家端
    participant G as 后台服务
    participant AI as AI 预审引擎
    participant C as 客服工作台
    participant P as 支付网关
    B->>G: 提交退款申请
    G->>G: 校验订单状态与退款金额
    G->>AI: 请求预审打分
    AI-->>G: 返回置信度与理由
    alt 高置信且小额
        G-->>B: 自动通过通知
        G->>P: 发起退款
        P-->>G: 打款成功
    else 中低置信或大额
        G->>C: 进入人工初审队列
        C->>G: 提交审核结论
        G->>P: 发起退款
        P-->>G: 打款成功
    end
    Note over AI,G: AI 超时 3 秒即降级转人工
    P-->>G: 异步回调最终结果
    G-->>B: 退款到账通知
    Note over AI,G: 人工结论回流为训练样本
    

7. 用户旅程图 用户与场景 了解即可

解决「用户在哪一步最想骂人」。情绪低点是需求的来源,不是拍脑袋来的。

journey
    title 买家退款旅程
    section 发起申请
      找到退款入口: 3: 买家
      填写退款原因: 2: 买家
    section 提交凭证
      上传图片凭证: 1: 买家
      提交申请: 2: 买家
    section 等待审核
      等待审核结果: 1: 买家
    section 收到结果
      查看审核结论: 4: 买家
    section 退款到账
      钱到账: 5: 买家
    

8. 页面流程图 交互与原型 必会画

解决「点了之后去哪」。画线框之前先定这个,不然原型返工。

flowchart LR
  P1[退款单列表] --> P2[退款单详情]
  P1 --> P3[批量打款确认页]
  P2 --> P4[人工审核面板]
  P2 --> P5[申诉记录页]
  P4 --> P6[驳回理由填写]
  P4 --> P7[通过并提交财务]
  P7 --> P3
  P3 --> P8[打款结果页]
    

9. 线框图 常用

解决「页面骨架长什么样」。用灰度块和假数据就行,别在这一步纠结颜色。目的是让研发和设计在写代码前就页面结构达成一致。

退款单列表页线框图 低保真线框:顶部标题栏、筛选条件区、四列数据表格与分页控件。 退款审批 / 退款单列表 客服小美 退款单号 状态 ▾ 金额区间 查询 重置 退款单号 买家 金额 状态 RF20260918001 王** ¥ 268.00 待初审 RF20260918002 李** ¥ 1,280.00 自动通过 RF20260918003 张** ¥ 89.00 已完成 RF20260918004 陈** ¥ 3,600.00 待复核 共 128 条 1 2 3
区域必须覆盖的状态
筛选区默认、筛选无结果、条件组合过多提示
数据表格加载中、空态、超 500 条分页、AI 未跑完
详情抽屉凭证加载失败、AI 置信度过低警告
批量操作无勾选禁用、超权限置灰、二次确认

10. AI 数据流图 AI 产品特有 了解即可

解决「数据从哪来、到哪去」。AI 产品里这条链最长也最容易断——很多人只画了离线建库和在线推理,忘了回流那一环,结果模型永远是第一天的水平。

flowchart LR
  subgraph 离线数据准备
    A1[业务库与日志] --> A2[采集清洗]
    A2 --> A3[切分 Chunk]
    A3 --> A4[Embedding 向量化]
    A4 --> A5[向量库]
  end
  subgraph 在线请求链路
    B1[用户请求] --> B2[RAG 检索]
    B2 --> B3[拼接上下文]
    B3 --> B4[LLM 推理]
    B4 --> B5[结构化输出]
  end
  subgraph 回流模型迭代
    C1[人工结论与申诉] --> C2[标注与质检]
    C2 --> C3[训练样本集]
    C3 --> C4[微调与评测]
  end
  A5 --> B2
  B5 --> C1
  C4 -.-> B4
    
三段各有各的坑:离线段——切分粒度错了,检索永远不准;在线段——上下文拼接超长会顶掉关键规则;回流段——人工结论没有结构化标注,就变不成训练样本。

11. ER 图 结构与信息 常用

解决「数据存在哪、字段够不够」。产品不用会建表,但必须能挑出缺字段——比如漏了 ai_score,后面就没法做数据回流。

erDiagram
  REFUND_ORDER ||--o{ REFUND_ATTACHMENT : 附带
  REFUND_ORDER ||--o{ AUDIT_LOG : 产生
  REFUND_ORDER ||--o{ PAYMENT_RECORD : 关联
  REFUND_ORDER }o--|| ORDER : 来源
  REFUND_ORDER }o--|| USER : 申请
  REFUND_ORDER {
    string refund_id PK
    string order_id FK
    string buyer_id FK
    decimal amount
    string reason_code
    string status
    decimal ai_score
    string ai_reason
    string current_operator
    datetime created_at
  }
  REFUND_ATTACHMENT {
    string attach_id PK
    string refund_id FK
    string file_url
    string attach_type
  }
  AUDIT_LOG {
    string log_id PK
    string refund_id FK
    string operator
    string action
    string remark
    datetime created_at
  }
  PAYMENT_RECORD {
    string pay_id PK
    string refund_id FK
    string channel
    string channel_txn_id
    string pay_status
    datetime paid_at
  }
  ORDER {
    string order_id PK
    decimal pay_amount
    string item_status
    datetime paid_at
  }
  USER {
    string user_id PK
    string nickname
    int risk_level
    int refund_count_90d
  }
    

12. 指标树 数据与指标 必会画

解决「提升效率这句话落在谁头上」。北极星往下拆到能被单个人负责的粒度,否则不是指标,是口号。

graph TD
  N[退款资金安全率] --> A[效率]
  N --> B[成本]
  N --> C[体验]
  N --> D[风险]
  A --> A1[平均退款时长]
  A --> A2[自动通过率]
  B --> B1[人工介入率]
  B --> B2[单均人力成本]
  C --> C1[退款满意度]
  C --> C2[申诉率]
  D --> D1[资损率]
  D --> D2[误通过率]
    

13. 埋点事件图 数据与指标 常用

解决「数据从哪来」。指标树上每一个指标,都要能倒推回某个埋点事件,否则上线后你只能干瞪眼。

flowchart LR
  E1[refund_apply_click] --> E2[refund_reason_select]
  E2 --> E3[refund_attach_upload]
  E3 --> E4[refund_submit]
  E4 --> E5[ai_precheck_done]
  E5 --> E6[audit_manual_submit]
  E6 --> E7[payout_request]
  E7 --> E8[payout_callback]
  E8 --> E9[refund_finish]
    
事件关键参数
ai_precheck_donerefund_id、ai_score、model_version、cost_ms、是否超时降级
audit_manual_submitrefund_id、operator_id、结论、是否采纳 AI 建议、处理时长
payout_callbackrefund_id、channel、结果、失败码、重试次数

14. 漏斗图 数据与指标 了解即可

解决「转化在哪一步掉的」。退款场景里,漏斗掉的每一格都对应一个可优化的动作。

flowchart TD
  F1[提交退款申请 100%] --> F2[AI 自动通过 62%]
  F1 --> F3[转人工初审 38%]
  F3 --> F4[初审通过 30%]
  F4 --> F5[财务复核通过 28%]
  F5 --> F6[打款成功 27%]
    
要盯的两个数:自动通过率往上走,说明模型在变好;误通过率同步往上走,说明你在用资损换效率。

15. 价值-成本四象限 优先级与决策 必会画

解决「先做哪个、明确不做什么」。只列要做的、不列不做的,那不叫排优先级。

quadrantChart
    title 退款模块需求优先级
    x-axis 低成本 --> 高成本
    y-axis 低价值 --> 高价值
    quadrant-1 规划
    quadrant-2 先做
    quadrant-3 顺手做
    quadrant-4 不做
    AI自动预审: [0.25, 0.85]
    批量打款: [0.3, 0.8]
    退款原因结构化: [0.2, 0.7]
    申诉自动仲裁: [0.75, 0.8]
    跨渠道自动对账: [0.8, 0.7]
    风控模型自训练: [0.85, 0.6]
    列表筛选导出: [0.2, 0.25]
    退款单备注: [0.15, 0.2]
    消息模板配置: [0.25, 0.3]
    全自动无人工: [0.85, 0.25]
    模型实时热更新: [0.9, 0.3]
    自建大模型: [0.95, 0.2]
    

16. AI 决策与人工兜底 AI 产品特有 必会画

普通产品画「订单状态」,AI 产品必须多画一张「模型不确定时怎么办」。阈值怎么定、谁兜底、降级路径是什么,全在这张图里。

flowchart TD
  A[退款申请] --> B[AI 预审打分]
  B --> C{置信度与金额}
  C -->|置信不低于0.9 且金额不超200| D[自动通过]
  C -->|置信不低于0.9 但金额超200| E[转人工初审 大额必审]
  C -->|置信0.6到0.9| F[转人工初审 附AI理由]
  C -->|置信低于0.6| G[转人工复审 附建议驳回]
  B -.->|超时或异常| H[兜底转人工]
  D --> I[进入打款队列]
  E --> I
  F --> J[人工结论]
  G --> J
  H --> J
  J -.->|结论回流| K[训练样本集]
  K -.->|定期重训| B
    
最容易被漏掉的三件事:降级路径(模型挂了走人工而不是卡住)、双阈值(金额和置信度要分开判)、结论回流(人工结论必须变成训练样本,否则模型永远不进步)。

17. Prompt 与评审指标 AI 产品特有 了解即可

解决「模型吃了什么、输出什么、怎么验收」。Prompt 结构图让研发和你对齐上下文;评审指标让「效果还行」变成可验收的数字。

flowchart LR
  subgraph 输入上下文
    I1[订单信息 金额 时间]
    I2[买家历史 退款次数 风险等级]
    I3[凭证图片 OCR 文本]
    I4[客服聊天记录摘要]
  end
  I1 --> P[Prompt 模板]
  I2 --> P
  I3 --> P
  I4 --> P
  P --> M[大模型]
  M --> O[结构化输出 JSON]
  O --> V[规则校验层]
  V --> R[置信度 判定 理由]
    
指标定义验收线(示例)
准确率AI 判定与人工最终结论一致的比例≥ 92%
误通过率AI 判定通过、但人工认定为应驳回的比例≤ 0.5%
误驳回率AI 判定驳回、但人工认定为应通过的比例≤ 3%
自动通过率无需人工介入即完成的退款单占比≥ 55%
单次耗时从请求到返回结果的 P95 耗时≤ 3 秒
降级率因超时或异常转人工的比例≤ 2%
理由可读性客服认为 AI 理由可直接用于沟通的比例≥ 80%

18. 分层架构图 结构与信息 必会画

解决「这套系统到底分几块、谁依赖谁」。它和 1 号系统架构图画的是同一类东西,区别只在「按功能模块分」还是「按层分」——1 号图回答"有哪些模块",这张回答"上下分几层"。

flowchart TB
  subgraph L1["① 接入层 · 用户从哪儿进来"]
    direction LR
    A1["商家后台 Web"] --- A2["买家端 / 小程序"] --- A3["开放 API"]
  end
  subgraph L2["② 应用层 · 用户直接点的功能"]
    direction LR
    B1["退款单列表"] --- B2["审批工作台"] --- B3["规则配置"] --- B4["数据看板"]
  end
  subgraph L3["③ 服务层 · 被多处分复用的能力"]
    direction LR
    C1["退款服务"] --- C2["审批流引擎"] --- C3["风控校验"] --- C4["消息通知"]
  end
  subgraph L4["④ 数据层 · 数据落在哪儿"]
    direction LR
    D1["退款主库"] --- D2["缓存"] --- D3["日志 / 审计库"] --- D4["向量库(AI 预审)"]
  end
  subgraph L5["⑤ 基础设施层 · 跑这些东西的地基"]
    direction LR
    E1["容器 / 服务器"] --- E2["API 网关"] --- E3["日志与监控"]
  end
  L1 --> L2 --> L3 --> L4 --> L5
    
展开 Mermaid 源码(可直接复制)
flowchart TB
  subgraph L1["① 接入层 · 用户从哪儿进来"]
    direction LR
    A1["商家后台 Web"] --- A2["买家端 / 小程序"] --- A3["开放 API"]
  end
  subgraph L2["② 应用层 · 用户直接点的功能"]
    direction LR
    B1["退款单列表"] --- B2["审批工作台"] --- B3["规则配置"] --- B4["数据看板"]
  end
  subgraph L3["③ 服务层 · 被多处分复用的能力"]
    direction LR
    C1["退款服务"] --- C2["审批流引擎"] --- C3["风控校验"] --- C4["消息通知"]
  end
  subgraph L4["④ 数据层 · 数据落在哪儿"]
    direction LR
    D1["退款主库"] --- D2["缓存"] --- D3["日志 / 审计库"] --- D4["向量库(AI 预审)"]
  end
  subgraph L5["⑤ 基础设施层 · 跑这些东西的地基"]
    direction LR
    E1["容器 / 服务器"] --- E2["API 网关"] --- E3["日志与监控"]
  end
  L1 --> L2 --> L3 --> L4 --> L5
图上没有的那一块,才是评审时最容易被问的:权限、安全、审计、监控不属于任何一层,它们贯穿全部五层。图里我用一段文字点出,实际汇报时通常画成右侧一根竖条覆盖五层(就是政务/央企方案里常见的那种画法)。
产品经理在这张图上的职责只有一个:保证第 ② 层(应用层)写的是真实业务功能名,不是 "UserService"、"风控引擎" 这种内部组件名。领导只看第 ② 层——那一层写成技术黑话,图就白画了。
为什么第 ③ 层叫「服务层」而不是「业务层」:判断标准只有一条——这个能力会不会被两个以上的功能复用。退款服务同时被列表、审批台、看板调用,所以它是服务;如果某个能力只在一个页面里用,它就老老实实待在应用层。
只在一个地方用的东西拆成"服务",是分层图最常见的一种虚胖,研发照着做之后合并成本很高。
层数失控是这张图的头号死因。能画出 9 层说明你想得细,但没人会看第 6 层以下的东西。超过 6 层就该合并。
另一个坑:别在这张图上画流程箭头。一旦出现"先点这里再跳那里",这张图就变成一张画坏了的流程图——结构和流程是两件事,评审时必须分开讲。
套到你手上那张图:数据中台/政务类项目的「总体架构图」就是这张图换内容——① 数据源接入 → ② 数据应用(报表/BI/AI)→ ③ 数据服务(标签/指标/API)→ ④ 数据存储(贴源/明细/汇总)→ ⑤ 基础设施,右侧再挂一根「数据安全与标准」竖条。层名换掉、结构一模一样。

19. 数据治理闭环 数据与指标 了解即可

解决「数据从哪来、经过什么、最后去哪」。政务、央企、数据中台的汇报材料里几乎必出现,通常写成 采 → 集 → 治 → 分 → 用 → 保 六个字。

flowchart LR
  A["① 采集 · 多源数据进得来"] --> B["② 集成 · 清洗、对齐口径"] --> C["③ 治理 · 质量 / 标准 / 血缘"]
  C --> D["④ 分析 · 建模、标签、指标"] --> E["⑤ 应用 · 报表、推荐、AI"]
  E -.->|"回流迭代"| A
  subgraph S["⑥ 保障 · 贯穿全程,不在链上任何一环"]
    direction LR
    S1["标准规范"] --- S2["安全合规"] --- S3["运维监控"] --- S4["组织与流程"]
  end
    
展开 Mermaid 源码(可直接复制)
flowchart LR
  A["① 采集 · 多源数据进得来"] --> B["② 集成 · 清洗、对齐口径"] --> C["③ 治理 · 质量 / 标准 / 血缘"]
  C --> D["④ 分析 · 建模、标签、指标"] --> E["⑤ 应用 · 报表、推荐、AI"]
  E -.->|"回流迭代"| A
  subgraph S["⑥ 保障 · 贯穿全程,不在链上任何一环"]
    direction LR
    S1["标准规范"] --- S2["安全合规"] --- S3["运维监控"] --- S4["组织与流程"]
  end
两个容易讲混的地方:
① 「保障」不在链上。标准、安全、运维、组织是托底,不参与数据流转,画的时候要单拎出来或画成底座。把它当第六步串进流程里,是整个闭环最常见的画错方式。
② 回流那根虚线才是闭环的关键。没有回流就是一条流水线,有了回流才是"越用越准"。做 AI 产品尤其要强调这段——用户的每一次修正都是模型迭代的输入
别忘了它和分层图的区别:分层架构图回答「系统分几块」(静态结构),数据治理闭环回答「数据怎么流转」(动态过程)。两张图要分开画——把闭环塞进分层图里,评审时没人分得清你在讲结构还是讲流程。
这也是你发的那张「人力资源总体架构图」唯一的小毛病:绿色的 采/集/治/分/用/保 标在分层图上,两套逻辑叠在一起了。

退款审批模块 · PRD

以电商后台「退款审批(含 AI 自动预审)」为例,按标准 PRD 结构 + EARS 需求描述原则撰写。每章标注使用频率,可当模板直接改用。

v1.0 草稿 EARS 需求条目化 逐章频率标注 配套图集 17 张

使用频率图例 —— 先看这个,决定你该写多细

必写 骨架章节,缺了 PRD 不成立,评审必被追 常用 大多数需求都要写,小事可以合并 按需 视需求规模决定,MVP 阶段可先空着
一个残酷的事实:PRD 写得长不等于写得好。真正拉开差距的是第 6、8、9、11 章——功能清单、EARS 需求、状态规则、数据口径。这四章是研发和测试真正逐条对着干的,其余章节写多了没人看。

1. 文档信息 必写

作用只有一个:让人知道找谁、改过什么。3 分钟能填完,但省掉的是每周三小时的扯皮。

1.1 版本记录

版本日期修改人改动摘要
v1.02026-09-18产品初稿,覆盖退款审批主流程 + AI 自动预审
v1.1产品(评审后补:按风控意见调整置信度阈值)

1.2 角色分工

角色负责人职责
产品负责人待填需求定义、范围裁决、验收
设计待填交互稿、设计验收点
前端 / 后端待填技术方案、排期、实现
算法待填模型选型、准确率达标、数据回流
测试待填用例、回归范围、上线把关
风控 / 财务待填阈值与口径的共同决策方——不是知会方

2. 背景与问题 必写

写「现状有多痛」,不是写「我们要做什么」。区分点:这一段里不该出现任何功能名。

2.1 业务背景

  • 退款日均约 1.2 万单,其中 68% 为无争议的常规退款(未发货 / 已发货未签收 / 商品瑕疵)
  • 当前全部走人工审核,平均处理时长 4.6 小时,高峰期(大促后 3 天)超过 18 小时
  • 买家投诉中 31% 与「退款慢」直接相关,是售后投诉第一大来源
  • 人工审核误判率约 2.3%(多放款 / 少放款各占一半),财务每月对账差异约 ¥8.4 万

2.2 分角色痛点

角色痛点后果
买家提交后不知道要等多久,也无进度可见反复催问客服 / 差评 / 流失
客服被迫承接「我的退款到哪了」的重复询问客服成本被无效咨询吃掉约 40%
审核员大量重复劳动,规则靠经验而非标准口径不一致,同一单不同人结论不同
风控 / 财务缺事前拦截,只能事后追薅羊毛 / 恶意退款难以及时止损

2.3 为什么是现在

  • 模型侧:同类目订单意图分类已验证可达 94% 准确率,具备落地条件
  • 业务侧:本季度售后满意度是核心 OKR,且大促前必须解决峰值积压
写法提醒:「为什么是现在」这一小节,很多人直接跳过。但评审时最常被问的就是「这事能不能放下一版」。你不主动回答,就要在会上被动回答,而且没有数据就等于没有答案。

3. 目标与成功指标 必写

目标必须可量化、可归因。写「提升用户体验」等于没写。

3.1 目标

层级目标
业务目标降低售后投诉中「退款慢」相关占比,提升售后退款处理效率
产品目标常规退款自动闭环,审核员只处理争议与异常单
技术目标建立可迭代的模型 + 人工回流闭环,具备持续调优能力

3.2 北极星指标与护栏指标

类型指标现状目标值
北极星退款平均处理时长(提交 → 终态)4.6 h≤ 1 h
北极星常规退款自动闭环率0%≥ 70%
护栏模型审批准确率≥ 92%
护栏误通过率(不该退却退了)≤ 0.5%
护栏降级率(模型异常转人工)≤ 2%
护栏售后投诉「退款慢」占比31%≤ 15%
这张表的数字都是我给的示例值,不是行业标准。准确率、误通过率这两条线必须和风控、财务一起定——产品单方面拍阈值,上线后出资金问题是要担责的。评审时把这句话说出来,比数字本身更能体现分寸感。
护栏指标是最容易被砍、也最不该砍的东西。没有护栏,只有北极星,这条需求就会变成「为了快不惜错」。写护栏等于提前把「什么情况算失败」定义清楚——这也是验收时的依据。

4. 用户与场景 常用

小型需求可以合并到第 2 章。中大型需求独立成章,尤其当「用户」包含内部角色(客服、审核员)时。

4.1 角色定义

角色使用频次核心诉求
买家事件触发尽快拿到退款,过程透明
客服高频能查到单、能代客发起、能解释进度
审核员高频(自动预审后降为低频)只处理真正需要判断的单,有依据可循
风控专员中频拦截疑似恶意退款,可追溯
财务低频 / 批量账目可对、口径一致

4.2 用户故事

编号用户故事优先级
US-001作为买家,我希望提交退款后立即知道预计到账时间,以便不用反复询问客服P0
US-002作为审核员,我希望系统只把模型不确定的单推给我,以便专注处理真正需要判断的案例P0
US-003作为客服,我希望能在同一页面看到退款单全链路进度,以便一次性回答买家P1
US-004作为风控专员,我希望看到模型给出判断的依据摘要,以便判断是否人工推翻P1
US-005作为财务,我希望每笔自动放款都有可追溯的审批记录,以便对账与审计P0

5. 范围界定 必写

「明确不做」这四个字的含金量,高于整个「做什么」清单。不写,需求就会在评审会上无限膨胀。

本期做(In Scope)

  • 常规退款自动审批(未发货 / 已发货未签收 / 商品瑕疵)
  • 模型置信度分流与人工兜底
  • 退款单全链路状态跟踪与买家端进度展示
  • 审核工作台(含 AI 判断依据摘要)
  • 基础埋点与效果看板

本期不做(Out of Scope)

  • 不做部分退款 / 多次退款的复杂场景(下一版)
  • 不做跨平台(跨境、多店铺)退款规则合并
  • 不做自动模型重训练(本版仅做数据回流落库)
  • 不做买家端主动催单功能
  • 不做退款金额的自动风控定价
每一条「不做」后面都要跟一个理由和一个时间点(下一版 / 待评估 / 依赖 XX)。只写「不做」,评审时会被追问,等于给自己挖坑。

6. 功能清单 必写 研发排期直接照这张表拆

PRD 里被引用次数最多的一张表。粒度要「一个功能点能被一个人负责」。

编号模块功能点优先级依赖
F-01买家端退款申请提交(表单 + 原因选择)P0
F-02买家端退款进度查询与预计到账时间展示P0F-04
F-03规则引擎基础规则校验(订单状态、时效、金额上限)P0
F-04AI 预审模型意图识别与置信度打分P0算法模型 v1
F-05AI 预审置信度阈值分流(自动通过 / 转人工 / 直接拦截)P0F-04、风控阈值确认
F-06审核工作台待审列表(含自动预审标记与排序)P0F-05
F-07审核工作台AI 判断依据摘要展示P1F-04
F-08审核工作台人工通过 / 驳回 + 理由记录P0F-06
F-09资金退款发起与结果回调P0支付网关
F-10数据埋点采集与效果看板P1数据团队
F-11数据人工修正结果回流落库P1F-08
F-12买家端退款原因自助修改(限未处理状态)P2F-02
优先级怎么算说得出口:P0 = 不做就没法上线(闭环断了);P1 = 不做上线但体验明显受损;P2 = 锦上添花。按这个定义标,别人来质疑你的时候你能解释,而不是「我觉得重要」。

7. 业务流程 常用

文字描述 + 引用图集中的流程图。别在 PRD 里重复画一遍图,给链接就行。

  • 主流程(happy path):买家提交 → 规则校验 → AI 预审打分 → 置信度达标自动放款 → 结果回调 → 通知买家
  • 异常流程 A:规则校验不通过 → 直接拒绝并告知原因(不进入模型)
  • 异常流程 B:置信度处于灰区 → 转人工审核 → 审核员决策 → 放款 / 驳回
  • 异常流程 C:模型超时或服务不可用 → 降级转人工,记录降级原因
  • 异常流程 D:退款发起后支付网关失败 → 转人工介入,状态置「放款失败」
只画 happy path 是 PRD 最常见的致命伤。上面四条异常流,任何一条没写,测试同学都测不到,上线就靠运气。评审时研发问「模型挂了怎么办」,你答不上来,这个需求当天就进不了排期。

8. 需求详述(EARS) 必写

核心章节。每条需求都要能被单独验收,不能出现「优化体验」「提升效率」这种无法验证的表述。EARS 提供五种句式,覆盖全部场景类型。

EARS 五种句式速查

类型句式模板适用
Ubiquitous系统应始终……全局约束、不变规则
Event-driven当 [事件] 时,系统应……用户操作、外部触发
State-driven当处于 [状态] 时,系统应……特定状态下的行为
Unwanted如果 [异常],则系统应……失败、超时、异常兜底
Optional若具备 [特性],系统应……可选功能、配置驱动

8.1 规则校验(F-03)

REQ-001Event-drivenP0

当买家提交退款申请时,系统应在 3 秒内完成基础规则校验(订单存在性、订单状态、退款时效、单笔金额上限),并返回校验结果。

验收:覆盖「订单不存在」「已退款」「超过 15 天时效」「金额超限」四类拒绝场景,各返回对应错误码与用户可读文案。

REQ-002UnwantedP0

如果规则引擎在 3 秒内未返回结果(超时或异常),则系统应自动降级为转人工审核,并向审核队列插入一条标记为「规则校验异常」的待审单。

验收:模拟规则服务超时 5 秒,确认单据出现在人工队列且带异常标记,买家端展示「审核中」而非报错。

REQ-003UbiquitousP0

系统应始终对同一订单的重复提交做幂等处理:同一订单在同一时刻只允许存在 1 条处于非终态的退款单。

验收:并发提交同一订单 10 次,仅 1 条成功创建,其余返回「处理中,请勿重复提交」。

8.2 AI 预审与分流(F-04 / F-05)

REQ-004Event-drivenP0

当规则校验通过时,系统应调用模型对退款单进行意图识别与风险打分,输出 0–1 的置信度分值及主要判断依据。

验收:模型调用成功率 ≥ 99%,单次调用 P95 延迟 ≤ 800ms,输出结构固定(分值 + 依据标签 + 模型版本号)。

REQ-005State-drivenP0

当模型置信度 ≥ 阈值 T1 时,系统应自动通过并直接进入放款流程,不再进入人工审核队列。

验收:T1 初值待风控确认(建议 0.90);可通过配置中心热更新,无需发版。变更需留操作人记录。

REQ-006State-drivenP0

当模型置信度处于 T2 ≤ 置信度 < T1 的灰区时,系统应由人工审核裁定,并在审核工作台展示模型的判断依据供参考。

验收:灰区单据 100% 进入人工队列;审核页能看到置信度数值、命中标签、模型版本。

REQ-007UnwantedP0

如果模型调用超时(> 3 秒)、返回格式非法或服务不可用,则系统应自动转人工审核,并将该单标记为「模型降级」,同时上报监控告警。

验收:三种异常各模拟 1 次,单据均进入人工队列且带降级标记;降级率指标可被看板统计(目标 ≤ 2%)。

REQ-008State-drivenP1

当模型置信度 < T2 时,系统应将该单转入高风险复核队列,由风控专员优先处理,不走普通审核流。

验收:低分单据进入独立队列,普通审核员不可见(权限隔离)。

8.3 审核工作台(F-06 / F-07 / F-08)

REQ-009Event-drivenP0

当审核员打开待审列表时,系统应按「风险等级降序 + 提交时间升序」排序,并支持按状态、金额区间、是否 AI 预审筛选。

验收:列表首屏加载 ≤ 1.5 秒;筛选条件可与分页共存,刷新后条件保持。

REQ-010Event-drivenP0

当审核员提交通过或驳回时,系统应记录 操作人、操作时间、结论、理由(驳回必填),并写入不可篡改的审批流水。

验收:驳回未填理由时无法提交;审批流水支持按单号导出,且任何角色不可删改。

REQ-011UnwantedP0

如果两名审核员同时对同一单据提交结论,则系统应只接受先到达的一次,后提交方收到「该单已被处理」提示并刷新为最新状态。

验收:并发提交测试,无二次放款,无状态错乱。

8.4 资金与通知(F-09)

REQ-012UnwantedP0

如果退款请求在支付网关侧失败,则系统应将单据状态置为「放款失败」并自动转入人工队列,同一订单最多自动重试 3 次,间隔 5 / 30 / 120 分钟。

验收:3 次重试均失败后停止自动重试并告警;人工介入后可手动再次发起。

REQ-013Event-drivenP0

当退款进入终态(成功 / 驳回 / 失败)时,系统应在 1 分钟内向买家推送结果通知,并同步更新买家端进度页。

验收:三类终态各验证一次;通知失败时应有补偿重推机制。

REQ-014OptionalP2

若订单开启了「极速退款」标记,系统应跳过人工审核环节直接进入放款流程(前提为规则校验通过且不存在历史恶意退款记录)。

验收:标记订单自动放款;存在恶意记录的订单即使有标记也转人工。

看这一节的结构:14 条需求里,5 条是 Unwanted(异常兜底)。这个比例是故意的——常规场景研发自己就能想明白,真正需要产品拍板的是「出错时怎么办」。你的 PRD 里 Unwanted 少于 20%,基本可以判定异常场景没想全。

9. 状态与业务规则 必写 线上事故高发区

9.1 状态定义

状态含义是否终态
DRAFT买家填写中,未提交
SUBMITTED已提交,等待校验
AI_PENDING模型预审中
MANUAL_PENDING人工审核中
PAYING放款处理中
REFUNDED退款成功
REJECTED审核驳回
PAY_FAILED放款失败否(可转人工)
CANCELLED买家主动撤销

9.2 流转规则

当前状态允许流转到触发条件
SUBMITTEDAI_PENDING / REJECTED / CANCELLED校验通过 / 校验拒绝 / 买家撤销
AI_PENDINGPAYING / MANUAL_PENDING置信度达标 / 置信度灰区或降级
MANUAL_PENDINGPAYING / REJECTED审核通过 / 审核驳回
PAYINGREFUNDED / PAY_FAILED网关成功 / 网关失败
PAY_FAILEDMANUAL_PENDING自动重试耗尽后转人工
注意:REFUNDED / REJECTED / CANCELLED 为终态,不可逆向流转。若需修正,走独立的「退款冲正」流程(本期不做)。

9.3 边界与异常规则

场景规则
金额边界单笔 ≤ ¥5,000 可由 AI 自动放款;> ¥5,000 一律转人工(不受置信度影响)
时效边界超过订单完成 15 天的申请直接拒绝;大促特殊规则单独配置
并发同一订单幂等;同一审核员并发提交以先到为准
超时人工审核超过 24 小时未处理,自动升级至主管队列
撤销SUBMITTED / AI_PENDING 允许买家撤销
模型版本切换切换期间的存量单据沿用旧版本判断结果,不重算
第 9 章是线上事故第一大来源。状态漏了终态、忘写回退路径、没定义并发行为——这三类问题研发照着做出来就是状态机死锁,往往在上线后才发现。 这张表定稿前,务必拉研发一起过一遍,让他们确认「每个状态的出边都是可达且有限的」。

10. 权限与角色 常用

后台类产品的必写章节。C 端需求可以合并进第 9 章。

操作买家客服审核员风控专员财务
提交退款✅ 本人订单✅ 代客发起
查看退款单✅ 本人✅ 全部✅ 全部✅ 全部✅ 全部
审核通过 / 驳回✅ 高风险单
修改置信度阈值✅ 需审批
导出审批流水
撤销申请✅ 限非终态✅ 代客撤销
权限矩阵里最容易被忘的一行是「谁能改阈值」。模型阈值直接决定放不放钱,必须单独定义修改权限、审批流程和操作留痕,否则就是资金风险敞口。

11. 数据口径与埋点 必写 口径不统一 = 每次开会都吵

11.1 指标口径定义

指标计算口径统计周期
退款处理时长终态时间 − SUBMITTED 时间,不含买家撤销单自然日 / 滚动 7 日
自动闭环率AI 自动放款成功单量 ÷ 校验通过总单量自然日
模型准确率人工复核样本中,模型结论与人工结论一致的比例(抽样 ≥ 200 单/周)
误通过率自动放款后经投诉 / 风控确认为「不应退」的单量 ÷ 自动放款总量
降级率因模型异常转人工的单量 ÷ 模型调用总单量自然日
「准确率」这个指标一定要写清分母来源。是拿人工复核抽样算,还是拿全量回流算,两个结果能差 5 个百分点以上。口径不写明,上线后数据同学给你一个数,算法同学给你另一个数,会议直接开成辩论赛。

11.2 埋点事件

事件名触发时机关键字段
refund_apply_submit买家提交退款申请order_id, reason_code, amount, channel
refund_rule_result规则校验返回order_id, pass(0/1), reject_code, cost_ms
refund_ai_score模型打分完成order_id, score, tags, model_version, latency_ms
refund_route分流决策完成order_id, route(auto/manual/block), threshold_t1/t2
refund_manual_result人工审核提交order_id, operator_id, result, reason
refund_pay_result放款结果回调order_id, success(0/1), fail_code, retry_count
refund_final进入终态order_id, final_status, total_cost_ms
埋点表和指标表必须成对检查:11.1 里每一个指标,都要能在 11.2 里找到对应的埋点字段支撑。找不到,那个指标就是空中楼阁——上线后你看着数,不知道它怎么算出来的。

12. 交互与文案 常用

设计同学直接吃这一章。重点是状态覆盖,不是画得多漂亮。

关键页面

页面核心交互必须覆盖的状态
退款申请页选择原因 → 填写金额 → 提交默认 / 校验失败 / 提交中 / 提交成功
退款进度页查看当前状态与预计到账时间各状态文案 / 加载 / 接口失败重试
审核工作台列表筛选 → 排序 → 进入详情空列表 / 加载 / 筛选无结果 / 分页边界
审核详情页查看依据 → 通过 / 驳回(填理由)AI 依据缺失 / 已被他人处理 / 提交中

文案规范

场景文案要求
预计到账时间给区间不给具体点,如「预计 2 小时内到账」;避免「尽快」这类不可验证表述
驳回原因对买家展示的是「可理解的业务原因」,不是内部审核术语
异常提示必须包含「发生了什么 + 你可以做什么」,不能只报错误码
「空态 / 加载态 / 错误态」这三态是设计验收的常见漏项。PRD 里把四态列成表格,设计同学出稿时就不会漏,测试同学也有了对照清单。

13. 非功能需求 按需

涉及资金、用户隐私、高并发的需求必须写;内部小工具可以省略。

类别要求
性能规则校验 P95 ≤ 3s;模型打分 P95 ≤ 800ms;工作台列表首屏 ≤ 1.5s
可用性核心链路可用性 ≥ 99.9%;模型服务不可用时必须降级而非阻断
安全审批流水不可篡改;金额与结论字段加密存储;操作全量留痕
合规退款金额、买家信息按最小必要原则使用;模型训练数据需脱敏
数据保留审批流水保留 3 年(财务对账与审计要求)

14. 依赖与风险 常用

14.1 外部依赖

依赖项提供方影响状态
模型 v1(意图分类)算法团队阻塞 F-04 / F-05待确认排期
置信度阈值确认风控 + 财务阻塞 F-05 联调待评审
支付网关退款接口支付团队阻塞 F-09已有接口,需确认频率限制
效果看板数据团队影响 F-10待排期

14.2 风险清单

风险概率影响应对
模型准确率未达 92%自动闭环率无法达标阈值保守起步(T1 设 0.95),灰度中逐步下调
误通过导致资金损失财务损失 + 合规风险设金额上限自动转人工;保留人工抽检机制
大促峰值压垮模型服务降级率飙升限流 + 排队 + 降级预案;提前压测
审核员抵触(担心被替代)推行受阻定位为「减负工具」;保留完整审核权;做内部宣导
「审核员抵触」这类人是风险,很多 PRD 不敢写。但不写不等于不存在,上线后一样会发生。提前写进去,反而能在评审时争取到培训和宣导的资源。

15. 验收标准 必写

这一章是给测试同学的输入,也是上线准入的判断依据。写完 PRD 直接能用它生成用例。

15.1 功能验收清单(节选)

编号验收项通过标准
AC-01常规退款自动闭环构造 100 单常规退款,自动放款成功率 ≥ 70%
AC-02灰区单据转人工置信度落在 [T2, T1) 的单据 100% 进入人工队列
AC-03模型异常降级模拟超时 / 非法返回 / 服务不可用,均转人工且无资金动作
AC-04幂等与并发同订单并发提交 10 次仅 1 条成功;同单据并发审核仅 1 条生效
AC-05金额上限超 ¥5,000 的申请不进入自动放款,强制转人工
AC-06放款失败重试失败后按 5/30/120 分钟重试 3 次,耗尽后告警并转人工
AC-07状态不可逆终态单据无法被任何操作改回非终态
AC-08审批留痕每次操作可查操作人 / 时间 / 结论 / 理由,且不可删除
AC-09埋点完整7 个埋点事件全部上报,字段无缺失
AC-10权限隔离普通审核员不可见高风险队列;非授权角色无法修改阈值

15.2 上线准入条件

  • P0 用例通过率 100%,P1 ≥ 95%
  • 灰度期间模型准确率 ≥ 92%,误通过率 ≤ 0.5%
  • 降级率 ≤ 2%,且降级路径经人工验证无资金风险
  • 监控告警就位(模型异常、降级率、放款失败率)
  • 回滚方案经演练,回滚耗时 ≤ 10 分钟

16. 上线与灰度 常用

阶段范围观察指标退出条件
灰度 1(约 1 周)单类目 + 自动放款【关闭】,仅跑模型影子打分模型准确率 vs 人工结论准确率 ≥ 92% 方可进入下一阶段
灰度 2(约 2 周)单类目 + 自动放款开启,金额 ≤ ¥1,000误通过率、降级率、投诉率误通过率 ≤ 0.5%
全量全类目,金额上限提升至 ¥5,000全量指标 + 客服咨询量
灰度第一步的关键是「影子模式」——模型先只打分、不决策。用真实流量跑出的准确率,比离线测试集上的数字可信得多。这一步可以省掉一次线上事故。

17. 待确认问题清单 必写 开评审前先收口

把没想清的事写下来,比在会上被问倒体面得多。这张表也是你申请延期 / 要资源的依据。

编号待确认问题影响范围找谁确认截止
Q-01置信度阈值 T1 / T2 取值F-05 全部逻辑风控 + 财务评审当日
Q-02单笔自动放款金额上限是否 ¥5,000F-05 分流规则财务评审当日
Q-03模型不可用时的降级是否影响 SLA 赔付非功能需求运营 + 法务本周内
Q-04大促期间是否启用特殊时效规则规则引擎配置运营下周一
Q-05模型训练数据脱敏方案是否合规数据回流链路法务 + 安全开发前
Q-06是否需要向买家公示 AI 参与决策买家端文案法务开发前
Q-01、Q-02、Q-05 这三条不定,开发就不能启动。其中 Q-05(数据脱敏合规)最容易被拖,也最容易在临上线时变成阻塞项——建议在排期前就推着法务给结论。