7.6 KiB
7.6 KiB
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 人天
关键路径:
- Dify 集成预研(W-4)→ 阶段 3 启动前置
- 知识库基础(2-1.5)→ 阶段 3 知识推荐(3-1.3)前置
- 摇人 / 评分 / 排队(2-1.1~3)可并行
启动条件(给 workbuddy)
workbuddy-claude user account 创好后,把这份文档读进 .workbuddy/memory/,按以下顺序接任务:
- 先收尾 P1-1 优化 + 5 P0 遗留 + 初始 alembic(#25 + 5 遗留 + 001 基准)
- 阶段 2.1 → 2-1.1 摇人(Vue 组件简单,热身)
- 阶段 2.2~3 → 满意度 / 排队
- 阶段 2.5~6 → 知识库基础 + 企微应用消息(企微 secret 需用户给)
- Dify 集成预研(W-4)→ 阶段 3 启动
- 阶段 3 全部
每完成一项 → 提交 commit → 推 Gitea(走 pre-commit-check.sh 4 件套)→ Claude 评审 → 合 main
风险与依赖
| 风险 | 等级 | 缓解 |
|---|---|---|
| Dify API 限流 | 🟡 | 加 Redis 缓存 + 异步队列 |
| 企微应用消息配额 | 🟡 | 双通道降级(WS 优先) |
| 知识库检索召回率 | 🟡 | 阶段 4 闭环后优化 |
| workbuddy token 不稳定 | 🟠 | 用户创 workbuddy-claude user 解决 |
| 阶段 2 推 main 冲突 | 🟡 | 强制走 PR + 评审 |