# 企微智能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<br>入口体验差 | 痛点2<br>能力不稳定 | 痛点3<br>知识不传承 | 痛点4<br>缺数据 | 推荐度 |
|------|:-:|:-:|:-:|:-:|--------|
| **现有：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消息 |
