# 通千算智AI教案 · 教师活跃度衰减预警模型设计

> 版本：v1.0 ｜ 日期：2026-11-12  
> 调研依据：`调研-海外产品管理端视角-2026-10-27.md` §12.1（SchoolAI 首月后仅约 50% 教师持续活跃；美国公立校教师年流失率约 16%，个人工具类 edtech 高 churn）  
> 定位：**给管理者的「提醒跟进名单」，不是教师考核工具**。目标是让"建而不用"在发生早期被发现，而不是事后统计。

---

## 一、问题定义

学校采购后最大的弃用风险是"建而不用"（国内调研 §5）。校长驾驶舱此前只展示**汇总活跃数**，看不到"哪些老师正在悄悄流失"。但海外标杆（MagicSchool / Brisk / SchoolAI）的机构层看板都把**采用率与持续活跃**作为第一卖点，因为它直接决定续费。

因此补一层轻量的活跃度衰减预警：**只基于最后一次 AI 使用时间**，不采任何行为内容数据。

---

## 二、数据源与隐私边界

| 项 | 说明 |
|----|------|
| 唯一数据源 | `db.usageAgg[uid].lastAt`（最后一次 AI 生成时间），由 `logAiUsage` 在计费入账时写入 |
| 不采集 | 课件内容、教案正文、学生数据、登录 IP、页面停留、操作路径 |
| 不存储 | 预警结果是**每次请求实时计算**的派生值，不落库、不产生新台账 |
| 可见范围 | 仅 `owner` / `admin`（复用 `/api/org/dashboard` 权限口径），教师本人不可见他人名单 |
| 内部调用排除 | `quality_check` 等系统自动触发的 kind 不计入活跃（见 `节省时间量化体系口径说明.md`） |

> 纪律：预警名单**不用于教师评价、不与绩效挂钩**。所有 UI 文案与月报措辞统一写「建议跟进」「活跃度提醒，非考核」。

---

## 三、分级规则

以请求时刻 `nowMs` 与 `lastAt` 的差值计算沉默天数 `silentDays`：

| 档位 | level | 判定条件 | 文案 | 建议动作 |
|------|-------|----------|------|----------|
| 🟢 正常 | `ok` | `silentDays < 14` | 活跃 | 不展示 |
| 🟡 近期沉默 | `mid` | `14 ≤ silentDays < 30` | 近期沉默 | 教务了解是否遇到操作障碍或培训需求 |
| 🔴 长期未使用 | `high` | `silentDays ≥ 30` | 长期未使用 | 安排结对帮扶或入校引导 |
| ⚪ 从未使用 | `never` | 无 `lastAt` 记录 | 从未使用 | 安排一次入校引导 / 种子教师带教 |

### 设计取舍

- **14 天阈值**：对应"连续两周没用"。K12 教师以周为备课节奏，2 周零使用是可靠的早期流失信号，又不会因寒暑假/公差误报太多（假期误报见下方局限）。
- **30 天阈值**：跨月未使用，基本可判定已脱离工作流，需人工介入。
- **从未使用单列**：席位开通了但一次没用过，是采购后最该先解决的一类（往往是账号没拿到或没人教），与"用过又停下"的干预方式不同。
- **名单上限 20 条**：大校避免刷屏；汇总数字（`atRiskCount`）仍给全量分档计数。
- **排序**：按沉默天数降序，`never` 置顶，方便管理者从最需要跟进的人开始。

---

## 四、产品呈现

### 4.1 校长驾驶舱
- 区块标题「⚠️ 建议跟进的教师」，副标题明示「活跃度提醒，非考核 · 数据仅来自最后一次 AI 使用时间」
- 三色汇总：`🟡 近期沉默 N 人 / 🔴 长期未使用 N 人 / ⚪ 从未使用 N 人`
- 名单卡片：姓名 + 档位 + 沉默天数；`mid` 黄框、`high` 红框、`never` 灰框
- 底部「建议动作」提示条：2 周→了解障碍、1 月→结对帮扶、学期节点主动推送

### 4.2 月报文本（`buildDashReport`）
新增「五、建议跟进的教师（活跃度提醒，非考核）」段，只在有预警时出现，采用汇总口径（不逐一点名）：

```
- 连续 14 天以上未使用的教师 N 人，建议教务了解是否遇到操作障碍或培训需求
- 开通后从未使用的教师 N 人，建议安排一次入校引导或结对帮扶
```

> 月报会被复制进微信/汇报材料，因此**故意不在月报里写具体姓名**，避免把可转发的文本变成点名清单；明细只在需登录的看板内可见。

---

## 五、运营 SOP（把预警变成动作）

| 触发 | 责任人 | 动作 | 时限 |
|------|--------|------|------|
| `mid` 出现 | 教研组长 / 种子教师 | 一对一问一句"是不是哪里卡住了"，发图文操作卡 | 3 个工作日内 |
| `high` 出现 | 教务主任 | 安排结对帮扶；中老年教师优先安排 1 对 1 | 1 周内 |
| `never` 出现 | 信息化负责人 | 核对账号是否送达、是否需要统一登录引导 | 开学首周内 |
| 全校 `high` 占比 > 30% | 校长 + 我方 CSM | 触发专项复盘：是否培训断档 / 需求不匹配 / 订阅即将到期 | 立即 |

### 学期节点主动触达
调研显示依赖单一 champion（信息化主任）推动、人事变动后易弃用，因此建议绑定节点主动推送：
- **开学前**：全员"新学期上手"提醒 + 新教师入校引导
- **期中**：结合错题/复习场景推送一次功能提醒
- **期末**：用「我的 AI 教学报告」做个人沉淀，同时给校长看本学期驾驶舱

---

## 六、已知局限（不掩盖）

| 局限 | 说明 | 后续演进 |
|------|------|----------|
| 假期误报 | 寒暑假天然无使用，会整片标红 | 后续接入校历，假期区间暂停预警或单独标注"假期中" |
| 只用 AI 次数衡量活跃 | 老师可能只浏览课件/看资源而没生成，被误判沉默 | 需要更全的活跃信号（登录/资源访问）时再加，但须重新评估隐私边界 |
| 无自动触达 | 当前只在看板展示，不发通知 | 待站内消息/邮件通道成熟后接 SOP 自动提醒 |
| 不预测、只描述 | 这是规则分档而非 ML 预测模型 | 数据积累后再评估是否需要真正的 churn 预测；当前规则更透明、可解释、无黑箱 |

> 命名为「模型设计」是沿用调研任务名，实现上是**可解释的规则分档**。对校长场景，透明规则比黑箱预测更可信、也更容易在采购答辩中说明。

---

## 七、代码索引

| 内容 | 位置 |
|------|------|
| 预警计算 + `atRisk` / `atRiskCount` 下发 | `server/server.js` `/api/org/dashboard` |
| 类型 `DashAtRisk` | `src/utils/schoolDash.ts` |
| 月报「建议跟进」段 | `src/utils/schoolDash.ts` `buildDashReport` |
| 看板预警区块 + 样式 | `src/views/Editor/SchoolDashPanel.vue` |

---

*本设计随真实试点反馈迭代。任何阈值调整须同步更新本文件与服务端常量。*
