# 5 阶段路线图 — 阶段 2-3 任务拆解 **生成日期**: 2026-06-14 **生成人**: Claude **状态**: 待 workbuddy 接入执行(workbuddy-claude user 创好后启动) **关联**: PRD.md §5 五阶段演进路径 --- ## 阶段 1 完成度盘点(对照 PRD.md §5.1) | 阶段 1 项 | 状态 | 备注 | |---|---|---| | 员工端 H5 WebView | ✅ 完成 | `frontend-h5/` | | OAuth2 静默授权 + 身份识别 | ✅ 完成 | `backend/app/api/h5.py` | | 坐席工作台 MVP | ✅ 完成 | `frontend-agent/` | | 三栏工作台 | ✅ 完成 | 会话列表 / 对话区 / AI 助手 | | 6 分区会话列表 | ✅ 完成 | 待接单/我的/协作/其他坐席/AI处理/已结单 | | 快速回复 7 大类 | ✅ 完成 | 28 子类 180 模板 | | 转人工触发 | ✅ 完成 | 关键字检测 → 推 H5 链接 | | WebSocket 实时推送 | ✅ 完成 | P0 鉴权修复后 | | 应急模式 | ✅ 完成 | 系统故障时手动开 | | Alembic 迁移 | 🟡 部分 | 008 (agent password) + 009 (message status) 已加,初始 001 缺 | **剩余扫尾**: - [ ] 初始 alembic 迁移(把当前 schema 导出成 001 基准,后续 migrations 增量) - [ ] pytest 基础配置(README 已知问题 #2) - [ ] P1-1 优化(named volume → host bind mount,任务 #25) - [ ] P0 二次评审 5 遗留(浏览器 WS API / nginx access_log / 类型 bug / 降级放行 / 缺依赖) --- ## 阶段 2: H5 员工端完整体验 + 双通道消息推送 **目标**: 员工 H5 端从 MVP 升级到完整体验,加 摇人 / 评分 / 排队,推送到企微应用消息 **对应 PRD.md**: §5.2 阶段二,§痛点1(分散渠道) ### 2.1 任务清单(8 项) | # | 任务 | 优先级 | 文件位置 | 阻塞 | |---|---|---|---|---| | 2-1.1 | 摇人按钮(H5 输入框左侧,7 种 SVG 动画) | 🟡 重要 | `frontend-h5/src/components/KnockButton.vue` | 无 | | 2-1.2 | 满意度评价(会话结束 → 弹 5 星 + 文字反馈) | 🟡 重要 | `frontend-h5/src/components/ConversationRating.vue` | 无 | | 2-1.3 | 排队系统(多员工同时咨询,显示"前面 N 位") | 🟡 重要 | `backend/app/api/conversations.py` + `frontend-h5/src/views/QueueStatus.vue` | 无 | | 2-1.4 | 快速回复 7 大类 28 子类 180 模板(已有,需补完) | 🟢 常规 | `backend/app/models/quick_reply.py` | 无 | | 2-1.5 | 知识库基础(FAQ 手动维护,坐席/员工可查) | 🟡 重要 | `backend/app/api/knowledge.py` (新) | 无 | | 2-1.6 | 企微应用消息推送(双通道:企微应用消息 + WebSocket) | 🟡 重要 | `backend/app/services/wecom_push.py` | WECOM 应用 secret | | 2-1.7 | 消息已读回执(员工读完 → 推 message_status) | 🟡 重要 | `backend/app/api/messages.py:mark_read` | 已有 ws_manager.broadcast | | 2-1.8 | 会话转接(坐席 A → 坐席 B,带交接说明) | 🟢 常规 | `backend/app/api/conversations.py:transfer` | 无 | ### 2.2 验收标准 - [ ] 员工在 H5 看到会话输入框左侧"摇人"按钮,点击 → 7 种动画之一 + 企微应用消息推送 - [ ] 会话结束 → 员工看到 5 星评价 + 文字反馈框 → 提交 → 落库 - [ ] 多员工并发咨询 → 排队显示"您前面有 N 位" + 预计等待时间 - [ ] 坐席/员工可查 FAQ,输入关键字 → 命中模板 - [ ] 员工 1 分钟内未读 → 推企微应用消息"您有一条新消息" - [ ] 员工点开消息 → mark_read 调 → ws_manager 广播 → 坐席端"已读"标识 ### 2.3 与 P0/P1 修复的关联 - 2-1.6 推送用到 P0 已修的 WS 鉴权 - 2-1.7 已读回执用到 P1-4 已实现的 `broadcast_message_status` - 2-1.5 知识库要等阶段 4 闭环,先做基础 CRUD ### 2.4 预估工时 | 任务 | 预估人天 | 难度 | |---|---|---| | 2-1.1 摇人 | 2 | 低(Vue 组件 + 已有 SVG 库) | | 2-1.2 满意度 | 1.5 | 低(弹窗 + 后端落库) | | 2-1.3 排队 | 3 | 中(后端排队算法 + 前端轮询) | | 2-1.4 快速回复补完 | 2 | 低(数据导入 + CRUD) | | 2-1.5 知识库基础 | 5 | 中(模型 + 检索 + UI) | | 2-1.6 企微应用消息 | 3 | 中(企微 API + 降级) | | 2-1.7 已读回执 | 1 | 低(接 P1-4) | | 2-1.8 会话转接 | 2 | 低(已有 transfer 端点) | | **合计** | **19.5** | | --- ## 阶段 3: 坐席工作台 AI Wingman **目标**: 给坐席端加 AI 辅助(草稿回复 / 自动摘要 / 知识推荐 / 排查步骤) **对应 PRD.md**: §5.2 阶段三,§痛点2(坐席重复劳动) ### 3.1 任务清单(6 项) | # | 任务 | 优先级 | 文件位置 | 阻塞 | |---|---|---|---|---| | 3-1.1 | AI 草稿回复(坐席输入 → AI 给回复草稿 → 坐席改/发) | 🟡 重要 | `backend/app/api/ai_wingman.py` (新) | Dify 集成 | | 3-1.2 | 自动摘要(会话结束 → AI 生成 200 字摘要) | 🟡 重要 | `backend/app/services/summarizer.py` (新) | Dify 集成 | | 3-1.3 | 知识推荐(对话中识别关键字 → 推 FAQ / 排查步骤) | 🟡 重要 | `backend/app/api/knowledge.py:recommend` | 2-1.5 知识库 | | 3-1.4 | 排查步骤生成(员工描述问题 → AI 给 step-by-step) | 🟡 重要 | `backend/app/api/ai_wingman.py:troubleshoot` | Dify 集成 | | 3-1.5 | 会话标注(坐席标"AI 推荐有用/无用") | 🟢 常规 | `backend/app/models/annotation.py` (新) | 无 | | 3-1.6 | 坐席端 AI 助手面板(右侧栏,实时显示 AI 草稿) | 🟡 重要 | `frontend-agent/src/components/AIWingmanPanel.vue` | 3-1.1~4 后端 | ### 3.2 验收标准 - [ ] 坐席输入框打字 → 右侧 AI 面板显示 3 条草稿回复(实时) - [ ] 坐席点"采用" → 草稿填入输入框 → 可改后发送 - [ ] 会话结束 → 自动生成 200 字摘要存库 - [ ] 对话中员工说"VPN 连不上" → AI 推 5 条排查步骤 - [ ] 坐席标注"有用/无用" → 落库 → 用于阶段 4 知识库迭代 ### 3.3 Dify 集成前置 - 阶段 3 强依赖 Dify 工作流(已有 `docs/现有系统交接文档内容.txt` 描述) - workbuddy W-4 任务 = Dify API 集成预研(POC),阶段 3 启动前完成 - 风险: 企微 AI 机器人已在用 Dify,要确认是否新开 app / 共用 ### 3.4 预估工时 | 任务 | 预估人天 | 难度 | |---|---|---| | 3-1.1 草稿回复 | 5 | 高(Dify 流式 + 实时推送) | | 3-1.2 自动摘要 | 3 | 中(异步任务 + 触发时机) | | 3-1.3 知识推荐 | 3 | 中(向量检索 + 评分) | | 3-1.4 排查步骤 | 4 | 中(Dify prompt 工程) | | 3-1.5 会话标注 | 2 | 低(模型 + UI) | | 3-1.6 右侧栏 | 3 | 中(实时更新 + 草稿交互) | | **合计** | **20** | | --- ## 阶段 2-3 总工时 + 关键路径 ``` 阶段 2 累计: 19.5 人天 阶段 3 累计: 20 人天 合计: 39.5 人天 ``` **关键路径**: 1. Dify 集成预研(W-4)→ 阶段 3 启动前置 2. 知识库基础(2-1.5)→ 阶段 3 知识推荐(3-1.3)前置 3. 摇人 / 评分 / 排队(2-1.1~3)可并行 --- ## 启动条件(给 workbuddy) workbuddy-claude user account 创好后,把这份文档读进 `.workbuddy/memory/`,按以下顺序接任务: 1. **先收尾 P1-1 优化 + 5 P0 遗留 + 初始 alembic**(#25 + 5 遗留 + 001 基准) 2. **阶段 2.1** → 2-1.1 摇人(Vue 组件简单,热身) 3. **阶段 2.2~3** → 满意度 / 排队 4. **阶段 2.5~6** → 知识库基础 + 企微应用消息(企微 secret 需用户给) 5. **Dify 集成预研**(W-4)→ 阶段 3 启动 6. **阶段 3 全部** 每完成一项 → 提交 commit → 推 Gitea(走 pre-commit-check.sh 4 件套)→ Claude 评审 → 合 main --- ## 风险与依赖 | 风险 | 等级 | 缓解 | |---|---|---| | Dify API 限流 | 🟡 | 加 Redis 缓存 + 异步队列 | | 企微应用消息配额 | 🟡 | 双通道降级(WS 优先) | | 知识库检索召回率 | 🟡 | 阶段 4 闭环后优化 | | workbuddy token 不稳定 | 🟠 | 用户创 workbuddy-claude user 解决 | | 阶段 2 推 main 冲突 | 🟡 | 强制走 PR + 评审 |