# 企微IT智能服务台 — 产品需求文档 (PRD) > **文档版本**: v1.0 > **创建日期**: 2025-07-11 > **最近更新**: 2026-06-10 > **产品经理**: 许清楚 (Xu) · 宋献 > **状态**: 阶段一开发完成,待端到端验证 > **说明**: 本文档已合并原 `PRD-v53-incremental.md` 内容(v5.3 坐席工作台增量需求)。v1.0 更新:新增管理后台远景规划(§18)、系统生态与集成规划(§19)、阶段细化与并行推进策略(§20);明确管理后台为第三端产品;确立 AI 混合策略(流程图+AI+标注+迭代);将阶段一细化为 1A/1B/1C 子阶段;新增零基础人员原则。v1.1 更新:新增邀请功能设计(§21),将邀请功能纳入M1 MVP(1A子阶段),新增P0-09~P0-11和P1-14~P1-16需求。 --- ## 目录 1. [项目信息](#1-项目信息) 2. [项目背景](#2-项目背景) 3. [方案可行性判断](#3-方案可行性判断) 4. [产品定义](#4-产品定义) 5. [五阶段演进路径](#5-五阶段演进路径) 6. [需求池](#6-需求池) 7. [并行协作模式](#7-并行协作模式) 8. [界面设计](#8-界面设计) 9. [摇人功能设计](#9-摇人功能设计) 10. [技术约束](#10-技术约束) 11. [数据模型核心设计](#11-数据模型核心设计) 12. [待确认问题](#12-待确认问题) 13. [里程碑与交付物](#13-里程碑与交付物) 14. [AI Wingman — 坐席智能辅助设计](#14-ai-wingman--坐席智能辅助设计) 15. [v5.3 坐席工作台增量需求](#15-v53-坐席工作台增量需求) 16. [附录 A: 术语表](#附录-a-术语表) 17. [附录 B: 企微API关键接口](#附录-b-企微api关键接口) 18. [管理后台远景规划](#18-管理后台远景规划) 19. [系统生态与集成规划](#19-系统生态与集成规划) 20. [阶段细化与并行推进策略](#20-阶段细化与并行推进策略) 21. [邀请功能设计 — 多人会话协作](#21-邀请功能设计--多人会话协作) | 字段 | 值 | |------|------| | 项目名称 | `wecom_it_smart_desk` | | 编程语言 | 后端: FastAPI + Redis + PostgreSQL / 前端: Vue3 + ElementPlus | | 部署环境 | Linux 服务器 (4核8GB+), Docker | | 文档语言 | 中文 | | 原始需求 | 基于企微自建应用消息API,自研IT服务坐席系统,替代企微"员工服务"模块,解决员工体验(绕过AI/另开窗口/无法跨主体)和管理人效(质量不稳定/成长慢/经验流失/缺乏数据)七项痛点 | --- ## 2. 项目背景 公司是一家约6000人的上市公司,全国主要城市设有分子机构,使用企业微信作为内部即时通讯系统。 ### 2.1 现有生产环境现状 公司已通过企微AI机器人API接口与本地化千问模型、RAGFlow、Dify实现智能IT助手回答内部员工IT咨询。转人工环节使用关键字命中后返回企微员工服务功能跳转链接。 **现有系统架构**: ``` ┌────────────────────────────────────────────────────────────────┐ │ 现有生产环境架构 │ │ │ │ 员工 ←─1对1消息─→ 企微AI机器人应用 │ │ │ │ │ ├─ AI回复 → RAGFlow + Dify + 千问 │ │ │ (知识库语义检索 + 大模型生成) │ │ │ │ │ ├─ 关键字触发 → 推送"员工服务"入口链接 │ │ │ (如输入"转人工"/"人工"等关键字) │ │ │ │ │ └─ 员工点击链接 → 跳转企微-员工服务-桌面IT支持 │ │ (新窗口,人工坐席处理) │ │ │ │ 企微-员工服务-桌面IT支持: │ │ · 企微内置客服模块,员工服务号接入 │ │ · 排队分配 → 人工坐席1对1对话 │ │ · 无AI辅助、无知识管理、无数据统计 │ └────────────────────────────────────────────────────────────────┘ ``` **现有系统组成**: | 组件 | 说明 | 状态 | |------|------|------| | 企微AI机器人 | 企微自建应用,1对1消息交互 | 已上线运行 | | RAGFlow | 检索增强生成引擎,知识库语义检索 | 已上线运行 | | Dify | AI应用开发平台,编排千问模型 | 已上线运行 | | 千问(通义) | 阿里云大模型,AI回复生成 | 已上线运行 | | 企微-员工服务 | 企微内置客服模块,人工坐席服务 | 已上线运行 | | 关键字触发转人工 | 输入指定关键字后推送员工服务链接 | 已上线运行 | **现有系统核心问题**: | # | 问题 | 现状描述 | |---|------|---------| | 1 | AI→人工跳转割裂 | 关键字触发后仅推送链接,员工需手动点击跳转到"员工服务"新窗口 | | 2 | 无法强制AI前置 | 员工可直接进入"员工服务"入口绕过AI,AI筛选比例低 | | 3 | 坐席无AI辅助 | 人工坐席在"员工服务"模块中纯手动回复,无智能推荐、无快速回复 | | 4 | 知识无法积累 | 坐席个人经验无法沉淀,AI知识库与坐席实际工作脱节 | | 5 | 无数据闭环 | 缺乏坐席绩效、AI回答质量、员工满意度的量化数据 | | 6 | 跨主体不可达 | "员工服务"模块不支持互联企业,跨企业员工无法使用 | ### 2.2 痛点分析 ### 2.2 痛点分析 > **痛点归纳说明**:将原7条痛点归纳为4条核心痛点,每条对应明确的解决阶段,便于追溯开发升级功能的针对性。 | # | 核心痛点 | 具体表现(归纳自原痛点) | 影响 | 解决阶段 | |---|---------|----------------------|------|---------| | 1 | **员工入口体验差** | ①员工可绕过AI直达人工,AI筛选比例极低;②转人工需另开新窗口,体验割裂;③AI机器人和员工服务无法跨主体共享,跨企业服务不可达 | AI使用率低,员工困惑,服务覆盖范围受限 | **阶段二** | | 2 | **坐席能力不稳定** | ①坐席回复质量依赖个人能力和经验,受情绪/状态影响;②实习生成长慢,辅导老师投入大但产出低,知识传承断档 | 服务质量参差不齐,人才培养投入产出比低 | **阶段三** | | 3 | **知识无法积累传承** | 坐席个人经验和成果无法有效积累、传承、迭代更新,人员离职即经验流失 | 团队整体能力无法持续提升,重复踩坑 | **阶段四** | | 4 | **管理缺乏数据支撑** | 坐席能力和绩效、IT支持员工满意度缺乏有效数据支撑,管理决策凭感觉 | 无法量化评估和持续优化,管理盲区大 | **阶段四** | > **核心约束**: 所有对象都是企业内员工,必须避免使用企微微信客服能力。 > **痛点与阶段映射**: 痛点1(员工体验层)→ 阶段二解决;痛点2(坐席能力层)→ 阶段三解决;痛点3~4(管理迭代层)→ 阶段四解决。阶段五(自动/辅助审核开单结单)进一步解决多系统切换效率问题,提升整体人效。 --- ## 3. 方案可行性判断 ### 3.1 方案对比 > **对比基准**:新增"现有生产环境"行(企微AI机器人 + RAGFlow + Dify + 千问 + 员工服务),作为各方案的改进参照。 | 方案 | 痛点1
入口体验差 | 痛点2
能力不稳定 | 痛点3
知识不传承 | 痛点4
缺数据 | 推荐度 | |------|:-:|:-:|:-:|:-:|--------| | **现有:AI机器人+员工服务** | ❌ | ❌ | ❌ | ❌ | ⬅️ 对比基准 | | 方式一:企微自建应用API + 员工服务转接 | ❌ | ❌ | ❌ | ❌ | ❌ 不推荐 | | 方式二:企微自建应用消息 + 自研坐席后台 | ✅ | ✅ | ✅ | ✅ | ✅ 推荐 | | 方式三:企微WebView嵌入 + 开源客服 | ⚠️ | ⚠️ | ❌ | ⚠️ | 有条件推荐 | | **方式四:混合分阶段演进路径(H5优先)** | **✅** | **✅** | **✅** | **✅** | **✅ 当前推进方案** | | 方式五:企微原生1对1 + 外援群聊 | ⚠️ | ✅ | ✅ | ✅ | 应急备选 | > **说明**: 痛点1为体验层(方案对比核心维度),痛点2为坐席能力层,痛点3-4为管理与人效层(依赖自研坐席后台能力,方式一/三不具备)。 > > **现有系统 vs 各方案的关键差异**:现有系统的"员工入口体验差"(可绕过AI、需另开窗口、无法跨主体)是最大体验短板。方式四通过H5 WebView在同一页面内完成AI→人工无缝切换,彻底解决此问题。 ### 3.2 各方案原理与优劣 #### 方式一:企微自建应用API + 员工服务转接 **原理**:自建应用接收员工消息,通过企微"员工服务"模块的API将对话转接到人工坐席。员工在自建应用中与AI对话,转人工时跳转到企微"员工服务"窗口。 | 优点 | 缺点 | |------|------| | 开发量最小,复用企微现有员工服务能力 | 仍需另开窗口(员工服务与自建应用是两个独立窗口) | | 员工服务模块有基础的排队、分配功能 | 无法强制AI前置筛选,员工可直接进入员工服务 | | | 无法跨主体共享(员工服务模块不支持互联企业) | | | 无自研坐席后台,痛点2-4无法解决 | **结论**:❌ 不推荐 — 本质上只是给现有流程加了一层AI入口,核心痛点(员工入口体验差、坐席能力不稳定、无人效管理)均未解决。 #### 方式二:企微自建应用消息 + 自研坐席后台 **原理**:完全基于企微自建应用消息API,员工在自建应用中发消息,后端接收回调后路由至AI或坐席。坐席使用自研工作台处理会话,回复通过 `/message/send` 推送回员工端。 | 优点 | 缺点 | |------|------| | 消息路由完全可控,可强制AI前置筛选 | 员工端体验受限于企微应用消息格式 | | 自研坐席后台,全面解决痛点2-4 | 开发量较大(坐席工作台 + 员工端 + 后端) | | 支持跨主体(互联企业应用共享) | | | 消息全量经后端,天然存档 | | **结论**:✅ 推荐 — 技术路线正确,是方式四/五的架构基础。 #### 方式三:企微WebView嵌入 + 开源客服 **原理**:在自建应用中嵌入WebView加载开源客服系统(如 Chatwoot),员工在H5页面内完成AI+人工全流程对话。 | 优点 | 缺点 | |------|------| | 开源客服系统提供现成UI和管理后台 | 无法强制AI前置筛选(员工可直接联系人工) | | 跨主体可通过H5嵌入其他平台实现 | 开源客服难以深度定制坐席智能辅助功能 | | | 开源客服的知识管理和数据能力有限,痛点3-4覆盖不足 | | | 员工端依赖WebView,体验不如原生 | **结论**:有条件推荐 — 适合快速验证MVP,但长期来看坐席侧能力受限于开源客服的上限。 #### 方式四:混合分阶段演进路径(H5优先)⭐ 当前推进方案 **原理**:基于方式二的架构,员工端采用 H5 WebView(Vue3 + Vant4)嵌入企微自建应用,坐席端采用自研工作台(Vue3 + Element Plus)。消息流全量经后端路由,支持AI前置筛选、AI-人工无缝切换、跨主体扩展。 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 员工端(H5 WebView) │ │ │ │ 员工 ──消息──→ 企微自建应用 H5 页面 │ │ │ │ │ ├─ AI回复 → H5 内气泡显示(同一对话流) │ │ ├─ 转人工 → H5 内无缝切换(同一对话流) │ │ ├─ 摇人按钮 → 一键呼叫坐席 │ │ └─ 满意度评分 → H5 内评分组件 │ │ │ └─────────────────────────────────────────────────────────────────┘ ↕ WebSocket + REST API ┌─────────────────────────────────────────────────────────────────┐ │ 坐席端(自研工作台) │ │ │ │ 坐席 ←── 会话列表(按紧急度排序) │ │ ├── 聊天区(AI建议内联 + 快速回复 + 排查步骤) │ │ ├── 用户信息栏(IT等级徽标 + VIP标记) │ │ └── 待办面板(工单/审批/设备任务) │ │ │ └─────────────────────────────────────────────────────────────────┘ ↕ ┌─────────────────────────────────────────────────────────────────┐ │ 后端服务 │ │ │ │ 消息路由层(强制AI前置)→ Dify/RAGFlow → 评分 → 分配坐席 │ │ 快速回复知识库(180条模板)→ 排查步骤模板 → 摇人调度 │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` **核心交互路径**: | 阶段 | 交互路径 | 员工端体验 | |------|---------|-----------| | AI 自助 | 员工发消息 → 后端路由 → Dify/RAGFlow → H5 内气泡 | AI回复在**同一对话流**中显示 | | 转人工触发 | AI回复N轮后触发 / 员工点击"摇人"按钮 / 关键词匹配 | **同一对话流**内无缝切换,无跳转 | | 坐席介入 | 坐席工作台接收会话 → AI推荐回复 → 快速回复 | 员工端仍在**同一对话流**中收到人工回复 | | 满意度评分 | 会话结束 → H5 内评分组件弹窗 | 原地评分,无需跳转 | **五阶段演进路径**(详见 §5): | 阶段 | 目标 | 员工端 | 坐席端 | AI能力 | |------|------|--------|--------|--------| | 阶段一 | 转人工改H5+坐席工作台MVP | H5 登录+身份识别 + 转人工链接改H5 | 自研工作台MVP(会话列表+聊天+快速回复) | 不变(复用现有) | | 阶段二 | 智能咨询集成 | H5 全流程 + 敲桌子 + 评分 | 三栏工作台MVP + AI建议 + 快速回复 | AI前置筛选 + 双通道推送 | | 阶段三 | 坐席辅助回复/判断 | H5 体验优化 | AI Wingman(草稿+摘要+知识+排查步骤) | 千问深度集成 | | 阶段四 | 日志标准+知识库迭代 | H5 跨平台扩展 | 绩效看板 + AI知识库自动迭代 | AI知识库自学习闭环 | | 阶段五 | 自动/辅助审核开单结单 | H5 一站式 | 待办面板 + AI填单 + AI审核 + AI结单 | AI流程自动化 | | 优点 | 缺点 | |------|------| | H5 员工端可做丰富的交互UI(评分/摇人/AI标识) | 员工需进入H5页面,非原生聊天体验 | | 消息路由完全可控,可强制AI前置筛选 | 依赖WebView加载,有网络延迟 | | 自研坐席后台,全面解决痛点4-7 | H5 需OAuth2鉴权(多一步跳转) | | 支持跨主体(H5可嵌入其他企微主体/平台) | 开发量最大(员工端+坐席端+后端) | | 一次开发,可扩展到钉钉/飞书/浏览器 | 通知依赖H5页面是否打开(不如原生必达) | | AI/人工身份清晰区分(UI可做丰富标识) | | **H5 端实时消息推送方案**: 方式四的 H5 员工端存在一个关键体验问题——坐席回复消息后,H5 页面需要实时刷新才能显示新消息。当前已实现的消息到达机制如下: | 机制 | 实现状态 | 体验 | |------|---------|------| | 企微应用消息推送(`/message/send`) | ✅ 已实现 | 坐席发消息 → 企微系统级通知弹窗/红点 → 员工**点击通知**回到 H5 → 页面拉取新消息 | | H5 轮询(`/h5/conversations/current/messages/poll`) | ✅ 已实现 | 前端每 3-5 秒请求一次新消息,延迟明显 | | H5 WebSocket 实时推送 | 🔲 待开发 | 坐席发消息 → 后端推送 → H5 聊天区**秒级自动刷新**,体验最佳 | **双通道通知策略**(推荐上线方案): ``` 坐席发送消息 ├── 通道1: 企微 /message/send → 系统级通知(保证必达) │ → 员工未在 H5 页面时,收到企微通知弹窗 │ → 员工已关闭 H5 时,仍可通过通知回到对话 │ └── 通道2: WebSocket 推送 → H5 页面内实时更新(保证即时) → 员工在 H5 页面时,聊天区秒级刷新 → 页面未打开时,WebSocket 断连,自动降级为通道1 ``` **WebSocket 推送技术方案**: | 项目 | 说明 | |------|------| | 后端 | 扩展现有 `ws_manager.py`(已管理坐席 WS 连接),新增 `employee` 类型连接注册 | | WS 端点 | `GET /api/h5/ws?token={bearer_token}` — H5 前端通过 Bearer Token 鉴权连接 | | 消息格式 | `{"type": "new_message", "data": {"id": "...", "content": "...", "sender_type": "agent"}}` | | 断连降级 | WebSocket 断连时,前端自动切换为轮询(现有 `/messages/poll` 兜底) | | 重连策略 | 指数退避重连(1s → 2s → 4s → 8s → 最大 30s),断连期间消息由通道1保证 | | 前端 | `frontend-h5/` 新增 `composables/useWebSocket.ts`,监听推送事件自动追加消息 | **与现有系统对比**: | 维度 | 现有生产环境 | 方式四(H5 + 双通道推送) | |------|------------|------------------------| | AI→人工切换 | 关键字触发 → 推送链接 → 跳转新窗口 | H5 内同一对话流无缝切换 | | 人工回复通知 | 企微员工服务自带通知(原生窗口) | 企微系统通知 + H5 WebSocket 双通道 | | 回复即时性 | 原生1对1窗口,即时 | WebSocket 秒级推送(H5 页面内)/ 企微通知(H5 未打开时) | | 消息存档 | 企微员工服务存档(需开通会话存档权限) | 全量经后端,天然存档,无额外权限 | **关键企微 API**: | API | 路径 | 用途 | 关键限制 | |-----|------|------|---------| | 发送应用消息 | `/cgi-bin/message/send` | 通知/提醒推送到企微 | ≤账号上限×200人次/天 | | 接收消息回调 | 自建应用回调URL | 接收员工发给应用的消息 | 需公网HTTPS回调URL | | 构造网页授权链接 | `/cgi-bin/oauth2/authorize` | H5页面识别员工身份 | 需配置可信域名 | | 互联企业应用共享 | 企微管理后台 | 跨主体员工使用同一应用 | 需双方管理员审批 | **结论**:✅ 当前推进方案 — 全面解决7项痛点,生态扩展性最强,分阶段演进风险可控。 #### 方式五:企微原生1对1 + 外援群聊(应急备选方案) > **定位**:非主推方案。当方式四的AI服务(Dify/RAGFlow)出现故障不可用时,作为**应急预案**切换至方式五,利用企微原生1对1消息维持基本服务。若方式四整体故障(坐席工作台也不可用),则退回"企微-员工服务-桌面IT支持"仅有人工坐席最简方式。 **原理**:员工直接在企微原生聊天窗口与自建应用1对1对话,AI和坐席回复均通过 `/message/send` 推送到同一窗口。外援场景通过 `/appchat/create` 创建群聊。 ``` ┌──────────────────────────────────────────────────────────────┐ │ 员工端(企微原生聊天窗口) │ │ │ │ 员工 ←─1对1消息─→ 自建应用(IT智能助手) │ │ │ │ │ ├─ AI回复 → /message/send → 同一窗口 │ │ ├─ 坐席回复 → /message/send → 同一窗口 │ │ │ (员工无感知AI/人工切换) │ │ │ │ │ └─ 外援场景 → /appchat/create → 新群聊窗口 │ │ │ └──────────────────────────────────────────────────────────────┘ ``` | 优点 | 缺点 | |------|------| | **应急价值高**:AI故障时可快速切换,员工仍可通过原生窗口获得人工服务 | 无法跨主体(仅同一企微主体内) | | 员工端零开发量(原生聊天窗口) | AI/人工身份需消息前缀区分(如"[人工-张三]") | | 体验最优(与日常聊天无差异,通知必达) | 员工可直接1对1联系应用,绕过AI前置筛选 | | 消息全量经后端API,天然存档 | 绑定企微生态,无法扩展到其他平台 | | 外援走原生群聊,低频且轻量 | 满意度评分只能用模板卡片(体验不如H5评分组件) | **关键企微 API**: | API | 路径 | 用途 | 关键限制 | |-----|------|------|---------| | 发送应用消息 | `/cgi-bin/message/send` | AI/坐席向员工推送消息(主流程) | ≤账号上限×200人次/天,同一人≤30次/分 | | 接收消息回调 | 自建应用回调URL | 接收员工发给应用的消息 | 需公网HTTPS回调URL | | 创建群聊 | `/cgi-bin/appchat/create` | 外援场景:创建多方协作群 | ≤1000群/天,≤2000人/群 | | 修改群聊 | `/cgi-bin/appchat/update` | 外援群管理(加人/改名) | ≤1000次/小时 | | 获取群聊 | `/cgi-bin/appchat/get` | 查询群聊信息 | 仅本应用创建的群 | | 推送群消息 | `/cgi-bin/appchat/send` | 群内推送消息(9种类型) | ≤2万人次/分 | **方式四 vs 方式五详细对比**: | 维度 | 方式四:H5 WebView(当前方案) | 方式五:原生1对1 + 外援群聊(应急备选) | |------|-------------------------------|---------------------------------------| | **员工入口** | 点击应用 → 进入 H5 页面 | 直接在企微与应用1对1聊天 | | **对话体验** | H5 内部输入框,需切换上下文 | **原生聊天窗口,与日常聊天无差异** | | **通知必达** | 依赖 H5 是否打开 | **企微原生推送,必达** | | **富媒体支持** | H5 自定义 UI(需开发) | **原生支持6种输入+10种输出** | | **前端开发量** | 大(Vue3+Vant4 H5 客户端) | **零(员工端无前端)** | | **OAuth2 鉴权** | 必须(H5 需识别用户身份) | **不需要(回调自带 UserID)** | | **跨平台移植** | **✅ H5 可挂载钉钉/飞书/浏览器等** | ❌ 绑定企微 | | **跨主体企微支持** | **✅ 可,非静默登录时提供其他认证** | ❌ 仅同一企微主体内 | | **AI/人工区分** | **✅ H5 可做丰富身份标识** | ⚠️ 需消息内容前缀区分(如"[人工-张三]") | | **转人工触发** | H5 内按钮(`ai_substantive_reply_count >= 3`) | 关键词"转人工" / 交互卡片按钮 | | **满意度评分** | H5 内评分组件 | 模板卡片消息(按钮交互型) | | **消息存档** | 全量经后端,天然存档 | **全量经后端(AI+坐席都走API),无需会话存档权限** | | **外援/摇人** | 需额外设计 | **原生群聊(appchat),新窗口** | | **坐席工作台** | 保留 | 保留 | **结论**:方式五体验最优但受限于企微主体内,定位为**应急备选方案**。当方式四的AI服务故障时切换使用,维持基本服务能力。 ### 3.3 降级应急预案 当方式四(主方案)出现不同级别的故障时,按以下降级链路逐步回退: ``` 方式四(正常)→ 方式五(AI故障,保留坐席工作台+原生1对1)→ 企微员工服务(仅人工坐席最简方式) ``` | 降级级别 | 触发条件 | 员工端变化 | 坐席端变化 | 恢复条件 | |----------|---------|-----------|-----------|---------| | **L0 正常** | 全部服务可用 | H5 完整体验 | 自研工作台全功能 | — | | **L1 AI降级** | Dify/RAGFlow 不可用 | H5 内自动跳过AI,直接进入人工排队 | 工作台AI推荐/快速回复不可用,手动回复 | AI服务恢复 | | **L2 方式五切换** | H5服务整体故障 | 切换至企微原生1对1消息(方式五) | 工作台仍可用,回复通过API推送到员工原生窗口 | H5服务恢复 | | **L3 完全回退** | 坐席工作台也不可用 | 退回"企微-员工服务-桌面IT支持" | 使用企微员工服务后台手动处理 | 全部服务恢复 | > **核心架构决策**: 彻底放弃企微"员工服务"模块,用自建应用消息API + 自研坐席服务台替代整个链路 > **消息路由**: 自建应用消息回调到自己服务器,所有消息先到路由层,可强制新会话默认进AI模式 > **跨企业**: 通过企微"互联企业"应用共享实现(方式四),或H5嵌入其他平台实现 --- ## 4. 产品定义 ### 4.1 产品目标 1. **提高AI首答率**: 通过消息路由层强制新会话先走AI,将AI筛选比例从当前低位提升至80%以上,降低人工坐席负载 2. **统一对话体验**: 员工从AI对话到人工服务在同一窗口无缝流转,消除跳转割裂感 3. **构建AI-人工协作闭环**: 建立坐席标注→知识库迭代的正向循环,持续提升AI解答质量 ### 4.2 用户故事 | # | 角色 | 故事 | 验收标准 | |---|------|------|---------| | US-1 | 普通员工 | 我希望在企微应用中直接咨询IT问题,AI先回答,需要人工时无需切换窗口即可转接 | AI回复和人工回复在同一对话流中连续显示 | | US-2 | 普通员工 | 我希望通过"摇人"一键呼叫IT坐席,不需要记住关键词 | 摇人按钮在输入框左侧,点击即触发转人工流程 | | US-3 | IT坐席 | 我希望看到一个按紧急度排序的会话列表,优先处理最紧急的问题 | 会话列表按紧急→举手→需介入→活跃→AI处理中→已结单排序 | | US-4 | IT坐席 | 我希望AI能在旁边给我建议回复和操作步骤,我可以采纳或修改 | AI建议条显示在对话区,支持采纳/编辑后采纳/忽略 | | US-5 | IT主管 | 我希望坐席在日常工作中标注AI回复的准确性,系统能自动分析知识库缺陷 | 标注嵌入坐席工作流,千问自动分析生成优化建议 | | US-6 | VIP员工 | 我希望我的问题能被优先处理 | VIP标记自动匹配,会话紧急度加成,列表优先展示 | | US-7 | 跨企业员工 | 我希望在母公司的企微应用中也能使用IT服务 | 通过企微互联企业应用共享,跨主体员工可使用同一服务 | --- ### 4.3 竞品分析与差异化定位 > **新增日期**: 2026-06-14 #### 4.3.1 四大竞品对标 | 竞品 | 类型 | 核心能力 | 我们的差异化优势 | |------|------|----------|------------------| | **钉钉·智能客服** | 平台内置 | AI问答、工单、会话分析 | **私有化部署 + 企微深度集成** + 坐席工作台自定义 | | **美团·IT服务台** | 自研 | 报修工单、资产盘点、BI看板 | **终端安全集成**(火绒+联软)+ 免费开源 | | **飞书·IT运维** | 插件生态 | 审批流、资产、知识库 | **企业微信原生** + AI混合策略 | | **Jira Service Management** | 商业SaaS | ITSM、资产管理、SLA | **本土化免费** + 国有大模型集成 | #### 4.3.2 市场定位 > **一句话定位**: 融合服务台+资产+终端安全的**企业级ITSM**,基于企微生态的免费开源解决方案。 | 维度 | 定位说明 | |------|----------| | **目标客户** | 6000人左右的中大型企业,使用企微作为办公通讯 | | **核心价值** | 免费开源 + 私有化部署 + 终端安全一体化 | | **差异化标签** | AI驱动 · 多系统对接 · 一站式处理 | | **定价策略** | 社区版免费,专业版定制收费 | #### 4.3.3 竞争优势 | 优势 | 说明 | |------|------| | **企微深度集成** | 原生OAuth2、企业API、消息推送、通讯录同步 | | **终端安全联动** | 火绒+联软API直连,威胁自动响应 | | **免费开源** | MIT协议,社区支持,降低采购阻力 | | **AI混合策略** | 流程图+AI生成+坐席标注+自动迭代 | #### 4.3.4 风险与挑战 | 风险 | 等级 | 应对策略 | |------|------|----------| | 企微API限制 | 中 | 保持降级通道(企微员工服务) | | 集成复杂度 | 高 | 分阶段交付,MVP先行 | | 社区活跃度 | 低 | 先在内部打磨,文档完善后开源 | --- ### 4.4 功能优先级 (MoSCoW) > **新增日期**: 2026-06-14 #### Must have (P0 - MVP必须) | 功能 | 说明 | 阶段 | |------|------|------| | AI对话 | 员工在H5中咨询IT问题,AI回答 | 阶段1 | | 转人工 | AI无法解决时一键转人工坐席 | 阶段1 | | 坐席工作台 | 会话列表+聊天+快速回复 | 阶段1 | | 消息推送 | 企微消息实时到达 | 阶段1 | | 身份识别 | OAuth2企微登录 | 阶段1 | #### Should have (P1 - 第一版应该有) | 功能 | 说明 | 阶段 | |------|------|------| | 摇人按钮 | 输入框左侧一键呼叫坐席 | 阶段2 | | 满意度评价 | 会话结束后评价 | 阶段2 | | 排队系统 | 多会话时排队等待 | 阶段2 | | 快速回复 | 坐席常用语管理 | 阶段2 | | 知识库(基础) | FAQ手动维护 | 阶段2 | #### Could have (P2 - 最好有) | 功能 | 说明 | 阶段 | |------|------|------| | AI Wingman | AI建议回复 | 阶段3 | | 会话标注 | 坐席标注AI回复准确性 | 阶段3 | | 自动摘要 | 会话结束后AI摘要 | 阶段3 | | 数据看板 | 基础统计 | 阶段4 | | 知识库自动迭代 | AI分析+知识库更新 | 阶段4 | #### Won't have (暂缓) | 功能 | 说明 | 阶段 | |------|------|------| | 工单系统 | 开单/审批/结单 | 阶段5 | | 资产联动 | 联软资产集成 | 阶段5 | | 终端安全 | 火绒终端集成 | 阶段5 | | 跨企业共享 | 企微互联 | 未来 | --- ### 4.5 推广计划 > **新增日期**: 2026-06-14 #### 5阶段推广节奏 | 阶段 | 时间 | 目标 | 策略 | |------|------|------|------| | **封闭内测** | 第1-2周 | 30人IT部门 | 邀请制,收集反馈,优化体验 | | **全员试用** | 第3-4周 | 200人种子用户 | 企微群推广,管理员推动 | | **正式上线** | 第5-6周 | 1000人 | 培训+推广材料 | | **功能扩展** | 第7-12周 | 3000人 | 阶段2功能,推广摇人+评价 | | **生态构建** | 第3-6月 | 6000人 | 阶段3-4,数据驱动优化 | #### 推广关键指标 (KPI) | 指标 | 目标值 | 说明 | |------|--------|------| | AI首答率 | ≥80% | AI直接解决的比例 | | 人工平均响应 | ≤60s | 从提交到坐席响应的平均时间 | | 会话满意度 | ≥4.5★ | 5分制评价 | | 问题解决率 | ≥90% | AI+人工最终解决的比例 | | 坐席人均处理 | ≤30/天 | 坐席日均处理会话数 | #### 推广资源需求 | 资源 | 说明 | |------|------| | IT支持组 | 3人坐席值班 | | 培训材料 | 5分钟入门视频+图文手册 | | 推广文案 | 企微公告+海报 | | 激励机制 | 满意度前10%奖励 | --- ## 5. 五阶段演进路径 > **演进原则**:每个阶段都基于现有生产环境(企微AI机器人 + RAGFlow + Dify + 千问)进行增量升级,不做大爆炸式替换。现有AI机器人持续运行直到新系统对应阶段稳定上线。 ### 5.1 阶段总览 | 阶段 | 目标 | 核心变更 | 解决痛点 | 现有系统影响 | |------|------|---------|---------|------------| | **阶段一** | 转人工改H5+坐席工作台MVP | AI机器人转人工链接从"员工服务"改为H5自建应用,员工端解决登录和身份识别,坐席端交付自研工作台MVP(会话列表+聊天+快速回复),AI能力不变 | 痛点1(部分)、坐席摆脱员工服务限制 | AI转人工链接从员工服务改为H5,原有1对1窗口保留为降级通道 | | **阶段二** | 迁移和集成面向员工的智能咨询功能 | H5员工端完整体验(AI对话+转人工+摇人+评分),双通道消息推送 | **痛点1** | 员工服务入口逐步迁移至H5 | | **阶段三** | 面向坐席的辅助回复和辅助判断 | 坐席工作台 AI Wingman(草稿回复+自动摘要+知识推荐+排查步骤) | **痛点2** | 坐席从员工服务后台切换至自研工作台 | | **阶段四** | 日志标准和AI知识库迭代 | 会话标注体系 + AI知识库自动迭代闭环 + 数据统计看板 | **痛点3~4** | AI知识库从人工维护升级为自动迭代 | | **阶段五** | 自动/辅助审核、开单、结单 | 工单/审批/设备异常一站式处理 + AI辅助填单+自动结单 | 多系统切换效率问题 | 替代多系统切换,统一工作台闭环 | ### 5.2 各阶段详细规划 #### 阶段一:转人工改H5 + 坐席工作台MVP > **本阶段解决痛点**:坐席摆脱企微员工服务限制(为阶段二解决痛点1打基础)。 > > **关键前提**:企微AI机器人 + Dify + RAGFlow + 千问**已在生产环境运行**,本阶段不做任何AI引擎改动,仅改变转人工环节的链接指向和坐席端工具。 **目标**:现有AI机器人继续运行(不动),仅将转人工的链接从"企微员工服务"改为H5自建应用;员工端解决OAuth2登录和身份识别;坐席端交付自研工作台MVP(会话+快速回复),摆脱企微内置员工服务的限制。坐席端AI能力**暂不接入**。 **现状 → 目标对比**: | 维度 | 现有生产环境 | 阶段一目标 | |------|------------|----------| | AI机器人 | 企微1对1对话,RAGFlow+Dify+千问(**不变**) | 企微1对1对话,RAGFlow+Dify+千问(**不变**) | | 转人工 | 关键字触发 → 推送"企微员工服务"链接 → 跳转新窗口 | 关键字触发 → 推送H5自建应用链接 → 同一WebView内切换 | | 员工端 | 无独立身份识别,员工服务窗口无登录 | H5 WebView(OAuth2静默授权 → 身份识别) | | 坐席端 | 企微内置员工服务后台(功能受限) | 自研工作台MVP,摆脱员工服务限制 | | 坐席快速回复 | 无(纯手动输入) | 三级导航快速回复面板(7大类28子类180条模板) | | 坐席AI能力 | 无 | **暂不接入**(阶段三引入) | **范围**: **员工端(H5 WebView,Vue3 + Vant4)**: - 自建应用创建 + H5页面基础框架 - OAuth2 静默授权 → 员工身份识别(核心) - 接收坐席消息的展示(人工回复在H5页面显示) - 企微应用消息推送(坐席回复通过 `/message/send` 推送企微通知) **坐席端(自研工作台MVP,Vue3 + Element Plus)**: - 会话列表(显示进行中的会话,按时间排序) - 聊天窗口(显示完整对话记录,可回复) - 发送消息(文本消息发送) - 快速回复面板(三级渐进导航:7大类→28子类→180条模板,数字键快捷操作) - **邀请功能**(坐席邀请其他员工/部门加入会话,详见§21) - 摆脱企微员工服务限制,坐席使用独立工作台处理会话 - **不含AI能力**(AI建议、排查步骤等留到阶段三) **后端变更**: - AI机器人转人工链接配置:从"员工服务"改为H5自建应用URL - 坐席WebSocket连接管理(复用现有 `ws_manager.py`) - 消息路由:AI对话→关键字触发→创建人工会话→分配坐席 **完成标准**:员工在企微与AI机器人对话 → 关键字触发转人工 → 推送H5链接 → 员工点击进入H5页面(OAuth2自动登录) → 坐席在自研工作台收到会话 → 坐席使用快速回复或手动输入回复 → 员工在H5页面看到人工回复;坐席可邀请其他员工/部门加入会话协作 → 被邀请人收到企微通知 → 通过H5链接加入 → 多人同一会话协作 **开发周期**:6-8周 #### 阶段二:迁移和集成面向员工的智能咨询功能 > **本阶段解决痛点**:痛点1(员工入口体验差:可绕过AI、另开窗口、无法跨主体)。 **目标**:完善H5员工端全流程体验,实现AI→人工无缝切换,取代关键字触发跳转链接的转人工方式,并增强坐席工作台能力(仍不含AI)。 **现状 → 目标对比**: | 维度 | 阶段一 | 阶段二目标 | |------|--------|----------| | 转人工方式 | 关键字触发 → 推送H5链接(同一WebView切换) | H5内"敲桌子"按钮/摇人 → 同一对话流切换 | | 人工回复到达 | 坐席自研工作台回复 → 员工H5页面查看(轮询) | H5内WebSocket实时推送 + 企微通知双通道 | | AI→人工切换 | 关键字触发,两个窗口(AI对话+人工H5) | 同一对话流,AI历史+人工回复连续显示 | | 坐席端能力 | 基础MVP(会话列表+聊天+快速回复) | 用户信息栏 + 会话标记 + 排队显示(不含AI) | | 满意度评分 | 无 | H5内评分组件,会话结束后弹出 | | 排队系统 | 无 | 等待坐席接入的排队机制,含等待提示 | **范围**: **员工端(H5)**: - H5 "敲桌子/摇人"按钮 + 转人工触发逻辑(AI实质性回复≥3轮) - H5 WebSocket 实时推送(双通道通知策略) - 满意度评分组件 - AI→人工同一对话流无缝切换 **坐席端(工作台增强,不含AI)**: - 用户信息栏(员工基本信息、IT等级徽标) - 会话标记系统(VIP/举手/需介入/情绪标记) - 会话列表增强(按紧急度排序、标记显示) - 排队信息展示 **后端**: - 消息路由层优化:新会话→AI优先,AI判断/用户触发→坐席队列 - 排队系统 + 等待提示 - 会话状态增强(排队中/服务中/已结单 + 标记) **完成标准**:员工H5内AI对话→敲桌子→坐席接入→人工回复→员工同一对话流看到→结单→评分 **开发周期**:5周 **开发计划**: | 周 | 天数 | 内容 | |----|------|------| | 第1周 | D1-D5 | H5敲桌子/摇人 + 消息路由优化 + AI→人工切换 | | 第2周 | D6-D10 | WebSocket推送 + 双通道通知策略 | | 第3周 | D11-D15 | 坐席AI建议面板 + 用户信息栏 + 会话标记 | | 第4周 | D16-D20 | 排队系统 + 满意度评分 | | 第5周 | D21-D25 | 联调测试 + 现有系统切换 | #### 阶段三:面向坐席的辅助回复和辅助判断 > **本阶段解决痛点**:痛点2(坐席能力不稳定:回复质量依赖个人能力、实习生成长慢)。 **目标**:坐席工作台引入AI Wingman(智能副驾驶),消灭重复劳动、增强认知能力。 **现状 → 目标对比**: | 维度 | 阶段二 | 阶段三目标 | |------|--------|----------| | 坐席回复方式 | 纯手动输入 | AI草稿回复 + 快速回复模板 + 排查步骤 | | 会话摘要 | 无 | AI自动生成结构化摘要(问题/原因/解决方案) | | 知识获取 | 坐席自行搜索 | 基于对话上下文自动推送知识库文档 | | 问题判断 | 依赖个人经验 | AI辅助判断 + 相似工单推荐 + SOP流程导航 | | 新人上手 | 老带新,成长慢 | AI推荐回复降低认知负荷,上手周期缩短50% | **范围**: - AI Wingman 效率层:AI草稿回复(采纳/编辑/忽略)+ 自动摘要 + 自动标签 - AI Wingman 认知层:知识推荐 + SOP流程导航 + 相似工单 + 客户画像 - 排查步骤栏 + 决策树流程图 - 坐席端双区布局(内嵌区 + 侧栏区) - 两个 Dify Agent(员工端AI + 坐席端Wingman)共用知识库 **完成标准**:坐席接会话→AI自动生成草稿→采纳/修改→发送;结单→自动摘要→确认存档 **开发周期**:4-6周 #### 阶段四:日志标准和AI知识库迭代 > **本阶段解决痛点**:痛点3(知识无法积累传承)+ 痛点4(管理缺乏数据支撑)。 **目标**:建立AI-人工协作闭环,坐席标注驱动AI知识库自动迭代,构建数据驱动的管理体系。 **现状 → 目标对比**: | 维度 | 阶段三 | 阶段四目标 | |------|--------|----------| | AI回答质量保障 | 依赖坐席主观感受 | 坐席标注→AI自动分析→知识库自动优化 | | 知识库维护 | 人工定期审查更新 | 千问自动分析标注数据,判断缺文档/信息过时 | | 数据统计 | 无 | 坐席绩效看板 + AI回答质量看板 + 员工满意度统计 | | 管理决策 | 凭感觉 | 数据支撑:响应时效/解决率/AI筛选率/知识库覆盖率 | **范围**: - 坐席标注AI回复正确/错误(嵌入日常工作流,不单独开标注页面) - 千问自动分析待优化队列:缺文档→生成FAQ→推送RAGFlow;过时→标记→推送管理员审核 - 数据统计看板:坐席绩效/会话量/AI筛选率/员工满意度 - 日志标准:会话日志格式规范,支持后续审计和分析 - 跨企业共享(通过企微互联企业应用共享) **完成标准**:坐席标注→千问分析→自动生成FAQ→推送RAGFlow→AI回答质量提升→闭环验证 **开发周期**:4-6周 #### 阶段五:自动/辅助审核、开单、结单 > **本阶段解决痛点**:多系统切换效率问题(延伸痛点4/5,进一步提升人效)。 **目标**:将工单/审批/设备异常等外部系统整合到坐席工作台,实现一站式闭环处理。 **现状 → 目标对比**: | 维度 | 阶段四 | 阶段五目标 | |------|--------|----------| | 工单处理 | 坐席手动切到外部系统开单 | 坐席工作台内一键开单/结单 | | 审批流程 | 坐席告知员工审批链接,员工自行操作 | 工作台内直接发起/审批 | | 设备异常 | 坐席手动记录,另开系统处理 | 工作台内查看设备状态+派工+标记恢复 | | 结单流程 | 坐席手动输入结单描述 | AI自动生成结单摘要→坐席确认→自动结单 | | 审核机制 | 无 | AI辅助审核(检测遗漏步骤/不合规操作) | **范围**: - 待办事项面板(工单/审批/设备异常) - 中间栏任务详情视图切换 - AI辅助填单(基于对话内容自动填写工单字段) - AI辅助审核(检测遗漏步骤、不合规操作) - AI辅助结单(自动生成结构化摘要) - 外部系统API对接(ITSM/审批系统/设备管理) **完成标准**:坐席接会话→AI辅助开单→处理→AI辅助审核→AI辅助结单→一站式闭环 **开发周期**:4-6周 ### 5.3 阶段间降级兼容 > 每个阶段上线期间,现有生产环境必须保持可用,作为降级通道。 | 阶段 | 降级方案 | 触发条件 | 恢复条件 | |------|---------|---------|---------| | 阶段一 | 回退到原企微1对1AI机器人窗口 | H5页面无法访问 | H5服务恢复 | | 阶段二 | 回退到关键字触发推送员工服务链接 | 坐席工作台故障 | 工作台恢复 | | 阶段三 | 坐席关闭AI辅助,纯手动回复(功能降级,非切换) | Dify AI服务故障 | AI服务恢复 | | 阶段四 | 数据统计暂时中断,坐席继续工作 | 分析服务故障 | 分析服务恢复 | | 阶段五 | 回退到外部系统手动处理 | 工作台任务模块故障 | 模块恢复 | --- ## 6. 需求池 (Requirements Pool) ### P0 — Must Have(第一步必须交付) | ID | 需求 | 说明 | 验收标准 | |----|------|------|---------| | P0-01 | 企微自建应用消息接收 | 通过企微回调URL接收员工消息 | 员工发送消息,服务器能收到并解析 | | P0-02 | 企微自建应用消息发送 | 通过企微API向员工发送消息 | 服务器主动发消息,员工在企微应用中收到 | | P0-03 | 消息路由层 | 所有消息先到路由层,按规则分发 | 新会话默认路由到坐席队列(第一步无AI) | | P0-04 | 坐席会话列表 | 显示所有进行中的会话,含基本排序 | 按时间倒序,显示员工姓名、最后消息摘要 | | P0-05 | 坐席对话区 | 显示选定会话的完整对话记录,可回复 | 消息实时显示,坐席可发送文本回复 | | P0-06 | 员工同窗口体验 | 员工AI对话和人工服务在同一企微应用对话流 | 无需切换窗口,消息连续显示 | | P0-07 | 会话状态管理 | 会话状态:排队中/服务中/已结单 | 数据库状态字段正确流转 | | P0-08 | 测试环境隔离 | 在正式企微企业中测试可见范围隔离 | 测试用户可见,其他用户不可见 | | P0-09 | 邀请功能-邀请发起 | 坐席在会话中可邀请其他员工/部门加入 | 坐席点击邀请→选人→确认→被邀请人收到企微通知 | | P0-10 | 邀请功能-加入会话 | 被邀请人通过链接进入H5会话,可查看和回复 | 点击通知→H5加载→拉取历史→可发送消息 | | P0-11 | 邀请功能-参与者管理 | 会话显示所有参与者,区分发起人/被邀请人 | 参与者列表可见,角色标识清晰 | ### P1 — Should Have(第一步应交付,第二步完善) | ID | 需求 | 说明 | 验收标准 | |----|------|------|---------| | P1-01 | 会话标记系统 | VIP/举手/需介入/情绪标记 + 紧急度评分 | 标记在会话列表中正确显示,紧急度计算准确 | | P1-02 | 会话列表排序 | 紧急→举手→需介入→活跃→AI处理中→已结单 | 排序规则生效,会话按紧急度排列 | | P1-03 | VIP标记自动匹配 | 基于企微通讯录API规则匹配(总监及以上或关键部门) | 匹配规则可配置,VIP标记自动显示 | | P1-04 | 举手标记 | 员工说"转人工"或关键词触发 | 关键词可配置,触发后自动举手 | | P1-05 | 需介入标记 | 同一问题追问超过N轮(默认3轮)或AI判断需要人工 | N值可配置,自动触发标记 | | P1-06 | 情绪标记(规则版) | 关键词规则匹配("急/紧急/马上/崩溃"等) | 关键词可配置,命中后自动标记 | | P1-07 | 紧急度评分 | 公式:紧急度=基础分(关键词)+情绪加成+VIP加成+重复追问加成,1-5分映射 | 评分计算正确,映射为低/中/高/紧急/最高 | | P1-08 | 置顶/代办 | 坐席手动操作,数据库加is_pinned和is_todo字段 | 操作后列表位置变化,数据持久化 | | P1-09 | 坐席端AI助手面板 | AI建议回复/快速回复模板/操作步骤/风险提示/用户信息 | 5个模块在右栏显示,功能可用 | | P1-10 | 用户端H5双栏 | 左侧对话区 + 右侧AI助手面板 | 企微应用内H5正确渲染双栏布局 | | P1-11 | 摇人按钮 | 输入框左侧,橙色渐变铃铛图标,点击触发转人工 | 视觉交互符合设计稿,功能正确触发 | | P1-12 | 趣味话术体系 | 存配置表,支持后台动态修改 | 6种场景话术正确触发,后台可修改 | | P1-13 | 用户端AI助手面板 | 相似问题/审批流程/软件下载/知识库搜索 | 4个模块在右栏显示,未实现功能显示"即将上线"占位 | | P1-20 | 邀请功能-历史消息共享 | 邀请时可选择共享历史消息模式(全部/最近10条/不共享) | 默认最近10条,被邀请人可查看共享的历史消息 | | P1-21 | 邀请功能-部门批量邀请 | 可按部门批量邀请,勾选部门=邀请全部门成员 | 部门节点勾选后自动展开子成员,支持取消个别成员 | | P1-22 | 邀请功能-系统消息广播 | 邀请成功/加入/退出时在会话中广播系统消息 | 所有参与者看到"XX邀请XX加入会话""XX已加入会话" | | P1-23 | 文件上传 | 坐席/员工可发送文件附件(PDF/Word/Excel/压缩包等) | 文件可上传、存储、下载,大小限制可配置(默认20MB) | ### P2 — Nice to Have(第二步及之后交付) | ID | 需求 | 说明 | 验收标准 | |----|------|------|---------| | P2-01 | AI前置筛选 | 新会话默认走AI,AI判断/用户触发转人工 | AI筛选率≥80% | | P2-02 | 转人工触发配置 | 关键词/连续追问轮次/AI超时阈值写配置文件 | 配置文件修改后即时生效 | | P2-03 | 排队系统 | 等待坐席接入的排队机制,含等待提示 | 排队人数/预计等待时间显示 | | P2-04 | 对话日志标注 | 坐席标注AI回复正确/错误,嵌入日常工作流 | 标注操作在对话区内完成,不跳转页面 | | P2-05 | AI知识库自动迭代 | 千问分析标注数据,判断缺文档/信息过时 | 自动生成FAQ推送RAGFlow,过时标记推送管理员 | | P2-06 | 情绪标记(模型版) | 第二阶段迭代接入轻量模型替代关键词规则 | 模型推理准确率≥85% | | P2-07 | 跨企业共享 | 通过企微"互联企业"应用共享 | 跨主体员工可使用同一服务 | | P2-08 | AI建议回复动态生成 | 千问基于对话上下文+RAGFlow知识生成建议回复 | 建议回复采纳率≥30% | | P2-09 | 操作步骤AI动态生成 | 替代静态配置,AI动态生成问题解决步骤 | 步骤可操作性强,坐席可直接转发 | | P2-10 | 风险提示AI动态判断 | 替代已知故障匹配,AI动态风险判断 | 关键风险不遗漏 | --- ## 7. 并行协作模式 ### 7.1 核心设计理念 传统"串行排队"改为"并行协作"——AI和人工并行,AI全程在场,人工随时介入。 ### 7.2 坐席看板分区 | 区域 | 说明 | 坐席是否主动看 | |------|------|---------------| | AI自主处理区 | AI处理简单问题 | 折叠,默认不展开 | | 举手等待区 | 员工明确要求人工或AI识别异常 | 核心关注区 | | 人工处理区 | 当前坐席正在处理 | 我的会话 | | 已结单区 | 会话已结束 | 灰色,折叠 | ### 7.3 会话标记系统详细设计 | 标记类型 | 图标颜色 | 触发条件 | 数据来源 | |---------|---------|---------|---------| | VIP标记 | 红色 | 企微通讯录API规则匹配(总监及以上或关键部门) | 企微通讯录 | | 举手标记 | 黄色 | 员工说"转人工"或关键词触发 | 消息内容匹配 | | 需介入标记 | 橙红色🔔 | 同一问题追问超过N轮(默认3轮)或AI判断需要人工 | 对话轮次计数 + AI判断 | | 情绪标记 | 红色 | 第一阶段:关键词规则("急/紧急/马上/崩溃"等);第二阶段:轻量模型 | 消息内容分析 | ### 7.4 紧急度评分公式 ``` 紧急度 = 基础分(关键词) + 情绪加成 + VIP加成 + 重复追问加成 ``` - 评分范围: 1-5分 - 映射: 1=低, 2=中, 3=高, 4=紧急, 5=最高 ### 7.5 会话列表排序规则 ``` 紧急 → 举手 → 需介入 → 活跃 → AI处理中 → 已结单 ``` --- ## 8. 界面设计 ### 8.1 用户信息去重规则 | 区域 | 显示内容 | 不显示 | |------|---------|--------| | 左栏(会话列表) | 姓名头像 + 标签 + 最后消息摘要 | 办公地点 | | 中栏(对话区) | 姓名 + 标签(VIP/举手/需介入) | 部门/岗位/等级 | | 右栏(AI助手面板) | 部门/岗位/等级/完整信息 | — | ### 8.2 用户端界面 **布局**: 企微H5双栏 - **左侧**: 对话区 - AI回复和人工回复在同一对话流 - AI回复后附带3张推荐卡片(相似问题、下载入口、审批流程) - 摇人按钮在输入框左侧 - 底部引导条:"点击 摇人 = 一键呼叫 IT 坐席" - **右侧**: AI助手面板 - 相似问题与做法(RAGFlow语义检索,异步加载) - 审批流程链接(静态映射表,存数据库/配置文件) - 软件下载快捷入口(分类到下载链接映射,显示版本号和平台) - 知识库搜索(用户主动触发,加防抖300ms) - **功能未实现前预留占位符+"即将上线"灰字提示** ### 8.3 坐席端界面 **布局**: 三栏 - **左栏**: 会话列表 - 排序 + 彩色标签 + 红点 + 未读消息数 - **中栏**: 对话区 - AI回复和坐席回复明确区分 - AI建议条 - 操作按钮 - **右栏**: AI助手面板(5个模块) - AI建议回复(采纳/编辑后采纳/忽略) - 快速回复模板(按问题分类,支持变量替换{员工姓名}等) - 问题解决操作步骤 - 风险提示 - 用户特点和其他注意事项(基本信息+VIP标记+历史咨询模式+坐席备注) --- ## 9. 摇人功能设计 ### 9.1 视觉设计 | 属性 | 值 | |------|------| | 位置 | 输入框左侧,和微信语音按钮同样的位置 | | 图标 | 铃铛图标 | | 颜色 | 橙色渐变(#FF6B35→#FF8F5E) | | 右上角 | 红点 | | 尺寸 | 44px圆形 | | Hover | 放大110%弹性回弹 | | 点击 | 0.6秒摇晃动画 | ### 9.2 趣味话术体系 | 触发场景 | 话术 | 语气 | 存储方式 | |---------|------|------|---------| | 点击摇人按钮 | 大哥,俺这就去摇人,稍等... | 亲切 | 配置表 | | 关键词触发转人工 | 收到!这就帮您摇位大神来 | 稍正式 | 配置表 | | 排队等待(30秒无人接单) | 人还在路上,别急别急~ | 安抚 | 配置表 | | 坐席接入 | 人摇来了!IT坐席为您服务 | 明确交接 | 配置表 | | 等待超时(2分钟) | 坐席都在忙,不过AI还在呢,要不先聊聊?我再继续摇 | 降级安抚 | 配置表 | | VIP员工(自动切换) | 这就帮您安排专家,请稍候 | 正式 | 配置表 | > **配置管理**: 话术存配置表,支持后台动态修改,无需发版。 --- ## 10. 技术约束 | 约束项 | 说明 | |--------|------| | 消息通道 | 企微自建应用消息API,禁止使用微信客服能力 | | 前端框架 | Vue3 + ElementPlus | | 后端框架 | FastAPI + Redis + PostgreSQL | | 部署方式 | Docker 容器化部署(Docker Compose 一键启停) | | 用户端渲染 | 企微H5(方式B:双栏布局,非对话卡片内方式A) | | 坐席端通信 | 第一步使用轮询(每3-5秒),不使用WebSocket | | AI接入 | 第一步不接入千问/Dify/RAGFlow | | 排队系统 | 放在第二步之后 | | 跨企业共享 | 放在第三步之后 | | 开发者 | 宋献,IT支持组组长,开发零基础,通过学习+AI辅助完成开发 | --- ## 11. 数据模型核心设计 ### 11.1 会话表 (conversations) | 字段 | 类型 | 说明 | |------|------|------| | id | UUID | 会话ID | | employee_id | String | 企微员工ID | | employee_name | String | 员工姓名 | | department | String | 部门 | | position | String | 岗位 | | level | String | 等级 | | status | Enum | 会话状态: ai_handling / queued / serving / resolved | | is_vip | Boolean | VIP标记 | | is_pinned | Boolean | 置顶标记 | | is_todo | Boolean | 代办标记 | | urgency_score | Integer | 紧急度评分(1-5) | | tags | JSON | 标签集合(举手/需介入/情绪等) | | assigned_agent_id | String | 分配的坐席ID | | created_at | DateTime | 创建时间 | | updated_at | DateTime | 更新时间 | ### 11.2 消息表 (messages) | 字段 | 类型 | 说明 | |------|------|------| | id | UUID | 消息ID | | conversation_id | UUID | 所属会话ID | | sender_type | Enum | 发送者: employee / agent / ai / system | | sender_id | String | 发送者ID | | content | Text | 消息内容 | | msg_type | Enum | 消息类型: text / image / file | | ai_suggestion | Boolean | 是否为AI建议(坐席端) | | is_read | Boolean | 是否已读 | | created_at | DateTime | 创建时间 | ### 11.3 坐席表 (agents) | 字段 | 类型 | 说明 | |------|------|------| | id | UUID | 坐席ID | | user_id | String | 企微用户ID | | name | String | 坐席姓名 | | status | Enum | 在线/离线/忙碌 | | current_load | Integer | 当前服务会话数 | | created_at | DateTime | 创建时间 | --- ## 12. 待确认问题 (Open Questions) | # | 问题 | 影响范围 | 建议 | |---|------|---------|------| | OQ-01 | 坐席数量上限:第一步测试环境计划支持几个坐席同时在线? | 服务器资源/轮询频率 | 建议3-5个坐席 | | OQ-02 | 消息存储策略:会话记录保留多久?是否需要归档机制? | 数据库容量/合规要求 | 建议6个月热数据+归档 | | OQ-03 | 多媒体消息:M1支持文件上传,图片共享留到M2 | 企微API对接范围 | M1支持文本+文件上传,图片共享M2再评估 | | OQ-04 | 坐席排班:是否需要坐席排班/轮班功能? | 坐席管理模块 | 建议第二步考虑 | | OQ-05 | 满意度评价:会话结束后是否需要员工评价? | 用户端界面/数据收集 | 建议第二步增加 | | OQ-06 | 企微应用命名:自建应用在企微中显示的名称? | 用户感知 | 建议命名"IT服务台" | | OQ-07 | 坐席端权限:是否区分坐席/组长/管理员角色? | 权限系统设计 | 建议第一步简单区分,第二步完善 | | OQ-08 | 企微互联企业应用共享范围:共享给哪些上下游企业? | 跨企业功能边界 | 第三步确认 | | OQ-09 | AI回复末尾提示语:"以上为AI自动回复,如需人工帮助请回复'转人工'"——是否需要可配置? | 第二步AI接入 | 建议存配置表 | | OQ-10 | 转人工阈值:AI调用超时3秒是否需要可配置? | 第二步AI接入 | 建议写配置文件 | --- ## 13. 里程碑与交付物 | 里程碑 | 预计周期 | 核心交付物 | 现有系统变化 | |--------|---------|-----------|------------| | 阶段一:转人工改H5+坐席工作台MVP | 6-8周 | H5登录+身份识别 + 转人工链接改H5 + 坐席工作台MVP(会话列表+聊天+快速回复+邀请功能,不含AI) | AI转人工链接从员工服务改为H5,坐席使用自研工作台 | | 阶段二:智能咨询集成 | 5周 | H5全流程 + 敲桌子 + 双通道推送 + AI建议面板 + 排队 + 评分 | 员工服务入口逐步迁移至H5,坐席工作台增强 | | 阶段三:坐席辅助回复/判断 | 4-6周 | AI Wingman(草稿+摘要+知识+排查步骤)+ 双区布局 | 坐席从员工服务后台切换至自研工作台 | | 阶段四:日志标准+知识库迭代 | 4-6周 | 标注系统 + AI知识库自动优化 + 数据看板 + 跨企业共享 | AI知识库从人工维护升级为自动迭代 | | 阶段五:自动/辅助审核开单结单 | 4-6周 | 待办面板 + AI填单/审核/结单 + 外部系统对接 | 替代多系统切换,统一工作台闭环 | --- ## 附录 A: 术语表 | 术语 | 说明 | |------|------| | 企微 | 企业微信 | | 员工服务 | 企微内置的客服模块,本方案将放弃使用 | | 自建应用 | 企微中由企业自行开发的应用 | | 互联企业 | 企微跨主体企业互联功能 | | RAGFlow | 检索增强生成引擎,用于知识库语义检索 | | Dify | AI应用开发平台 | | 千问 | 阿里云通义千问大模型 | | 摇人 | 一键呼叫IT坐席的趣味化交互设计 | | 并行协作 | AI和人工同时在线,人工可随时介入的创新服务模式 | ## 附录 B: 企微API关键接口 | 接口 | 用途 | 文档 | |------|------|------| | 接收消息 | 通过回调URL接收员工发送的消息 | 企微自建应用消息回调 | | 发送消息 | 主动向员工发送消息 | 企微应用消息发送API | | 通讯录读取 | 获取员工信息(VIP判断) | 企微通讯录API | | 互联企业应用共享 | 跨主体共享应用 | 企微互联企业API | | OAuth2静默授权 | H5页面身份认证 | 企微网页授权API | --- ## 14. AI Wingman — 坐席智能辅助设计 > **设计日期**: 2026-06-04 | **设计者**: 宋献 | **状态**: 方案已确认,待开发 ### 14.1 设计理念 传统IT服务台的设计重心偏向"员工端体验"——让员工更快获得答案。但**坐席人员的工作体验同样关键**。IT坐席每天面对大量重复性问题(密码重置、账号解锁、VPN连接),同时承受员工焦虑情绪传导带来的心理消耗。 **AI Wingman 的核心使命**:让AI不仅服务员工,更是坐席的"智能副驾驶"——消灭重复劳动、增强认知能力、守护情绪健康。 ``` ┌─────────────────────────────────────────────────────────────────────┐ │ AI Wingman 三层设计架构 │ │ │ │ ┌─────────────────────────────────────────────────────────────────┐│ │ │ 情感层 · 守护情绪健康 ││ │ │ 情绪识别预警 → 安抚话术推荐 → 语气润色 → 正向激励 → 疲劳检测 ││ │ │ 目标:减少坐席情绪耗竭 45%,降低职业倦怠风险 ││ │ └─────────────────────────────────────────────────────────────────┘│ │ ┌─────────────────────────────────────────────────────────────────┐│ │ │ 认知层 · 消除认知负荷 ││ │ │ 知识推荐 → SOP流程导航 → 相似工单推荐 → 下一步建议 → 客户画像 ││ │ │ 目标:降低坐席认知负荷 55%,新人上手周期缩短 50% ││ │ └─────────────────────────────────────────────────────────────────┘│ │ ┌─────────────────────────────────────────────────────────────────┐│ │ │ 效率层 · 消灭重复劳动 ││ │ │ AI草稿回复 → 会话自动摘要 → 智能填单 → 自动标签 → 快捷回复库 ││ │ │ 目标:坐席打字量减少 80%,单次会话处理时间缩短 60% ││ │ └─────────────────────────────────────────────────────────────────┘│ └─────────────────────────────────────────────────────────────────────┘ ``` ### 14.2 行业最佳实践验证 调研了 NiCE Copilot、Helpshift AI Copilot、Zendesk Agent Assist、天润融通、循环智能、合力亿捷等 7 家主流解决方案,提炼出关键数据: | 行业基准数据 | 数值 | 来源 | |-------------|------|------| | AI草稿回复可减少坐席打字量 | 70%-80% | 天润融通、合力亿捷实测 | | 自动填单节省时间 | 从1分钟降至10秒 | 天润融通实测 | | 知识推荐缩短新人上手 | 50% | 循环智能实测 | | 情绪识别预警准确率 | 85%+ | Helpshift 实测 | | 自动摘要节省文书记录时间 | 70% | 合力亿捷实测 | **5 大设计原则**(行业共识): 1. **非侵入式** — AI 辅助不干扰坐席原生工作流 2. **坐席始终主导** — AI 只建议,不自动发送,坐席始终有最终决定权 3. **反馈闭环** — 采纳/编辑/忽略行为持续优化 AI 推荐质量 4. **上下文继承** — AI → 人工切换时完整上下文(对话历史、客户画像、AI诊断)无缝跟随 5. **渐进式赋能** — 每阶段独立可用,不依赖后续阶段 ### 14.3 新增用户故事(坐席端) | # | 角色 | 故事 | 验收标准 | |---|------|------|---------| | US-8 | IT坐席 | 当我接到一个会话时,AI 已经帮我生成了草稿回复,我只需审核后点击发送,不用从头打字 | 每条新员工消息自动生成 1 个 AI 草稿,[采纳]/[编辑]/[忽略] 三选一 | | US-9 | IT坐席 | 当我完成一个会话时,系统自动生成结构化摘要(问题/原因/解决方案),我只需确认或微调 | 会话结单时自动弹出摘要确认框,坐席可编辑后确认,确认后存入 messages 表 | | US-10 | IT坐席 | 在处理复杂问题时,右侧自动显示知识库中的相关文档和操作步骤,不用切屏搜索 | 基于当前对话上下文,自动检索知识库并推送 Top 3 相关文档 | | US-11 | IT坐席 | 当员工情绪激动时,AI 提醒我注意语气,并推荐安抚话术,帮助我平和应对 | 情绪关键词触发预警图标,自动推荐 1-2 条安抚话术,支持一键发送 | | US-12 | IT坐席 | 我希望看到"历史上类似问题是怎么解决的",避免重复调查 | 基于当前问题自动搜索历史已结单会话,展示相似工单及解决方案 | | US-13 | IT主管 | 我希望了解坐席团队的工作效率和情绪健康状态,及时发现职业倦怠信号 | 仪表盘展示响应时效、会话时长、情绪事件统计、坐席疲劳指数 | ### 14.4 Phase 1 实施方案:效率层(已确认) **双区布局设计**: - **内嵌区(对话流中)**:针对当前员工消息的 AI 草稿回复,以特殊气泡样式显示在对话流中,[采纳]/[编辑]/[忽略] 按钮内嵌 - **侧栏区(右侧面板)**:会话自动摘要、自动标签、快捷回复库、相关知识推荐 **内嵌区 vs 侧栏区的设计逻辑**: | 功能 | 呈现位置 | 理由 | |------|---------|------| | AI草稿回复 | **内嵌**(对话流中) | 与当前对话上下文紧密相关,坐席需逐条审核 | | 会话自动摘要 | **侧栏** | 会话结束后查看,不干扰实时对话 | | 知识推荐 | **侧栏** | 参考性信息,按需查阅 | | 快捷回复模板 | **侧栏** | 已有功能,保持一致性 | | 自动标签 | **侧栏** | 批次操作,不打断对话流 | **底层实现**:扩展现有 Dify —— 新增一个 `assistant` 类型的 Dify Agent,与员工端 AI 共用知识库,但 system prompt 侧重"辅助坐席回复"而非"直接回复员工"。 | Agent | 用途 | system prompt 侧重 | |-------|------|-------------------| | Agent 1 — 员工端 AI(已有) | 回答员工问题 | 友好、准确、引导自助 | | Agent 2 — 坐席端 Wingman(新增) | 为坐席生成草稿/摘要/知识 | 专业、结构化、可操作 | ### 14.5 Phase 2+ 前置规划 | 阶段 | 功能 | 核心价值 | 预计周期 | |------|------|---------|---------| | Phase 1 效率层 | AI草稿 + 自动摘要 + 自动标签 | 消灭重复劳动 | 2-3 周 | | Phase 2 认知层 | 知识推荐 + SOP导航 + 相似工单 + 客户画像 | 降低认知负荷 | 3-4 周 | | Phase 3 情感层 | 情绪识别 + 安抚话术 + 语气润色 + 疲劳检测 | 减少情绪消耗 | 4-6 周 | ### 14.6 新增需求池 **P1 — Should Have(AI Wingman 效率层)** | ID | 需求 | 说明 | 验收标准 | |----|------|------|---------| | P1-14 | AI草稿回复 | 每条新员工消息自动生成AI建议回复,坐席可采纳/编辑/忽略 | 草稿生成 <3秒,内嵌在对应的员工消息下方 | | P1-15 | 会话自动摘要 | 会话结单时AI自动生成结构化摘要(问题/原因/解决方案) | 摘要包含 3 个结构化字段,坐席可编辑后确认 | | P1-16 | 自动标签 | AI基于对话内容自动建议会话标签(如:账号问题/网络故障) | 标签建议在结单时弹出,支持添加自定义标签 | | P1-17 | AI建议采纳追踪 | 记录坐席对AI建议的采纳/编辑/忽略行为 | 每个AI建议的操作记录到 messages 表 | **P2 — Nice to Have(认知层 + 情感层)** | ID | 需求 | 说明 | 验收标准 | |----|------|------|---------| | P2-11 | 知识推荐 | 基于对话自动检索知识库,推送 Top 3 相关文档 | 推荐刷新 <2秒,链接可点击跳转 | | P2-12 | SOP流程导航 | 高频问题预置SOP步骤,引导标准流程 | SOP步骤可勾选完成,支持动态调整 | | P2-13 | 相似工单推荐 | 搜索历史已结单会话,展示相似问题及解决方案 | 相似度排序,展示 Top 5 | | P2-14 | 客户画像 | 展示员工历史咨询模式、技术偏好等 | 画像自动提取,支持坐席补充 | | P2-15 | 情绪识别预警 | 检测员工消息情绪,坐席端预警图标 | 关键词+语气分析,准确率 ≥ 85% | | P2-16 | 安抚话术推荐 | 检测到情绪波动时自动推荐安抚话术 | 话术可一键发送,支持自定义 | | P2-17 | 语气润色 | 检查坐席即将发送的消息,提示语气问题 | 仅提示不拦截,坐席可选择忽略 | | P2-18 | 正向激励 | 会话满意结单时向坐席发送正向反馈 | 激励信息以系统消息方式推送 | | P2-19 | 坐席疲劳检测 | 统计连续工作时间、情绪事件次数,提醒休息 | 阈值可配置,温和提示 | --- ## 15. v5.3 坐席工作台增量需求 > 以下内容合并自 PRD-v53-incremental.md(2026-06-06),章节编号保持原样以便对照原文档。 --- ## 1. 项目信息 | 字段 | 值 | |------|-----| | **项目名称** | it_smart_desk_workspace_v53 | | **技术栈** | 前端: Vue3 + TypeScript + Element Plus + Pinia + Vite / 后端: FastAPI + SQLAlchemy | | **语言** | 中文 | | **原型文件** | `agent-workspace-v5_3.html` | | **项目根目录** | `C:\Users\simon\wecom_it_smart_desk\` | ### 原始需求复述 对企微 IT 智能服务台的坐席工作台进行 UI/UX 全面升级(v5.3 增量迭代)。现有系统已具备会话管理、消息收发、AI 助手(5 Tab 结构)、快速回复等基础功能,本次迭代需根据 v5.3 原型图实现:主题系统、左栏会话列表改造(三段折叠 + 优先级图标 + 待办面板)、中栏聊天区改造(用户信息栏 + AI 推荐内联 + 排查步骤栏 + 视图切换)、右栏 AI 助手面板重构(移除 Tab 改上下两区)、后端模型扩展等 7 大模块变更。 ### 现有系统基线 当前坐席工作台采用三栏布局: - **左栏(280px)**:`ConversationList.vue` — 6 区会话列表(待接单/我的/协作/其他/AI/已结单),基础搜索 - **中栏(flex-1)**:`ChatArea.vue` — 顶部标题栏 + 消息区 + 回复输入框 - **右栏(320px)**:`AiAssistantPanel.vue` — 5 Tab(AI 副驾驶/快速回复/操作步骤/风险提示/用户信息) 后端模型:`Conversation`(含 urgency_score/tags/assigned_agent_id 等)、`Employee`(基础字段)、`Agent`、`Message`、`QuickReplyTemplate` --- ## 2. 产品定义 ### 2.1 产品目标 1. **提升坐席效率**:通过 AI 推荐回复(Ctrl+1/2/3 快捷填入)、键盘驱动的快速回复(Alt+1~5 + ↑↓ + Enter)、排查步骤流程图,将坐席平均响应时间降低 30% 2. **增强信息感知**:通过优先级图标体系(⛔阻断性/👥影响范围/⭐角色等级/🔁重复问题)、用户情绪状态芯片、IT 等级徽标,让坐席在 3 秒内掌握会话全貌 3. **统一工作闭环**:通过待办事项面板 + 中间栏视图切换,将工单/审批/设备异常等任务类型整合到同一工作台,消除多系统切换成本 ### 2.2 用户故事 | # | 用户故事 | |---|---------| | US-1 | **As a** IT 坐席, **I want** 在会话列表每条会话上直接看到阻断性/影响范围/角色等级/重复问题等优先级图标, **so that** 我能快速判断哪些会话需要优先处理,不必逐一点开查看详情 | | US-2 | **As a** IT 坐席, **I want** 在聊天区顶部常驻显示用户情绪、等待时长、IT 等级等信息芯片,点击展开 6 卡片详情, **so that** 我在对话过程中始终掌握用户画像,及时调整沟通策略 | | US-3 | **As a** IT 坐席, **I want** 在聊天区内看到 1-3 条 AI 推荐回复并支持 Ctrl+1/2/3 快捷填入, **so that** 我能快速回复常见问题,减少手动输入时间 | | US-4 | **As a** IT 坐席, **I want** 点击左侧待办事项时中间栏切换为任务类型专属页面(工单/审批/设备异常), **so that** 我无需切换到其他系统即可一站式处理所有任务 | | US-5 | **As a** IT 坐席, **I want** 在右栏通过 Alt+1~5 切换快速回复分类、↑↓ 导航、Enter 确认填入, **so that** 我可以在不离开键盘的情况下高效完成回复 | --- ## 3. 需求池(P0/P1/P2) ### P0 — 必须完成(核心体验) --- #### FE-01 主题系统 | 项目 | 说明 | |------|------| | **需求** | 浅色/深色主题切换 | | **交互** | 顶部工具栏右侧添加 ☀️/🌙 切换开关(Track + Thumb 滑块样式),点击即切换 | | **实现** | `data-theme="light\|dark"` 属性切换;CSS 变量驱动两套配色(`:root` 浅色 / `[data-theme="dark"]` 深色) | | **持久化** | 切换后写入 `localStorage`,页面加载时读取恢复 | | **约束** | 切换即时生效,过渡时长 ≤ 300ms(`transition: background 0.3s, color 0.3s`);所有新增组件必须兼容双主题 | | **设计规格** | 深色主题:主背景 `#0f1923`,次背景 `#151f2b`,三级背景 `#1a2736`,悬停 `#1e3044`,激活 `#243b52`;主文字 `#e8edf2`,次文字 `#8ba1b7`;强调色 `#4da6ff` | | **变更范围** | `Workspace.vue` 顶部栏重构为独立 `TopBar.vue`;新增 `composables/useTheme.ts`;`global.css` 新增深色 CSS 变量 | --- #### FE-02 左栏会话列表 — 三段折叠 + 搜索增强 + 优先级图标 | 项目 | 说明 | |------|------| | **三段折叠** | 替代原 6 区结构,改为 3 段:📌 我的会话(默认展开)/ 👥 同事会话(默认折叠)/ 🕐 历史会话(默认折叠) | | **段头交互** | 段头背景 `var(--bg-tertiary)`,hover 变 `var(--bg-hover)`;显示条目数量(药丸徽标)+ 折叠箭头(▼ 旋转 -90° 收起);点击整行切换折叠 | | **搜索增强** | 搜索框 placeholder "搜索用户、关键词...";下方增加快捷筛选标签:全部/待处理/进行中/已完成(药丸样式,active 态 `var(--accent-soft)` + `var(--accent)` 色) | | **优先级图标** | 每条会话名称右侧显示:⛔ 阻断性(`is_blocking`,红底)、👥 影响范围(`impact_scope`,>5 人用高对比色)、⭐ 角色等级、🔁 重复问题。**不显示 IT 等级徽标** | | **优先级图标规格** | 16×16px 圆角方块,8px 字体;`pi-blocked` 红底、`pi-impact` 黄底(high 变红底)、`pi-role` 紫底、`pi-repeat` 橙底 | | **会话条目规格** | 条目间距 `margin: 1px 6px`,padding `8px 10px`;active 态 `var(--accent-soft)` + accent 边框;"待回复" 红色药丸标签 | | **变更范围** | `ConversationList.vue` 重构分区逻辑 + 搜索标签;`ConversationItem.vue` 新增优先级图标渲染 | --- #### FE-03 左栏底部 — 待办事项面板 | 项目 | 说明 | |------|------| | **位置** | 左栏底部,`border-top: 1px solid var(--border)`,`max-height: 220px`,内部滚动 | | **标题** | "待办事项" + 紧急数量红色标记(如 "5 紧急") | | **条目** | 每条显示:优先级圆点(urgent 红 / high 黄)+ 文本 + 类型标签(工单/审批/设备)+ 时间 | | **类型标签样式** | 工单:蓝底蓝字蓝边框;审批:紫底紫字紫边框;设备:橙底橙字橙边框(9px 字体) | | **点击交互** | 点击条目 → 中间栏切换为对应任务类型详情视图 | | **底部统计** | 在线/忙碌/离线坐席数(带状态圆点) | | **变更范围** | `ConversationList.vue` 底部新增 `TodoPanel.vue` | --- #### FE-04 中栏聊天区 — 用户信息栏 | 项目 | 说明 | |------|------| | **常驻区** | 替代原顶部标题栏,显示:头像(36px 圆形渐变)+ 姓名·部门岗位 + IT 等级徽标 + 信息 chips + 展开箭头 | | **信息 chips** | 😟 情绪(黄底黄边)、⏱ 等待时长、💬 对话轮次、🔁 重复标记(红底红边)、📝 备注标记(紫底紫边);默认态灰底 | | **展开详情** | 点击整行展开/收起 6 卡片详情面板(3 列 grid 布局):① 情绪状态 ② 会话详情 ③ 问题分析 ④ IT 技能等级 ⑤ 历史工单 ⑥ 其他备注 | | **IT 等级徽标** | 7 级段位(见 §4.2),显示在用户名行 + 详情卡片 ④ 中 | | **动画** | 展开箭头旋转 180°,详情面板 `max-height` 动画过渡 0.35s | | **变更范围** | 新增 `UserInfoBar.vue` + `ItLevelBadge.vue`;`ChatArea.vue` 替换顶部栏 | --- #### FE-05 中栏聊天区 — AI 推荐回复(内联) | 项目 | 说明 | |------|------| | **位置** | 聊天消息流中,用户消息之后、坐席回复之前 | | **触发条件** | 仅坐席未回复时显示;坐席发送回复后自动隐藏 | | **样式** | 虚线边框(`1px dashed var(--accent)`)+ 浅蓝背景,全宽 | | **内容** | "🤖 AI 推荐回复" 标签 + 1-3 个推荐选项卡片(横向排列,flex:1) | | **快捷键** | Ctrl+1 / Ctrl+2 / Ctrl+3 快捷填入回复框 | | **点击** | 点击卡片内容填入回复框并聚焦 | | **变更范围** | 新增 `AiRecommendInline.vue`;修改 `ChatArea.vue` 消息渲染逻辑 | --- #### FE-06 中栏聊天区 — 排查步骤栏 | 项目 | 说明 | |------|------| | **位置** | 聊天输入框下方,始终可见(不可整体收起) | | **栏头** | "🔧 排查步骤" + "▶ 展开全流程图" 按钮(accent 色边框药丸) | | **默认视图** | 最优路径横向方块:① 确认版本 → ② 清除缓存 → ③ 远程排查 → ...(可横向滚动) | | **路径方块规格** | padding `7px 14px`,圆角方块;done 态绿底、current 态蓝底、默认灰底;hover 变 accent 边框 | | **展开视图** | 点击 "展开全流程图" → 按钮文字变 "▼ 收起全流程图",下方展开完整决策树 | | **决策树规格** | 纵向步骤:圆点节点(22px)+ 连接线(2px);判断节点(❓ 判断)黄底方块;分支用虚线左侧缩进;当前步骤蓝色节点,已完成绿色节点 | | **动画** | 流程图区 `max-height` 过渡 0.35s;按钮箭头旋转 90° | | **数据源** | 静态模板库(`TroubleshootingTemplate` 模型),P0 坐席手动选择模板 | | **变更范围** | 新增 `TroubleshootBar.vue`;`ChatArea.vue` 底部挂载 | --- #### FE-07 中栏 — 任务详情视图切换 | 项目 | 说明 | |------|------| | **触发** | 点击左栏待办事项条目 → 中间栏从聊天视图切换为任务详情视图 | | **返回** | "← 返回会话" 按钮,切换回聊天视图 | | **运维工单页** | 📋 工单描述卡片(标题/类型/优先级/上报人/时间/描述)+ 📍 处理进度卡片(状态/接单人/SLA)+ 操作按钮:📥 接单 / 🔧 开始处理 / ✅ 结单 / 🔄 转派 | | **审批单页** | 📝 审批内容卡片 + ✏️ 审批意见输入区(textarea)+ 操作按钮:✅ 审批通过 / ❌ 拒绝审批 / 🔄 转交审批 | | **设备异常页** | 🖥 设备状态网格(2×3 grid:名称/型号/在线状态/最后在线/IP/告警次数)+ 🔧 处理记录卡片 + 操作按钮:📝 一键开单 / 🚚 派工 / ✅ 标记恢复 / 📅 加入巡检 | | **卡片规格** | 白底 + border + `radius-lg`(10px) + padding `14px 16px`;标签行 `tic-label`(70px) + `tic-value` | | **状态色值** | 正常=success绿、告警=warning黄、异常=danger红 | | **变更范围** | 新增 `TaskDetailView.vue`(含 3 种子视图);`ChatArea.vue` 同级添加视图切换逻辑 | --- #### FE-08 右栏 AI 助手面板重构 | 项目 | 说明 | |------|------| | **重构** | 移除现有 5 Tab 结构(`ElTabs`),改为上下两个区域 | | **上方 ~1/3** | 🤖 AI 智能推荐区(`flex-shrink:0`,border-bottom 分隔):标题栏(左侧蓝色竖线 3×12px + "🤖 AI 智能推荐")+ 1-3 张推荐卡片 | | **推荐卡片** | 灰底 + border,hover 变 accent 边框;卡片头:方案名称 + 置信度药丸(如 "92%");卡片文本:2 行截断;快捷键提示 `Ctrl+1/2/3` | | **下方 ~2/3** | 快速回复区(`flex:1`,内部列布局):搜索栏置顶 + 分类标签栏 + 回复条目列表 + 底部键盘指南 | | **分类标签** | 横向排列,每个标签带 `Alt+N` 提示;active 态 `var(--accent-soft)` + accent 边框;如 "VPN/网络 Alt+1"、"邮箱/办公 Alt+2" 等 | | **回复条目** | 左侧图标 + 文本 + 序号提示;selected 态蓝底蓝边框;hover 灰底 | | **键盘导航** | Alt+1~5 切换分类;↑↓ 选中条目;Enter 确认填入;/ 聚焦搜索框 | | **键盘指南** | 底部常驻:`Alt+1-5 切换` / `↑↓ 选择` / `Enter 填入` / `/ 搜索` | | **移除** | 风险提示 Tab(`RiskAlert.vue` 废弃)、用户信息 Tab(`UserInfoPanel.vue` 废弃,功能已并入聊天区) | | **变更范围** | `AiAssistantPanel.vue` 完全重写;`QuickReplyPanel.vue` 重写交互逻辑 | --- #### FE-09 系统名称 | 项目 | 说明 | |------|------| | **顶部栏** | 左侧:logo 方块 "IT"(渐变紫蓝 26×26px)+ "IT智能服务台"(渐变文字)+ "· 坐席工作台 — AI驱动 · 多系统对接 · 一站式处理"(10px 灰色副标题,max-width 280px 溢出省略) | | **变更范围** | `TopBar.vue`(从 `Workspace.vue` 顶部栏独立) | --- #### BE-01 Employee 模型扩展 | 项目 | 说明 | |------|------| | **新增字段** | `it_level`: IT 等级枚举(bronze/silver/gold/platinum/diamond/star/king),默认 silver;`it_level_source`: 等级来源(system/manual),默认 system;`notes`: 备注 JSON | | **API** | 新增 `PUT /api/employees/{id}/it-level` 坐席手动调整 IT 等级端点;修改 `GET /api/employees/{id}` 返回新字段 | | **变更范围** | `models/employee.py` 新增 3 字段;`schemas/` 新增/修改;`api/` 新增端点 | --- #### BE-02 Conversation 模型扩展 | 项目 | 说明 | |------|------| | **新增字段** | `impact_scope`: 影响范围(整数,受影响人数,默认 0);`is_blocking`: 阻断性标记(布尔,默认 False);`emotion_state`: 情绪状态(枚举 normal/anxious/angry/urgent,默认 normal) | | **API** | 修改 `GET /api/conversations` 和 `GET /api/conversations/{id}` 响应包含新字段 | | **变更范围** | `models/conversation.py` 新增 3 字段;`schemas/conversation.py` 修改;`api/conversations.py` 修改 | --- #### BE-03 TodoItem 模型 + CRUD API | 项目 | 说明 | |------|------| | **新增模型** | `TodoItem`:id(UUID), type(ticket/approval/device), title, priority(urgent/high/normal), description(JSON), status(pending/processing/resolved), assigned_agent_id(nullable), corp_id, created_at, updated_at | | **API** | `GET /api/todo-items`(列表)、`GET /api/todo-items/{id}`(详情)、`PUT /api/todo-items/{id}/status`(更新状态)| | **数据** | Mock 数据先行,预置 5-10 条示例待办 | | **变更范围** | 新增 `models/todo_item.py` + `schemas/todo_item.py` + `api/todo_items.py` | --- #### BE-04 TroubleshootingTemplate 模型 + CRUD API | 项目 | 说明 | |------|------| | **新增模型** | `TroubleshootingTemplate`:id(UUID), name, category(vpn/email/system/account), path_steps(JSON 最优路径), flowchart(JSON 完整决策树), is_active(布尔), created_at, updated_at | | **API** | `GET /api/troubleshooting-templates`(列表)、`GET /api/troubleshooting-templates/{id}`(详情)、`POST/PUT/DELETE`(管理员增删改) | | **数据** | 预置常见问题模板(VPN 连接失败、邮箱配置、系统登录、账号权限等 5-8 套) | | **变更范围** | 新增 `models/troubleshooting_template.py` + `schemas/troubleshooting_template.py` + `api/troubleshooting_templates.py` | --- ### P1 — 应该完成(体验增强) --- #### FE-10 快捷键系统完善 | 项目 | 说明 | |------|------| | **需求** | 全局快捷键注册与统一管理 | | **快捷键列表** | Ctrl+1/2/3(AI 推荐填入)、Alt+1~5(快速回复分类切换)、↑↓(快速回复条目导航)、Enter(确认填入)、/(聚焦快速回复搜索框) | | **约束** | 快捷键仅在未聚焦输入框时生效(避免与打字冲突);需提供快捷键提示 UI(右栏底部键盘指南) | | **变更范围** | 新增 `composables/useKeyboardShortcuts.ts` | --- #### FE-11 IT 等级手动调整交互 | 项目 | 说明 | |------|------| | **需求** | 坐席可在用户信息详情卡片中手动调整用户 IT 等级 | | **交互** | 在 IT 等级详情卡片旁提供「调整」按钮,弹出 7 级选择器(下拉/弹窗) | | **约束** | 调整后需记录 `it_level_source=manual`;前端立即更新显示,后端异步保存 | | **变更范围** | `UserInfoBar.vue` 详情面板中新增调整交互 | --- #### FE-12 主题切换过渡动画 | 项目 | 说明 | |------|------| | **需求** | 主题切换时的平滑过渡效果 | | **实现** | `body` 添加 `transition: background 0.3s, color 0.3s`;所有 CSS 变量驱动的属性自动跟随过渡 | | **约束** | 过渡时长 ≤ 300ms,不影响交互流畅度 | --- #### BE-05 IT 等级自动评分逻辑(框架) | 项目 | 说明 | |------|------| | **需求** | 为后续迭代搭建自动评分框架 | | **实现** | 定义评分维度和权重接口,当前仅返回默认值(silver)或手动值 | | **约束** | 不在 P0 实现完整评分,仅搭建扩展点 | --- ### P2 — 锦上添花(远期优化) --- #### FE-13 排查步骤进度同步 | 项目 | 说明 | |------|------| | **需求** | 排查步骤的当前步骤与对话内容自动同步 | | **实现** | 根据消息内容关键词自动推进步骤状态(如坐席说"清除缓存"→ 步骤 ② 标记 done) | #### FE-14 待办事项实时推送 | 项目 | 说明 | |------|------| | **需求** | 通过 WebSocket 实时推送新的待办事项 | | **实现** | 扩展 WS 消息类型,新增 `todo_item_created` 事件 | #### FE-15 IT 等级完整自动评分 | 项目 | 说明 | |------|------| | **需求** | 基于用户历史工单、自助解决率、操作复杂度等维度自动计算 IT 等级 | | **实现** | 后台定时任务 + 评分服务 | #### FE-16 排查步骤模板管理后台 | 项目 | 说明 | |------|------| | **需求** | 管理员可在后台增删改排查模板 | | **实现** | 独立管理页面或嵌入现有管理后台 | --- ## 4. UI 设计草案 ### 4.1 整体布局(三栏 + 顶栏) ``` ┌─────────────────────────────────────────────────────────────────────┐ │ [IT] IT智能服务台 · 坐席工作台 — AI驱动 · 多系统对接 · 一站式处理 │ ☀️/🌙 │ 坐席: 陈思远 │ ├──────────┬──────────────────────────────────┬───────────────────────┤ │ │ 👤 张伟 · 研发一部 🥇黄金 │ 🤖 AI 智能推荐 │ │ 🔍 搜索 │ 😟焦虑 ⏱8分32秒 💬6轮 🔁重复 │ ┌─────────────────┐ │ │ 全部|待处 │ ▼ [6卡片详情展开区] │ │ 92% 远程协助方案 │ │ │ |进行|已完│──────────────────────────────────│ │ 85% 备用方案 │ │ │ │ │ └─────────────────┘ │ │ 📌我的会话│ [用户消息气泡] │───────────────────────│ │ ⛔👥👑🔁 │ [坐席消息气泡] │ 🔍 搜索快速回复 / │ │ 张伟 │ 🤖 AI推荐回复 │ Alt+1│Alt+2│... │ │ 👥👑 │ ┌────────────────────────────┐ │ ┌─────────────────┐ │ │ 陈芳 │ │①确认版本 → ②清除缓存 → ...│ │ │ VPN连接失败... │ │ │ │ └────────────────────────────┘ │ │ VPN证书过期... │ │ │ 👥同事会话│ 💬 [回复输入框] [发送] │ └─────────────────┘ │ │ (折叠) │──────────────────────────────────│ Alt+1~5 ↑↓ Enter / │ │ │ 🔧 排查步骤 [▶展开全流程图] │ │ │ 🕐历史会话│ ①确认版本→②清除缓存→③远程排查→.. │ │ │ (折叠) │ │ │ │──────────│ │ │ │ 📋待办事项│ │ │ │ 🔴工单 │ │ │ │ 🟣审批 │ │ │ │ 🟠设备 │ │ │ ├──────────┤ │ │ │ 在线4 忙2│ │ │ └──────────┴──────────────────────────────────┴───────────────────────┘ ``` ### 4.2 IT 等级徽标设计 | 等级 | 标识 | 配色 | CSS 类名 | 说明 | |------|------|------|---------|------| | 青铜 | 🛡️ 青铜 Lv.1 | 棕色渐变 `#78350f→#92400e`,文字 `#fef3c7`,边框 `#b45309` | `.bronze` | 基础操作需指导 | | 白银 | 🛡️ 白银 Lv.2 | 灰色渐变 `#374151→#6b7280`,文字 `#f3f4f6`,边框 `#9ca3af` | `.silver` | 能完成常规操作 | | 黄金 | 🥇 黄金 Lv.3 | 金色渐变 `#92400e→#d97706`,文字 `#fffbeb`,边框 `#f59e0b` | `.gold` | 熟练使用,高级操作需指导 | | 铂金 | 💎 铂金 Lv.4 | 青蓝渐变 `#164e63→#0e7490`,文字 `#cffafe`,边框 `#22d3ee` | `.platinum` | 独立解决大部分问题 | | 钻石 | 💎 钻石 Lv.5 | 靛蓝渐变 `#312e81→#4338ca`,文字 `#e0e7ff`,边框 `#818cf8` | `.diamond` | 高级排障能力 | | 星耀 | ⭐ 星耀 Lv.6 | 粉紫渐变 `#831843→#be185d`,文字 `#fce7f3`,边框 `#ec4899` | `.star` | 技术专家级 | | 王者 | 👑 王者 Lv.7 | 橙红渐变 `#7c2d12→#c2410c`,文字 `#ffedd5`,边框 `#f97316` + **发光动画** | `.king` | IT 管理员级 | > 王者徽标特有动画:`king-glow`,`box-shadow` 在 `0 0 4px` 和 `0 0 10px` 之间交替,2s 循环 ### 4.3 待办事项 → 中间栏视图切换 ``` 点击左侧「工单」→ 中间栏切换为: ┌──────────────────────────────────────────────┐ │ ← 返回会话 工单 #20240606001 [运维工单] │ ├──────────────────────────────────────────────┤ │ 📋 工单描述 │ │ 标题: CEO办公室 - 投屏设备故障 │ │ 优先级: 🔴 紧急 SLA: ⏰ 剩余 12 分钟 │ │ ...描述详情... │ │ │ │ 📍 处理进度 │ │ 状态: ⏳ 待接单 接单人: 未分配 │ ├──────────────────────────────────────────────┤ │ [📥 接单] [🔧 开始处理] [✅ 结单] [🔄 转派] │ └──────────────────────────────────────────────┘ ``` --- ## 5. 数据模型变更 ### 5.1 Employee 模型新增字段 ```python # 新增字段(在 models/employee.py 中追加) it_level: Mapped[str] = mapped_column( String(20), nullable=False, default="silver", comment="IT技能等级: bronze/silver/gold/platinum/diamond/star/king" ) it_level_source: Mapped[str] = mapped_column( String(20), nullable=False, default="system", comment="等级来源: system(系统初评)/manual(坐席手动)" ) notes: Mapped[dict] = mapped_column( JSON, nullable=False, default=dict, comment="坐席备注(JSON): {pregnancy, preferred_time, special_needs, ...}" ) ``` ### 5.2 Conversation 模型新增字段 ```python # 新增字段(在 models/conversation.py 中追加) impact_scope: Mapped[int] = mapped_column( Integer, nullable=False, default=0, comment="影响范围(受影响人数)" ) is_blocking: Mapped[bool] = mapped_column( Boolean, nullable=False, default=False, comment="阻断性标记: 是否导致用户无法工作" ) emotion_state: Mapped[str] = mapped_column( String(20), nullable=False, default="normal", comment="情绪状态: normal/anxious/angry/urgent" ) ``` ### 5.3 新增 TodoItem 模型 ```python class TodoItem(Base): __tablename__ = "todo_items" id: Mapped[str] # UUID 主键 type: Mapped[str] # ticket/approval/device title: Mapped[str] # 标题 priority: Mapped[str] # urgent/high/normal description: Mapped[dict] # JSON,类型专属详情 status: Mapped[str] # pending/processing/resolved assigned_agent_id: Mapped[str | None] # 分配坐席 corp_id: Mapped[str] # 企业ID created_at: Mapped[datetime] updated_at: Mapped[datetime] ``` ### 5.4 新增 TroubleshootingTemplate 模型 ```python class TroubleshootingTemplate(Base): __tablename__ = "troubleshooting_templates" id: Mapped[str] # UUID 主键 name: Mapped[str] # 模板名称,如 "VPN连接失败" category: Mapped[str] # 分类:vpn/email/system/account path_steps: Mapped[list] # JSON,最优路径步骤 [{label, status}] flowchart: Mapped[dict] # JSON,完整决策树(含判断节点、分支) is_active: Mapped[bool] # 是否启用 created_at: Mapped[datetime] updated_at: Mapped[datetime] ``` --- ## 6. API 变更概要 ### 6.1 新增端点 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/todo-items` | 获取当前坐席待办列表 | | GET | `/api/todo-items/{id}` | 获取待办详情 | | PUT | `/api/todo-items/{id}/status` | 更新待办状态 | | GET | `/api/troubleshooting-templates` | 获取排查模板列表 | | GET | `/api/troubleshooting-templates/{id}` | 获取排查模板详情 | | POST | `/api/troubleshooting-templates` | 新增排查模板(管理员) | | PUT | `/api/troubleshooting-templates/{id}` | 修改排查模板(管理员) | | DELETE | `/api/troubleshooting-templates/{id}` | 删除排查模板(管理员) | | PUT | `/api/employees/{id}/it-level` | 坐席手动调整 IT 等级 | ### 6.2 修改端点 | 方法 | 路径 | 变更说明 | |------|------|---------| | GET | `/api/conversations` | 响应新增 `impact_scope`, `is_blocking`, `emotion_state` 字段 | | GET | `/api/conversations/{id}` | 同上 | | GET | `/api/employees/{id}` | 响应新增 `it_level`, `it_level_source`, `notes` 字段 | --- ## 7. 组件变更矩阵 | 组件 | 变更类型 | 说明 | |------|---------|------| | `Workspace.vue` | **重构** | 顶部栏独立为 `TopBar.vue`;移除应急模式横幅到 TopBar;三栏布局微调 | | `ConversationList.vue` | **重构** | 三段折叠替代原六段;搜索区增加筛选标签;底部新增待办事项面板 | | `ConversationItem.vue` | **修改** | 新增优先级图标渲染(⛔👥⭐🔁);移除 IT 等级徽标 | | `ChatArea.vue` | **重构** | 顶部栏替换为 `UserInfoBar.vue`;底部新增 `TroubleshootBar.vue`;新增视图切换逻辑(聊天/任务详情) | | `AiAssistantPanel.vue` | **完全重写** | 移除 5 Tab,改为上下两区(AI 推荐 ~1/3 + 快速回复 ~2/3) | | `QuickReplyPanel.vue` | **重写** | 搜索栏置顶 + Alt 分类切换 + ↑↓ 键盘导航 + Enter 确认填入 + 底部键盘指南 | | `RiskAlert.vue` | **废弃** | 功能移除 | | `UserInfoPanel.vue` | **废弃** | 功能并入 `UserInfoBar.vue` | | `AiSuggestReply.vue` | **修改** | 移至右栏上方 AI 推荐区;增加置信度显示 + Ctrl 快捷键 | | `TopBar.vue` | **新增** | 独立顶栏组件(系统名称 + 主题切换 + 坐席信息 + 应急模式) | | `UserInfoBar.vue` | **新增** | 聊天区顶部用户信息栏(chips + 展开详情 6 卡片) | | `AiRecommendInline.vue` | **新增** | 聊天区内 AI 推荐回复(Ctrl+1/2/3 快捷填入) | | `TroubleshootBar.vue` | **新增** | 排查步骤栏(路径视图 + 可展开流程图) | | `TodoPanel.vue` | **新增** | 左栏底部待办事项面板 | | `TaskDetailView.vue` | **新增** | 中间栏任务详情视图(工单/审批/设备三种子视图) | | `ItLevelBadge.vue` | **新增** | IT 等级徽标组件(7 级段位 + 渐变配色 + 王者发光动画) | | `useKeyboardShortcuts.ts` | **新增** | 全局快捷键管理 composable | | `useTheme.ts` | **新增** | 主题切换 composable(CSS 变量 + localStorage 持久化) | | `stores/todo.ts` | **新增** | 待办事项 Pinia Store | | `stores/theme.ts` | **新增** | 主题 Pinia Store | | `api/todo.ts` | **新增** | 待办事项 API | | `api/troubleshooting.ts` | **新增** | 排查模板 API | --- ## 8. 待确认问题 | # | 问题 | 影响范围 | 建议 | |---|------|---------|------| | 1 | **情绪状态识别方式**:由 AI 自动分析消息内容识别,还是由坐席手动标记? | BE-02, FE-04 | 建议先 AI 自动识别 + 坐席可手动修正 | | 2 | **影响范围数据来源**:是员工自行填写、系统自动判断(如根据部门人数),还是坐席标记? | BE-02 | 建议坐席手动标记为主,后续迭代增加 AI 辅助判断 | | 3 | **排查模板与问题分类的关联**:排查模板如何匹配到当前会话?是按标签自动匹配还是坐席手动选择? | BE-04, FE-06 | 建议 P0 坐席手动选择模板,P2 再做自动匹配 | | 4 | **待办事项与外部系统对接时机**:工单/审批/设备的真实系统 API 何时对接? | BE-03 | 已确认 Mock 先行,前端 UI 做完整交互 | | 5 | **IT 等级在用户端显示方式**:用户端看到的 IT 等级是完整徽标还是简化文本? | FE-04, BE-01 | 需与用户端(H5)产品确认 | | 6 | **同事会话区的数据筛选**:「同事会话」是显示所有其他坐席的进行中会话,还是仅显示同组/同部门坐席的? | FE-02 | 建议先显示同组坐席,后续可配置 | | 7 | **排查步骤栏的高度**:排查步骤栏始终可见会占用聊天区空间,是否需要设置最小/最大高度? | FE-06 | 参考原型:默认路径视图 ~44px,展开流程图最大 300px | | 8 | **AI 推荐回复的触发时机**:是每条用户消息后都触发,还是有条件触发? | FE-05 | 已确认仅坐席未回复时显示 | | 9 | **原 6 区到 3 段的数据映射**:原"待接单"区并入"我的会话"还是独立显示?原"协作会话"区并入哪个段? | FE-02 | 需确认分区数据映射规则 | --- ## 9. 关键决策记录 | # | 决策 | 依据 | |---|------|------| | 1 | 外部系统对接 Mock 先行,前端 UI 做完整交互 | 避免被外部系统 API 阻塞前端开发进度 | | 2 | IT 等级采用混合模式(系统初评 + 坐席手动调整) | 系统自动评分不够准确,需坐席校准 | | 3 | 排查步骤数据源为静态模板库 | 预置常见问题模板即可满足 MVP,后续可扩展为动态生成 | | 4 | 右栏移除 5 Tab 结构,改为上下两区 | 原型验证:坐席主要使用 AI 推荐和快速回复,其他功能使用频率低 | | 5 | 会话列表不显示 IT 等级徽标 | 避免信息过载,IT 等级在聊天区详情展示更合适 | | 6 | 排查步骤栏整体不可收起 | 确保坐席始终能看到排查进度,避免遗漏步骤 | | 7 | 原型样式已锁定(v5.3 版),调整样式前必须与用户确认 | 保证开发产出与设计稿一致 | --- ## 10. 里程碑建议 | 阶段 | 范围 | 预估周期 | |------|------|---------| | **Phase 1 — 基础框架** | FE-01 主题系统 + FE-09 系统名称 + BE-01/02 模型扩展 + 数据库迁移 | 2-3 天 | | **Phase 2 — 左栏改造** | FE-02 三段折叠 + 优先级图标 + FE-03 待办面板 + BE-03 TodoItem API | 2-3 天 | | **Phase 3 — 中栏改造** | FE-04 用户信息栏 + FE-05 AI 推荐内联 + FE-06 排查步骤栏 | 3-4 天 | | **Phase 4 — 右栏改造** | FE-08 AI 助手面板重构 + BE-04 排查模板 API | 2-3 天 | | **Phase 5 — 任务视图** | FE-07 视图切换 + 工单/审批/设备 3 种子页面 | 2-3 天 | | **Phase 6 — 增强打磨** | FE-10 快捷键 + FE-11 IT 等级调整 + FE-12 过渡动画 + 联调测试 | 2-3 天 | --- ## 18. 管理后台远景规划 > **决策状态**: 已确认(2026-06-08) > **决策依据**: 本平台未来产品、开发、维护人员并非专业岗位人员,所有模块功能需尽可能解耦,产品开发阶段和功能模块颗粒度需符合零基础岗位人员特点。 ### 18.1 产品定位 管理后台是 IT 智能服务台的**第三端产品**(与员工端 H5、坐席工作台并列),面向**坐席组长**,提供系统配置、人员管理、内容运营、数据监控等能力。 **核心原则**: - 运维人员能通过管理后台配置一切,代码修改仍需开发 - 代码修改由零开发基础员工逐步成长,但要合理控制代码开发变更颗粒度和影响范围 - 单功能单模块,每个菜单项可独立启用/禁用 - 配置优于代码,导入导出标准格式统一用 JSON/CSV - 变更可回滚,每次配置变更记录版本 ### 18.2 功能模块清单 | # | 模块 | 功能描述 | 优先级 | 上线阶段 | 备注 | |---|------|---------|--------|---------|------| | 1 | **功能开关/参数** | 按阶段控制功能开放,运行时切换无需改代码 | P0 | 阶段一 | 阶段一仅开核心功能,后续阶段解锁排队/评分等 | | 2 | **坐席人员管理** | 在线/离线状态、技能标签(参考快速回复7大类)、权限分级(角色→权限组) | P0 | 阶段一 | 技能标签与快速回复分类对齐:电脑/软件/外设/网络/安全/资产/其他 | | 3 | **消息分配模式** | 阶段一仅手动接单,后续按坐席规模扩展自动分配 | P1 | 阶段一(手动) → 阶段二+(自动) | 当前1人足够,手动接单完全满足;6种模式为远景规划,详见 §18.3 | | 4 | **快速回复管理** | 分类管理 + 版本历史 + 审核发布流程 | P1 | 阶段一 | 审核通过前不影响提交人自己使用(提交人可用待审核版本) | | 5 | **主题模板管理** | 三层管理(全局默认→坐席端→H5端),支持节日/活动主题 | P2 | 阶段二 | 三层统一一个主题体系,未来可加入节日和活动主题 | | 6 | **会话监控** | 实时查看坐席工作状态、会话队列、异常告警(超时未响应等) | P1 | 阶段二 | 先出 Demo | | 7 | **数据看板** | 坐席绩效(响应时间/结单率/AI采纳率)、满意度趋势、热点问题排行 | P1 | 阶段四 | 先出 Demo | | 8 | **排查流程图管理** | JSON 导入导出 + 预览 + 版本管理 | P1 | 阶段三 | 后续升级为可视化拖拽编辑 | | 9 | **知识库管理** | 标注→知识条目→迭代闭环 | P2 | 阶段四 | 与 RAGFlow 集成,详见 §19 | | 10 | **外部系统集成** | Dify/RAGFlow/数据平台连接管理 + 同步日志 | P0~P2 | 阶段二起 | 详见 §19 | ### 18.3 消息分配模式 > **现状校准(2026-06-08)**:当前人工咨询量和坐席人员数量 1 人足以承担,引入多坐席主要是 AB 角色设置和冗余考虑。因此阶段一只需手动接单,自动分配模式为远景规划,按坐席规模增长渐次启用。 | # | 模式 | 描述 | 适用场景 | 启用时机 | 优先级 | |---|------|------|---------|---------|--------| | 1 | **手动接单** | 坐席在待办列表中自行选择接单 | 当前唯一模式:1人足以承担,AB角冗余 | ✅ 阶段一 | P0 | | 2 | **轮询分配** | 按坐席列表顺序依次分配,循环往复 | 坐席≥3人且能力均匀 | 坐席≥3人时 | P2 | | 3 | **最少活跃优先** | 自动分配给当前活跃会话数最少的坐席 | 坐席处理速度有差异 | 坐席≥3人时 | P2 | | 4 | **加权比例分配** | 按坐席权重分配(如高级权重2、初级权重1) | 坐席能力分层明显 | 坐席≥5人时 | P3 | | 5 | **技能匹配分配** | 根据问题类别匹配坐席技能标签 | 专业化分工 | 坐席≥5人+技能标签体系成熟时 | P3 | | 6 | **优先队列** | 紧急/阻断性问题优先路由到高级坐席/组长 | 需要快速响应高优问题 | 坐席≥5人+紧急度评分上线时 | P3 | **设计原则**: - 阶段一管理后台分配模式设置页仅显示「手动接单」一项,界面简洁 - 后续模式按坐席规模自动解锁(如坐席<3人时自动分配选项灰显并提示"坐席人数不足3人,暂不需要") - 所有模式均支持热切换,不需重启服务 ### 18.4 快速回复管理 — 审核流程 ``` 坐席提交模板 → 状态: 待审核(仅提交人可用) ↓ 坐席组长审核 → 通过: 全员可见 / 驳回: 返回修改 ↓ 版本历史保留,支持回滚到任意版本 ``` ### 18.5 主题模板管理 — 三层架构 ``` 全局默认主题 ──→ 坐席端主题覆盖 ──→ H5端主题覆盖 │ │ │ └─ 基础色板 └─ 坐席工作台专属 └─ 员工端专属 └─ 字体/圆角 └─ 优先级高于全局 └─ 优先级高于全局 特殊主题:节日/活动主题 → 临时覆盖三层,到期自动恢复 ``` --- ## 19. 系统生态与集成规划 > **决策状态**: 已确认(2026-06-08) > **核心策略**: 管理后台先建 + 集成渐次接入 ### 19.1 五系统生态架构 | 系统 | 职责 | 部署位置 | 当前集成度 | |------|------|---------|-----------| | **IT智能服务台** | 员工端H5 + 坐席工作台 + 管理后台 | NAS Docker (Cloudflare Tunnel) | — | | **Dify** | AI对话引擎(Agent1 员工自助 + Agent2 坐席辅助) | 公司内网 | 100%(dify2openai 集成) | | **RAGFlow** | 知识库检索(Dify 通过 RAGFlow 获取知识) | 公司内网 | 0%(Dify 间接调用) | | **智能IT助手数据处理平台** | 会话数据分析、报表、运营指标 | 公司内网 | 0%(物理隔离) | | **企业微信** | 消息通道、身份认证、组织架构 | 企微云 | 100%(回调+API) | ### 19.2 Dify 管理边界 | 管理后台管的 | 仍在 Dify 网页管的 | |------------|-----------------| | Agent Key/URL 配置 | Workflow 逻辑设计 | | System Prompt 参数 | 知识库与 Agent 绑定 | | 转人工关键字列表 | 对话日志查看 | | AI 命中阈值参数 | dify2openai 桥接配置 | **设计原则**:管理后台管「配置和参数」,Dify 网页管「Workflow 逻辑」,两者边界明确。 ### 19.3 RAGFlow 集成 — 知识库迭代闭环 **同步触发方式**: 阈值触发自动推送,管理员仅审核 ``` 坐席标注 → 同类问题超过 N 次 → 管理后台自动推荐「加入知识库」 ↓ 管理员确认 → 管理后台生成 FAQ 条目 → RAGFlow API 推送 → 知识库更新 ↓ 下次同类问题 → L1 流程图命中(不走 AI)→ 成本下降 ``` **标注粒度**: 标注 + 坐席实际回复内容(不只是「有效/无效」,还记录坐席实际发了什么) ### 19.4 数据处理平台集成 **策略**: 短期 B+C,长期 A | 阶段 | 方式 | 描述 | |------|------|------| | **短期** | B. 数据库只读 | 数据平台直连新系统 PostgreSQL(只读视图),获取全量会话/消息/评分数据 | | **短期** | C. 看板嵌入 | 数据平台看板 URL 嵌入管理后台 iframe,体验统一 | | **长期** | A. API 推送 | 会话结单时管理后台推送标签/评分到数据平台 API | **数据同步内容**: | 数据 | 同步方向 | 时机 | |------|---------|------| | 会话标签 | 服务台 → 数据平台 | 会话结单时 | | 满意度评分 | 服务台 → 数据平台 | 员工评分后 | | 坐席绩效 | 服务台 → 数据平台 | 每日汇总 | | 运营报表 | 数据平台 → 管理后台 | iframe 嵌入实时查看 | ### 19.5 外部系统集成模块 | 子模块 | 功能 | 优先级 | |--------|------|--------| | Dify 连接管理 | API URL/Key 配置、连接测试、Agent 状态查看 | P0 | | RAGFlow 连接管理 | API URL/Key 配置、知识库列表查看、同步状态 | P1 | | 数据平台连接管理 | 数据库连接配置、看板 URL 嵌入、同步状态 | P1 | | 同步日志 | 所有外部系统的推送/拉取记录、成功/失败统计 | P1 | | 流程图→Dify 导出 | L1 流程图导出为 Dify 变量/知识条目 | P2 | ### 19.6 AI 混合策略 — 四层架构 > **决策状态**: 已确认(2026-06-08) > **核心原则**: 不过度依赖 AI 实时能力,采用「固定流程图 + AI 动态能力 + 标注 + 迭代」混合模式,在响应速度、算力成本、管理可控、迭代循环实现最佳实践。 | 层级 | 名称 | 机制 | 成本 | 响应速度 | 可控性 | |------|------|------|------|---------|--------| | **L1** | 固定流程图 | 确定性分支树,关键词/规则匹配 | 零 | 毫秒级 | 100% | | **L2** | AI 动态能力 | Dify Agent 调用(RAGFlow 检索增强) | 高 | 2-5秒 | 中 | | **L3** | 人工标注 | 坐席对 AI 建议标注「有效/无效/部分有效」+ 实际回复内容 | 低 | 即时 | 高 | | **L4** | 迭代闭环 | 高频问题→流程图补充,AI 命中率低→知识库补充 | 低 | 批量 | 高 | **迭代目标**: 不断将 L2 的问题「降级」到 L1,提升系统确定性和响应速度,降低 AI 算力成本。 **L1 流程图编辑方式**: - 阶段三: JSON 导入导出 + 预览(实现快、零基础人员可用) - 后续升级: 可视化拖拽编辑 **迭代触发机制**: 阈值自动推荐(超过 N 次同类问题 → 管理后台弹推荐),管理员确认后执行 **关键设计原则**: AI 的 system prompt 中应注入当前流程图的结构摘要,让 AI 在已有流程图覆盖的领域内回答时与流程图保持一致。 ### 19.7 排查流程图与 Dify 结合 — 实现路径 > **决策状态**: 已确认(2026-06-08),接收推荐的分阶段实现路径 #### 可行性矩阵 | 结合点 | 可行性 | 实现方式 | |--------|--------|---------| | 流程图→Dify System Prompt 注入 | ✅ 完全可行 | 导出为结构化文本→注入 Agent system prompt 变量 | | 流程图→Dify 知识条目 | ✅ 完全可行 | 每个分支导出为 FAQ 对→推送 RAGFlow→Dify 通过 RAGFlow 检索 | | 流程图→Dify Workflow 节点 | ⚠️ 有限可行 | Dify 不开放 Workflow 编辑 API,但可通过 HTTP 请求节点回调管理后台获取流程图分支 | | Dify 对话结果→流程图标注 | ✅ 完全可行 | AI 回复后自动记录命中/未命中流程图,统计覆盖率 | #### 分阶段实现路径 | 阶段 | 实现内容 | 对应子阶段 | 交付物 | |------|---------|-----------|--------| | **Step 1** | JSON 导入导出 + 预览 | 3B | 管理后台可管理流程图 JSON,坐席端展示流程图 | | **Step 2** | 流程图导出为 Dify 变量/知识条目 | 4A | 管理后台一键导出→Dify system prompt 注入/RAGFlow 推送 | | **Step 3** | Dify HTTP 请求节点回调流程图分支 | 4C | Dify Agent 可实时查询流程图分支,动态决策 | | **Step 4** | 可视化拖拽编辑 | 远景 | 管理后台可视化编辑流程图,替代 JSON 手写 | **Step 1→2 的关键价值**:流程图从「仅坐席可见的参考」升级为「AI 也遵循的规则」,实现 L1+L2 一致性。 --- ## 20. 阶段细化与并行推进策略 > **决策状态**: 已确认(2026-06-08) > **核心策略**: 资源审批期间并行推进不受阻断影响的需求,避免停工等待 ### 20.1 阶段细化(子阶段划分) 每个子阶段独立可交付,不受其他子阶段阻断: #### 阶段一:转人工改H5 + 坐席MVP + 管理后台骨架 | 子阶段 | 范围 | 独立可交付物 | 外部依赖 | |--------|------|-------------|---------| | **1A** | H5 Mock登录 + 坐席MVP + 邀请功能 | 员工手动登录→坐席可接单回复→坐席可邀请员工/部门加入会话 | 无 | | **1B** | 管理后台骨架 | 功能开关 + 坐席管理 + 快速回复管理 | 无 | | **1C** | 端到端验证 | 完整链路跑通 + 修复缺陷 | 需完整环境 | #### 阶段二:H5全流程 + 实时推送 + 排队 | 子阶段 | 范围 | 独立可交付物 | 外部依赖 | |--------|------|-------------|---------| | **2A** | WebSocket推送 | 员工端实时消息 | 无 | | **2B** | 排队分配 | 手动接单(已满足当前1人需求),自动分配按坐席规模渐次解锁 | 无 | | **2C** | 满意度评分 | H5评分 + 后端存储 | 无 | | **2D** | OAuth2切换 | 公司域名就绪后一键切回 | 公司备案域名 | #### 阶段三:AI Wingman + 排查流程图 | 子阶段 | 范围 | 独立可交付物 | 外部依赖 | |--------|------|-------------|---------| | **3A** | AI Wingman验证 | Agent2 Key填入 + 草稿/摘要验证 | Dify Agent2 创建 | | **3B** | 排查流程图+AI混合 | L1流程图管理(JSON) + L2 AI兜底 + 管理后台流程图模块 | 无 | | **3C** | 标注体系 | 坐席标注 + 数据沉淀 + 阈值推荐 | 无 | #### 阶段四:迭代闭环 + 数据看板 | 子阶段 | 范围 | 独立可交付物 | 外部依赖 | |--------|------|-------------|---------| | **4A** | 迭代闭环 | 高频问题→流程图补充 + RAGFlow 知识库推送 | RAGFlow API 联调 | | **4B** | 数据看板 | 绩效/满意度/热点 + 数据平台集成 | 数据平台联调 | | **4C** | 知识库管理 | 标注→知识条目→迭代闭环 | 无 | ### 20.2 并行推进策略 **核心原则**: P0 阻断项依赖外部资源审批,不等审批完成,并行推进不受阻断影响的需求。 | 外部依赖 | 阻断的子阶段 | 可并行推进的子阶段 | |---------|------------|-----------------| | 公司备案域名 | 2D(OAuth2切换) | 1A/1B/1C/2A/2B/2C/3A/3B/3C/4A/4B/4C | | Dify Agent2 创建 | 3A(Wingman验证) | 1A/1B/1C/2A/2B/2C/3B/3C/4A/4B/4C | | RAGFlow API 联调 | 4A(迭代闭环-知识推送) | 1A/1B/1C/2A/2B/2C/3A/3B/3C/4B/4C | | 数据平台联调 | 4B(数据看板-平台集成) | 1A/1B/1C/2A/2B/2C/3A/3B/3C/4A/4C | ### 20.3 资源审批期间推荐推进事项 在 OAuth2 公司域名审批期间,优先推进以下**零外部依赖**的工作: | 优先级 | 工作内容 | 所属子阶段 | |--------|---------|-----------| | 🔴 最高 | 管理后台骨架(功能开关+坐席管理+快速回复管理) | 1B | | 🔴 最高 | 端到端测试验证 | 1C | | 🟡 高 | H5 WebSocket 推送实现 | 2A | | 🟡 高 | 手动接单优化(当前1人足够,AB角冗余场景) | 2B | | 🟢 中 | 满意度评分组件 | 2C | | 🟢 中 | 排查流程图 JSON 导入导出 + 预览 | 3B | --- > **文档结束** — 本PRD涵盖企微IT智能服务台全部已确认设计决策和约束,作为后续架构设计和开发实施的基准文档。v1.0 新增管理后台远景规划、系统生态与集成规划、阶段细化与并行推进策略。 --- ## 21. 邀请功能设计 — 多人会话协作 > **设计日期**: 2026-06-10 | **设计者**: 宋献 | **状态**: 方案已确认,纳入M1 MVP > **原型文件**: `docs/prototypes/invite-flow-v1.html` > **技术方案**: `docs/邀请功能-技术方案.md` ### 21.1 背景与动机 **问题场景**:IT坐席在处理会话时,经常需要拉入其他同事协助(如网络问题需要网络组同事确认、软件授权需要资产管理同事查证)。当前只有1对1模式,坐席只能手动告知对方会话内容,效率极低。 **方案选型**(2026-06-10 确认): | 方案 | 核心思路 | 可行性 | 结论 | |------|---------|--------|------| | 方案一:一对一+邀请 | 在现有会话上扩展参与者,企微应用消息通知 | ✅ 完全可行 | 备选 | | 方案二:应用群聊 | 企微appchat创建群,群内沟通 | ❌ 应用无法接收群内消息回调 | 不可行 | | **方案三:WebSocket+应用消息双通道** | **在现有架构上扩展,后端维护参与者列表** | ✅ **完全可行,零新增基础设施** | **当前方案** | **方案二不可行的原因**:企微appchat是「应用推送消息群」,群成员在群内的发言**不会回调给应用**。应用只能单向推送消息到群,无法看到用户回复,坐席工作台无法获取群内对话。 ### 21.2 核心设计理念 **邀请 ≠ 群聊**。邀请是在现有1对1会话基础上,将新参与者加入同一会话的协作模式: ``` 原始:员工 ←→ 坐席(1对1) 邀请后:员工 ←→ 坐席 + 被邀请人A + 被邀请人B(多人同一会话) ``` - 所有参与者在同一会话中看到完整对话 - 坐席始终是会话的"主控者"(创建/结单/转接权限) - 被邀请人是"协作者"(可查看和回复,不可结单/邀请他人) ### 21.3 用户故事 | # | 角色 | 故事 | 验收标准 | |---|------|------|---------| | US-14 | IT坐席 | 处理网络问题时,我想邀请网络组的同事直接进入当前会话查看情况并回复,不用我手动转发聊天记录 | 坐席点击邀请→选择人员→对方收到通知→加入会话→可看到历史消息并发送回复 | | US-15 | IT坐席 | 邀请同事时,我想选择共享多少历史消息,避免对方被大量无关信息淹没 | 邀请时可选择共享模式(全部/最近10条/不共享),默认最近10条 | | US-16 | IT坐席 | 我需要邀请整个部门参与,比如让安全组的同学一起排查 | 可按部门批量邀请,勾选部门=邀请全部门成员 | | US-17 | 被邀请员工 | 收到邀请通知后,我希望一键加入会话,看到之前的问题上下文 | 点击企微通知→H5加载→看到共享历史→可发送消息 | | US-18 | 被邀请员工 | 我协助完成后,想退出这个会话,不再收到消息 | 被邀请人可主动退出,退出后会话列表中不再显示 | ### 21.4 功能规格 #### 21.4.1 邀请发起(坐席端) | 功能点 | 规格 | |--------|------| | 入口 | 会话详情头部工具栏「+ 邀请」按钮 | | 选人方式 | ①搜索姓名/工号 ②组织架构树浏览 ③按部门批量勾选 | | 组织架构数据 | 后端调用企微通讯录API,前端渲染部门树 | | 历史消息共享 | 三选一:全部 / **最近10条**(默认)/ 不共享 | | 邀请确认 | 显示已选人员列表 + 共享模式,确认后调用后端接口 | | 人数提醒 | >10人时弹窗提醒"建议优先邀请关键人员",不设硬上限 | #### 21.4.2 通知与加入(被邀请人端) | 功能点 | 规格 | |--------|------| | 通知方式 | 企微应用消息(template_card 卡片消息) | | 卡片内容 | 邀请人姓名 + 发起人姓名 + 问题摘要(最近1条消息截取50字) + 「加入会话」按钮 | | 加入方式 | 点击按钮→H5页面→自动加载会话(Mock登录或OAuth2) | | 历史消息 | 根据邀请时的共享模式,加载对应历史消息 | | 加入广播 | 加入后自动在会话中发送系统消息「XX已加入会话」 | #### 21.4.3 多人会话(所有参与者) | 角色 | 查看消息 | 发送消息 | 邀请他人 | 结单/转接 | 退出 | |------|---------|---------|---------|----------|------| | 原始员工 | ✅ | ✅ | ❌ | ❌ | 关闭页面即退出 | | 主责坐席 | ✅ | ✅ | ✅ | ✅ | ❌(主责不可退) | | 被邀请人 | ✅ | ✅ | ❌ | ❌ | ✅ | #### 21.4.4 参与者管理 | 功能点 | 规格 | |--------|------| | 参与者显示 | 会话详情头部显示参与者头像+姓名,hover显示角色标签 | | 系统消息 | 邀请/加入/退出均广播系统消息,所有参与者可见 | | 退出机制 | 被邀请人点击「退出会话」→ 确认 → 从participants移除 → 广播系统消息 | | 坐席视角 | 坐席工作台可查看参与者列表,可移除被邀请人 | ### 21.5 与「摇人」的关系 | 维度 | 摇人(§9) | 邀请功能(§21) | |------|-----------|---------------| | 邀请对象 | 坐席 → 坐席 | 坐席 → 任意员工/部门 | | 通信通道 | WebSocket(坐席内部) | WebSocket + 企微应用消息(跨端) | | 被邀请人入口 | 坐席工作台内弹窗通知 | 企微应用消息→H5页面 | | 典型场景 | 坐席A请坐席B协助同一问题 | 坐席请网络组同事确认现场情况 | | 数据字段 | `collaborating_agent_ids` | `participants` | | 权限 | 协作坐席可邀请其他坐席 | 只有主责坐席可邀请员工 | > **两套机制独立但互补**:摇人解决坐席间协作,邀请解决跨部门/跨角色协作。 ### 21.6 非目标(Non-goals) | 不做什么 | 原因 | |---------|------| | 不做企微群聊同步 | appchat API无法接收群内消息,技术上不可行 | | 不做被邀请人二次邀请 | 防止邀请链失控,只有主责坐席能发起邀请 | | 不做邀请审批流程 | 邀请是即时协作需求,加审批会破坏时效性 | | 不做音视频通话 | 当前只做文字协作,音视频是独立功能 | | 不做跨企业邀请 | 阶段一仅限内部员工,互联企业是阶段四的P2需求 | | 不做文件/图片共享 | 阶段一支持文本+文件上传,图片粘贴共享留到阶段二 | ### 21.7 交互原型 详见 `docs/prototypes/invite-flow-v1.html`,包含9步完整交互流程: 1. 架构概览(SVG流程图) 2. 一对一会话中 → 点击邀请 3. 选人弹窗(组织架构树+已选列表+历史共享设置) 4. 批量选部门 5. 历史消息共享模式选择 6. 确认邀请(后端6步时序) 7. 企微通知卡片样式 8. 加入会话流程 9. 多人会话双视角对照 ### 21.8 依赖与前提 | 依赖 | 状态 | 说明 | |------|------|------| | 企微通讯录API | ✅ 已有 | 读取部门/员工列表,OAuth2授权后可调用 | | 企微应用消息推送 | ✅ 已有 | `/message/send` 推送邀请通知 | | WebSocket通道 | ✅ 已有 | 坐席端和H5端均已实现 | | H5 Mock登录 | ✅ 已有 | 被邀请人通过H5加入,Mock模式下手动登录 | | template_card消息 | 🔧 需开发 | 邀请卡片消息类型,当前仅支持text消息 |