facc04aa65
本提交为 .git 对象库损坏后的重建提交,内容等价于原先三个本地提交 (5e2fd4c2 / 57a53c98 / 5d7e1873)的累积结果,未做任何额外改动。 一、docs 结构整改(整改 #14) 根因:重构时新结构为 untracked 文件,执行 git stash(未带 -u)未纳入, 随后 git reset 拉回 HEAD 旧 tracked 树,导致旧树复活、新旧两棵目录 树并存于 docs/,共 791 文件、双分类体系冲突。 修复动作: - b2 同名异主题文件改名迁移保全 9 个 - C 类 39 个孤立文件按主题正确归类 - A/B1 类 222 个重复文件删除(新结构已有内容副本) - 9 个旧独有空目录删除 - 270 处内部引用按 verified 映射改写 - 整改记录 #14 登记于 04-运维文档/部署运维 结果:docs 791 → 569 文件,顶层仅规范 8 类 + 治理文件,单树恢复。 残留:约 20 处指向从未存在文件的陈旧死链,归入独立文档卫生任务。 二、compose 双目录对齐(消除踩坑 A) - docker-compose.yml:nginx 前端挂载全部由根目录 frontend-*/dist 改为 src/frontend-*/dist(h5 / agent / admin / terminal) - docker-compose.dev.yml:dev 服务 build context 与卷同步改 src/ - 效果:本地 docker compose up 不再把根目录 stale dist 挂回, 与线上一致,分叉隐患消除(已 docker compose config 校验通过) 防复发铁律: - 重构须提交;仓库修复须 git stash -u 或先 commit - 新结构须 git add 并提交,避免再次 untracked 复活 - H5 改动只动 src/frontend-h5/,禁改根目录遗留 frontend-*/
28 KiB
28 KiB
PRD - 分诊排查系统(排查流程图管理)
REQ编号: REQ-坐席-007 版本: v1.3(存量文件名暂保留 v1.0,避免破坏既有引用) 日期: 2026-07-28 状态: [待评审] 作者: 宋献 优先级: P0 需求类型: 存量功能补充与生产化改造 关联文档:
- 原型:
原型-REQ-坐席-007-分诊排查系统-v1.0.html- 技术方案:
../../../02-技术文档/技术架构/技术方案-REQ-坐席-007-分诊排查系统-v1.0.md- 功能测试:
../../../03-测试文档/03-功能测试用例/TC-坐席-007-分诊排查系统.md(v1.0,54 条用例,评审通过后补齐)
一、需求背景
1.1 业务问题
常见 IT 故障依赖坐席个人经验排查,容易出现步骤遗漏、处理口径不一致、新坐席上手慢,以及员工转人工后重复描述和重复排查等问题。当前仓库已经存在“排查流程图管理”页面、坐席排查步骤组件和员工 H5 自助排查页面,但数据契约、持久化、发布机制和跨端执行闭环尚未完成。
1.2 产品定位
“排查流程图管理”是分诊排查系统的管理入口,负责将高频故障的标准排查方法沉淀为可发布、可执行、可追踪的模板。产品统一名称建议为“分诊排查管理”,流程图是模板内容的一种表达方式,不是独立绘图工具。
完整链路:
管理员编制模板 → 校验与发布 → 坐席/员工选择或被推荐模板 → 按节点执行 → 记录路径与结果 → 未解决时携带上下文转人工 → 运营数据回流优化模板
1.3 目标用户
| 角色 | 主要诉求 |
|---|---|
| IT 支持组长/管理员 | 统一维护排查标准,控制版本和发布范围,查看使用效果 |
| 呼叫坐席 | 快速选择模板、按步骤推进,避免遗漏,完整记录排查过程 |
| 员工 | 对常见问题进行低门槛自助排查,未解决时无损转人工 |
| 运营/质量管理员 | 分析模板采用率、解决率、断点和过期内容 |
二、目标与成功标准
2.1 用户目标
- 管理员能在一个入口完成模板创建、校验、预览、发布、停用和版本回滚。
- 坐席能在会话中 10 秒内定位并启动合适模板,执行状态与会话绑定。
- 员工能按清晰步骤自助排查,转人工时自动携带已完成路径。
- 管理者可追踪模板是否有效,而不是只统计“建了多少模板”。
2.2 业务目标
| 指标 | 口径 | 上线后 30 天成功阈值 | 远期目标 |
|---|---|---|---|
| 模板采用率 | 启动模板的适用会话数 / 适用会话总数 | ≥40% | ≥65% |
| 模板完成率 | 到达结束节点的执行实例 / 启动实例 | ≥70% | ≥85% |
| 模板辅助解决率 | 标记“已解决”的完成实例 / 完成实例 | ≥45% | ≥60% |
| 员工自助解决率 | 无需转人工的自助实例 / 自助启动实例 | ≥20% | ≥35% |
| 重复排查率 | 转人工后重复执行已完成节点的实例 / 转人工实例 | ≤10% | ≤5% |
| 模板执行异常率 | 死路、无后继、同步失败实例 / 启动实例 | ≤2% | ≤1% |
当前无可信基线,目标值为首版假设;上线前需通过埋点获取 2 周基线并评审调整。
三、范围
3.1 P0:生产可用最小闭环
- 模板列表:按名称、分类、状态搜索;显示版本、节点数、预估时间、最后发布人和更新时间。
- 模板编辑:维护基本信息和节点树;支持步骤节点、判断节点、结束节点及是/否分支。
- 结构校验:保存前检查根节点、节点 ID 唯一性、分支完整性、不可达节点、循环和结束节点。
- 草稿与发布:编辑只产生草稿;发布后生成不可变版本;已发布版本供执行端使用。
- 版本管理:查看历史版本、版本差异、回滚为新草稿;禁止直接覆盖历史版本。
- 启用与停用:停用后不可新启动,但已有执行实例可继续完成。
- 权限与审计:管理员可维护;坐席和员工只读已发布模板;记录创建、修改、发布、停用、回滚和删除操作。
- 坐席执行:模板启动、节点推进、分支选择、暂停/恢复、结束;执行状态绑定会话并持久化。
- 员工自助:查看可用模板、按节点执行、反馈是否解决;转人工时传递模板版本、已完成节点、选择路径和备注。
- 导入导出:使用统一 JSON Schema;单条导入、单条导出、全部导出;导入先校验再进入草稿。
- 问诊模板:通过
purpose字段统一管理,单实例(code=triage_intake),由路由层兜底自动启动;实例来源triage_fallback,不计入模板完成率和模板辅助解决率;问诊结束自动回到标准模板选择界面(路由 + 手动双轨),详见 §5.4.4 和 §5.4.8。 - purpose 字段管理:所有模板主记录新增
purpose字段,值域troubleshooting/triage,新建时强制选择且事后不允许切换;编辑器、列表、API 全部按purpose区分校验规则集、列表 Tab 和筛选条件,详见 §5.4.8。
3.2 P1:体验与运营增强
- AI 根据会话意图推荐模板,默认模板直接启动,详见 §5.4。
- 节点绑定知识库文章、下载文件、检测接口或审批入口。
- 模板灰度发布、适用部门/角色范围和定时生效。
- 使用漏斗、节点退出率、版本效果对比和过期提醒。
- 可视化拖拽编辑器;首版仍可保留 JSON 高级编辑能力。
3.3 P2:远期能力
- 节点触发自动化修复动作并支持回滚。
- 基于历史成功路径自动推荐模板优化方案。
- 模板跨租户/跨组织共享与模板市场。
3.4 非目标(Non-goals)
- 不建设通用 BPM 工作流引擎:首版只服务 IT 故障排查,不承载审批和复杂业务编排。
- 不直接自动执行高风险命令:涉及终端变更、账号权限和安全策略的动作另行走自动化审批与审计。
- 不替代知识库:模板负责顺序和决策,详细知识内容通过引用关联。
- 不让 AI 自动发布模板:AI 可建议,发布责任仍由具备权限的管理员承担。
- 不追求自由画布制图:首版优先保证结构化、可校验、可执行,而不是视觉排版自由度。
四、用户故事
4.1 管理员
- 作为 IT 支持组长,我希望把 VPN、邮箱、账号等故障沉淀为标准模板,以便不同坐席按同一口径处理。
- 作为模板管理员,我希望发布前获得结构校验结果,以便避免断路、死循环和缺失分支进入生产。
- 作为模板管理员,我希望修改已发布模板时产生新版本,以便进行追溯、回滚和效果比较。
- 作为质量管理员,我希望查看模板采用率、完成率和节点退出率,以便持续优化无效步骤。
4.2 呼叫坐席
- 作为呼叫坐席,我希望根据员工问题快速搜索并启动模板,以便减少判断成本。
- 作为呼叫坐席,我希望看到当前步骤、已完成步骤和后续分支,以便清楚掌握排查进度。
- 作为呼叫坐席,我希望暂停后恢复同一执行实例,以便处理长耗时或跨班次问题。
4.3 员工
- 作为员工,我希望按照易懂的步骤完成自助排查,以便常见问题无需等待坐席。
- 作为员工,我希望在未解决时一键转人工,并自动携带已做过的操作,以便不重复描述和排查。
- 作为员工,我希望明确知道某一步是否会修改设备或账号,以便在执行前作出知情选择。
五、核心业务流程
5.1 模板生命周期
- 管理员新建或导入模板,系统创建草稿。
- 编辑基本信息、节点、分支、说明和风险提示。
- 系统执行语法校验和结构校验;失败时禁止发布。
- 管理员预览坐席端和员工端呈现效果。
- 管理员填写版本说明并发布,生成版本快照。
- 执行端只读取已发布且启用的版本。
- 后续修改从已发布版本复制为新草稿;重新发布产生新版本。
- 停用模板后禁止新启动;历史实例仍关联原版本快照。
5.2 坐席协同执行
模板选择采用 “统一路由推荐 + 坐席手动覆盖” 的双轨策略,详细策略见 §5.4。
- 路由层根据员工描述、会话上下文、历史成功率推荐默认模板和候选模板。
- 路由推荐结果直接启动默认模板的执行实例;坐席无需点击二次确认弹窗,会话区立即出现排查步骤栏。
- 启动实例同时记录
conversation_id、employee_id、agent_id、template_version_id、source(ai_recommend/agent)和起始时间。 - 坐席可以随时通过排查栏顶部的 “换其他模板” 入口手动覆盖;手动切换会触发确认提示,详见 §5.4。
- 坐席完成步骤或选择判断分支,后端计算下一个合法节点并实时同步给会话双方。
- 任一方断线重连时,从服务端恢复执行状态。
- 结束时记录“已解决/未解决/转其他流程”、耗时、备注和终止原因。
5.3 员工自助转人工
- 员工从 H5 选择已发布模板并开始自助排查。
- 系统逐步展示节点,不暴露不相关分支和内部运维信息。
- 员工选择“未解决/需要人工”时,创建或关联会话。
- 坐席接入后可查看执行摘要,并从当前节点继续或重新选择模板。
5.4 模板选择策略 · 路由推荐与手动覆盖
5.4.1 策略总览
坐席端采用 “统一路由推荐 + 手动覆盖” 的双轨结构:
- 路由层负责默认选择,坐席负责最终决定。
- 路由层不直接修改会话状态,只产生推荐结果;模板启动命令由坐席端发起或由路由层在坐席无操作时自动触发。
- 手动覆盖始终是合法路径,不被路由层阻断。
- 问诊模板结束时自动回到标准模板选择界面(路由 + 手动双轨),由服务端在执行
triage_fallback实例的结束命令时复位路由状态,确保问诊不会把会话卡在兜底分支。
5.4.2 路由层职责
| 输入 | 输出 |
|---|---|
| 员工首句描述、会话上下文、历史类似会话、AI 意图识别结果 | 默认模板 + 2~3 个候选模板 + 每个候选的推荐理由与置信度 |
| 员工补充信息或会话状态变化 | 重新计算候选并刷新推荐 |
| 路由无任何匹配 | 触发兜底 B:自动推荐“问诊对话模板” |
5.4.3 启动方式:直接启动
- 路由层给出推荐后,默认模板直接启动,不弹出“是否确认启动”的二次确认弹窗。
- 排查栏立即出现,展示模板名称、版本、当前节点和“换其他模板”入口。
- 若坐席在 3 秒内点击 “换其他模板”,系统视为“立即覆盖”,仍视为手动选择。
- 自动启动的实例来源记为
ai_recommend,用于统计路由采纳率。
5.4.4 路由失败的兜底 B:问诊对话模板
- 当路由无匹配时,由后端创建一个特殊模板
code=triage_intake,版本独立维护。 - 模板内容是一组短问题与是/否分支,例如:“故障现象是什么 / 是否仅发生在公司网络 / 是否影响其他同事 / 是否重启过终端 / 是否变更过密码”,目的不是排查根因,而是帮助坐席快速收敛问题方向。
- 问诊对话模板走与正式模板一致的会话级实例、版本快照、同步和结束流程,不在 UI 上做特殊样式,仅在排查栏顶部显示 “问诊中” 标识。
- 问诊模板结束或任一节点触发跳转时,自动回到标准模板选择界面(路由推荐 + 手动覆盖双轨)。
- 问诊模板本身不计入“模板完成率”和“模板辅助解决率”,仅作为路由层的服务能力。
- 问诊模板在数据库层面通过
purpose=triage标识,与排查共享同一套 Schema、版本、执行实例、状态机和权限机制;不允许独立建表或独立 API。 - 同一会话中
source=triage_fallback的活跃实例与普通实例遵循同样的“同会话单活跃实例”约束,问诊实例被取消后下一次路由仍可能再次触发问诊,直到员工描述落入某个排查的覆盖范围。
5.4.5 手动切换模板:必须提示并结束当前实例
- 坐席点击 “换其他模板” 时,前端必须弹出确认提示:“切换模板将结束当前排查实例并开始新的实例,是否继续?”。
- 确认后:
- 当前实例状态置为
cancelled,写入reason="agent_switched_template"。 - 新模板创建新执行实例;旧实例的路径摘要保留在会话归档中,但不计入当前活跃会话的执行进度。
- 当前实例状态置为
- 取消则保留当前实例继续推进。
- 同一会话同一时刻只允许一个活跃实例,避免多实例污染指标;该约束由后端在创建实例时校验,同一会话存在
running实例时拒绝新的ai_recommend自动启动和agent手动启动。
5.4.6 关键交互规则
| 场景 | 行为 |
|---|---|
| 路由高置信度推荐 | 直接启动默认模板 |
| 路由低置信度推荐 | 直接启动默认模板 + 在排查栏顶部显示“推荐置信度低,是否换其他模板?”提示 |
| 路由无匹配 | 自动启动问诊对话模板 |
| 坐席无操作 | 保持自动启动的实例继续推进 |
| 坐席主动换模板 | 弹出确认 → 旧实例 cancelled → 启动新实例 |
| 跨模板跳转(如 VPN → 网络) | 仅由坐席主动发起,不允许路由自动跨模板跳转 |
5.4.7 与现有文档的差异说明
- 原 §3.2 P1 中描述 “AI 根据会话意图推荐模板,坐席确认后启动” 的措辞在本版被替换为 “直接启动 + 手动覆盖”;产品决策点已与本节对齐。
- 原 §5.2 第 1 步 “坐席在会话中搜索模板或接受 AI 推荐” 调整为 “路由直接启动 + 手动覆盖”,更准确反映实际操作。
- 原 §3.1 P0 #8 “坐席执行” 仍保留作为后端能力,但 UI 入口与交互由本节定义。
5.4.8 与排查流程图的一体两面关系
排查流程(purpose=troubleshooting)和问诊对话(purpose=triage)不是两个独立系统,而是同一个模板体系的两个面向:
| 维度 | 排查流程 | 问诊对话 |
|---|---|---|
| 主导角色 | 坐席 | 员工 |
| 目标 | 标准化排查根因 | 收敛故障方向为下一轮排查铺路 |
| 节点粒度 | 中长流程,可能含终端检测、权限变更 | 短问题与是/否分支,≤10 节点 |
| 实例来源 | ai_recommend / agent |
triage_fallback |
| 指标归属 | 计入完成率、辅助解决率 | 仅计转化率 |
| 结束行为 | 已解决/未解决/转其他流程 | 自动回到标准模板选择(路由 + 手动双轨) |
统一规则:
- 数据模型同一份:模板主表、
nodes[]、版本、执行实例、状态机、WebSocket 同步、权限矩阵全部复用。 - 唯一区分字段是
purpose,值域troubleshooting(默认)/triage。 - 新建模板时强制选择
purpose;模板创建后purpose字段不可修改,只能通过“基于此模板复制为另一种用途”的方式新建。 - UI 必须分而不拆:管理后台列表按
purpose分 Tab(Troubleshooting / Triage),编辑器顶部加“模板用途”选项,详见 §7.1。 - 校验规则必须按 purpose 区分:结构校验入口加载对应
purpose的规则集,triage模板限制节点数 ≤10、深度 ≤4、强制包含结束节点且result=redirect、标签必须包含triage或intake,详见 §6.1 FR-04。 - 指标必须显式隔离:指标服务层硬编码
source=triage_fallback的实例不计入troubleshooting_*指标,仅计入troubleshooting_template_start_total{source=triage_conversion}转化率指标,详见 §11。 - 权限必须显式隔离:
triage模板对员工始终可见,对坐席始终只读,不参与排查的部门/角色过滤矩阵,详见 §8.2。 - 禁止新增独立页面或独立 API:
triage模板的入口、编辑、列表、导入导出全部复用现有分诊排查管理页面,不引入“问诊模板管理”新页面。
一体两面的承诺:用户在任一端(员工或坐席)看到的模板都来自同一份后端真相,只是 purpose 不同;运营和开发只需要维护一套系统。
六、功能需求与验收标准
6.1 模板管理
| 编号 | 需求 | 优先级 | 验收标准摘要 |
|---|---|---|---|
| FR-01 | 列表搜索、分类和状态过滤 | P0 | 组合筛选结果准确,空状态有引导 |
| FR-02 | 新建、复制、编辑、预览、归档 | P0 | 操作有权限校验和审计记录 |
| FR-03 | 节点树编辑和 JSON 高级编辑 | P0 | 两种模式使用同一 Schema,切换不丢数据 |
| FR-04 | 结构校验 | P0 | 无根、重复 ID、缺失分支、循环、无结束节点禁止发布;按 purpose 加载校验规则集:troubleshooting 节点数 ≤100、深度 ≤20;triage 节点数 ≤10、深度 ≤4、必须包含结束节点且 result=redirect、标签必须含 triage 或 intake |
| FR-05 | 草稿、发布、停用、回滚 | P0 | 历史版本不可变,回滚产生新草稿 |
| FR-06 | 导入导出 | P0 | 导入错误定位到字段/节点;不得静默丢字段;导入时若未声明 purpose 默认 troubleshooting |
| FR-07 | 操作审计 | P0 | 可按模板、操作者、动作和日期查询;purpose 变更(仅允许在复制新建场景发生)需写入审计 |
| FR-13 | purpose 字段 | P0 | 模板主记录必含 purpose 字段;新建强制选择,事后不可修改;列表筛选和列表 Tab 按 purpose 区分 |
| FR-14 | 问诊模板统一管理 | P0 | 问诊模板与排查共用同一管理入口、编辑器、版本、审计和 API;不在前端新增独立页面,在后端不新增独立表 |
6.2 执行端
| 编号 | 需求 | 优先级 | 验收标准摘要 |
|---|---|---|---|
| FR-08 | 创建会话级执行实例 | P0 | 同一会话可暂停恢复;状态持久化 |
| FR-09 | 服务端推进节点 | P0 | 客户端不能跳至非法节点;分支结果可追溯 |
| FR-10 | 坐席/员工实时同步 | P0 | 正常网络下状态同步 P95 ≤2 秒;重连后恢复一致 |
| FR-11 | 自助转人工上下文 | P0 | 坐席能看到模板版本、路径、已完成步骤和员工备注 |
| FR-12 | 结束结果采集 | P0 | 必填解决结果;异常退出可标记原因 |
6.3 Given / When / Then
- 发布校验
Given 草稿存在缺失的“否”分支,When 管理员点击发布,Then 系统拒绝发布并定位问题节点。 - 版本隔离
Given 会话正在执行 v1.0,When 管理员发布 v1.1,Then该会话继续执行 v1.0,新会话使用 v1.1。 - 停用行为
Given 模板已停用,When 新用户搜索模板,Then 不返回该模板;已有执行实例仍可完成。 - 跨端同步
Given 坐席和员工处于同一执行实例,When 坐席完成节点,Then员工端在 2 秒内显示相同进度。 - 断线恢复
Given 客户端在第 4 个节点断线,When 重新连接,Then从服务端恢复至第 4 个节点且历史路径完整。 - 转人工
Given 员工已完成 3 个节点仍未解决,When 点击转人工,Then坐席收到执行摘要且不要求员工重复已完成步骤。 - 越权保护
Given 普通坐席登录,When 调用创建或发布接口,Then返回 403 并写入安全日志。 - 并发保护
Given 两名管理员同时编辑同一草稿,When后保存者提交旧版本号,Then返回 409 并提示刷新或比较差异。 - purpose 不可修改
Given 已存在模板purpose=troubleshooting,When 尝试修改purpose字段为triage,Then 返回 400 并提示“请基于此模板复制为另一种用途”。 - 问诊模板独立指标
Given 路由层无匹配自动启动triage_intake实例,When 实例结束,Then 该实例不计入troubleshooting_template_complete_total与troubleshooting_template_resolved_total,仅计入troubleshooting_template_start_total{source=triage_conversion}。 - 问诊结束回到标准模板选择
Given 问诊实例正常结束,When 坐席回到会话区,Then 排查栏消失并恢复路由 + 手动双轨状态,可由路由层再次推荐新模板。 - Triage 模板可见性
Given 员工登录 H5,When 查询可用模板列表,Thenpurpose=triage的模板始终可见,不受部门或角色可见范围限制。
七、信息架构与页面
7.1 管理后台
- 导航:运营配置 / 分诊排查管理
- 页面:模板列表(按
purpose分 Tab:Troubleshooting / Triage)、模板编辑/预览、版本历史、发布确认、操作审计、使用分析(P1) - 模板编辑区顶部增加 “模板用途” 选项,新建时强制选择
purpose,事后不可修改 - 模板编辑区:基本信息(含
purpose)、结构化节点树、JSON 高级模式、实时校验(按purpose加载校验规则集)、双端预览 - 排查 Tab 的表头显示当前选中模板的
purpose标识,避免运营误编辑问诊模板为排查
7.2 坐席工作台
- 会话区底部“排查步骤”栏
- 模板选择器、最优路径、完整决策树、当前节点操作、暂停/结束
- 展示与会话关联的执行摘要
- 当执行实例
source=triage_fallback时,排查栏顶部显示 “问诊中” 标识 - 问诊实例结束时排查栏收起并恢复路由 + 手动双轨状态
7.3 员工 H5
- 自助排查入口、分类/搜索、模板详情、逐步执行页、解决结果页、转人工确认页
- 内部敏感说明不向员工显示
- 员工看到的 Triage 模板永远在分类首位(不参与部门/角色可见范围过滤),且作为路由无匹配时的兜底入口
八、数据、权限与合规要求
8.1 关键数据
- 模板主记录、不可变版本快照、节点定义、执行实例、节点执行日志、发布审计日志。
- 执行日志仅保存排查必要信息,不在模板节点中采集账号密码、验证码、密钥等敏感数据。
- 会话归档时应保留模板版本号和路径摘要,避免模板更新后历史记录失真。
8.2 权限矩阵
| 能力 | 管理员/组长 | 呼叫坐席 | 员工 | 审计员 |
|---|---|---|---|---|
| 查看已发布排查 | ✓ | ✓ | ✓(员工可见范围) | ✓ |
查看已发布问诊模板(purpose=triage) |
✓ | ✓(只读) | ✓(始终可见,不受部门/角色过滤) | ✓ |
| 创建/编辑草稿 | ✓ | - | - | - |
| 发布/停用/回滚 | ✓ | - | - | - |
修改 purpose 字段 |
-(创建后不可修改) | - | - | - |
| 启动与执行 | 可测试 | ✓ | ✓(triage 永远允许) | - |
| 查看执行明细 | ✓ | 当前会话 | 本人实例 | ✓ |
| 查看审计日志 | ✓ | - | - | ✓ |
8.3 合规
- 操作日志和执行日志按照最小必要原则采集,并遵循《个人信息保护法》相关要求。
- 节点若涉及终端检测、截屏、日志采集或权限变更,必须明确告知用途并按既有授权流程执行。
- 导出的模板文件不得包含员工个人数据、真实凭据和生产密钥。
purpose=triage的模板对员工始终可见,不得在该模板的可见范围字段中写入敏感过滤条件(如部门、角色、外部标签),避免出现“兜底模板被过滤掉”的场景。
九、依赖与约束
- 依赖管理后台 RBAC、会话服务、WebSocket 单进程消息管理、员工 H5 认证和数据库迁移能力。
- 当前实现中后端 CRUD 使用进程内 Mock 数据,正式开发必须切换到数据库。
- 当前管理端列表期望数组,而后端返回
{items,total},需统一接口契约。 - 当前存在
flowchart、root_node、path_steps多套结构,必须建立唯一 Schema 和迁移规则。 - 当前 H5 自助页面未正式注册路由,坐席与员工执行状态未形成后端闭环。
十、风险与对策
| 风险 | 影响 | 对策 |
|---|---|---|
| 模板内容过时 | 引导错误,扩大故障 | 设置负责人、复审周期、过期提醒和一键停用 |
| 流程结构复杂 | 管理成本和执行放弃率上升 | 限制深度,提供结构校验和双端预览 |
| 发布修改影响执行中会话 | 历史路径失真 | 执行实例固定绑定版本快照 |
| 双端状态不一致 | 重复或跳步 | 服务端作为唯一状态源,事件幂等和重连恢复 |
| 模板包含敏感信息 | 合规与安全风险 | 字段审查、导出脱敏、发布权限和审计 |
| 指标驱动坐席机械执行 | 忽略个案 | 允许合规跳出并记录原因,不以完成率单一考核 |
| 路由推荐结果不可信时坐席仍机械跟随 | 排查方向偏差 | 路由低置信度时显示提示;问诊模板兜底;手动覆盖始终开放 |
| 同一会话存在多个并发实例 | 指标污染、转人工摘要混乱 | 服务端约束“同一会话同一时刻仅一个活跃实例”;手动切换前必须确认 |
十一、开放问题
| 问题 | 责任方 | 是否阻塞 |
|---|---|---|
| 模板发布权限是否仅限管理员,还是组长也可发布? | 产品/安全 | 是 |
| 员工可见模板是否按部门、设备或角色过滤? | 产品/运营 | 是 |
| 已发布模板删除采用归档还是硬删除?建议仅归档 | 产品/技术 | 是 |
| 模板节点最大深度和节点数量限制 | 产品/技术 | 否 |
| 执行日志保留期限及会话归档策略 | 安全/合规 | 是 |
| 首批生产模板的负责人和复审周期 | 运营 | 否 |
十二、上线阶段建议
- 阶段 A:管理闭环——数据库持久化、统一 Schema、草稿/发布/版本、RBAC、审计。
- 阶段 B:坐席闭环——会话级实例、步骤推进、暂停恢复、结果采集。
- 阶段 C:员工自助——H5 路由、双端同步、转人工上下文。
- 阶段 D:智能与运营——AI 推荐、效果看板、灰度和内容治理。
上线闸门:P0 验收通过、独立测试用例完备、端到端验证通过、部署与回滚方案齐备后,方可标记为生产可用。
十三、变更记录
| 日期 | 版本 | 变更内容 | 变更人 | 变更原因 |
|---|---|---|---|---|
| 2026-06-06 | v1.0 | 创建简版 PRD,定义排查步骤栏、数据模型和基础 API | 宋献 | 初始需求 |
| 2026-07-28 | v1.1 | 补充产品定位、角色与场景、完整范围、非目标、指标、权限、验收标准、风险和生产化路线 | Duckula | 文档规范化补充,解决存量文档不完整问题 |
| 2026-07-28 | v1.2 | 新增 §5.4 模板选择策略:明确“统一路由推荐 + 手动覆盖”双轨;路由推荐默认模板直接启动;路由无匹配时兜底使用问诊对话模板;手动切换模板必须确认并结束当前实例;同会话单实例约束由后端校验 | 宋献 + Duckula | 完成坐席端选择策略的产品决策 |
| 2026-07-28 | v1.3 | 升级到“一体两面”模型:所有模板通过 purpose 字段(troubleshooting/triage)统一管理;§3.1 P0 新增 #11 问诊模板与 #12 purpose 字段;新增 §5.4.8 “与排查流程图的一体两面关系”;§6.1 新增 FR-13/FR-14;§6.3 新增验收用例 #9~#12;§7 页面分 Tab + 模板用途选项 + 问诊中标识;§8.2 权限矩阵拆分排查/问诊;§11 指标增加 triage_conversion;§13 变更记录追加 |
宋献 + Duckula | 落实用户决策:排查流程与问诊对话是同一系统的两个面向,通过 purpose 区分而非分系统 |