MM Daily Digest 数据分析流水线

从 Mattermost 聊天记录自动提取事件、聚合任务、匹配项目、生成洞察,最终推送到 Agent Portal 门户的完整数据分析 Pipeline。

概述

MM Daily Digest(mm-daily-digest)是 Rabbit 开发和维护的后端数据分析系统,负责将每天散落在各 Bot 频道的 Mattermost 对话记录,经过多层处理,转化为结构化的项目洞察和可操作的管理建议。

Pipeline 架构

L0 采集 (collector.py)
  ↓ Mattermost API 拉取消息,按 bot 分组,过滤噪声
L1 提取 (extractor.py)
  ↓ LLM 提取事件,40K chars/chunk,分块重试
L1.5 聚合 (aggregator.py)  ← 新增
  ↓ 碎片事件合并为 5-10 个"任务"
L2 日报 (per-bot summary)
  ↓ 每个 bot 生成精简日报
L3 全局洞察 (insights)
  ↓ things_done + needs_attention + NBA
项目匹配 (project_tracker.py)
  ↓ 事件→项目自动归类
推送 (pusher.py)
  → Supabase (AP_dashboard / AP_daily_activities / AP_daily_insights)

各层详情

L0 采集 — collector.py

  • 调用 Mattermost REST API
  • 按 bot 分组、过滤系统消息和噪声
  • 增量拉取,只获取新消息

L1 提取 — extractor.py

  • LLM 处理,每 40K 字符一个分块
  • 提取结构化事件(时间、类型、描述)
  • 带重试逻辑

L1.5 聚合 — aggregator.py(关键创新)

解决的核心问题:L1 产出的是消息级碎片事件(rabbit 83 条、webbot 120 条),直接展示就是流水账。

聚合效果对比:

Bot聚合前聚合后
webbot120 条流水账9 个任务
rabbit83 条流水账8 个任务
quokka28 条6 个任务

每个任务包含:标题、时间段、状态、产出(deliverables)

L2 日报

  • 每个 bot 精简日报,10 字 one-liner 摘要
  • 重点是产出和未完成事项,不复述对话

L3 全局洞察

维度旧版新版
做了几件事30 条碎片 timeline12 件事(按主题聚合)
需关注21 条红色告警5 条,每条有 NBA
焦点3 条(无描述)3 件事标 is_focus: true
bot 摘要长描述10 字 one-liner

项目追踪 — project_tracker.py

  • 自动从事件中发现和匹配项目
  • 支持增量匹配(run_incremental_matching
  • curated 保护机制:手动整理的项目标记 curated: true,pipeline 只追加里程碑,不改名称/描述/状态

NBA(Next Best Action)机制

每条 needs_attention 项附带:

{
  "nba": {
    "action": "建议操作描述",
    "target_bot": "portalbot",
    "message": "建议发送的消息内容"
  }
}

门户前端可一键点击 NBA 按钮,通过 Admin Token 模拟 dora 身份直接给对应 bot 发消息。

数据存储

Supabase 表

用途
AP_dashboard仪表盘汇总数据
AP_daily_activities每日活动详情(聚合后的任务)
AP_daily_insights按日期存储的洞察数据
AP_projects项目看板数据

按日期存储策略

  • 唯一键:date
  • 同一天多次分析 → update 覆盖
  • 不同天 → 各存一份
  • 支持门户上的时间切换功能

定时频率

任务频率
L0 采集 + L1 提取每 15 分钟
全量 digest(L1.5+L2+L3+项目匹配+推送)每 30 分钟

项目看板功能

对话模式

  • 门户上每个项目卡片只有一个按钮:💬 对话
  • 格式:[项目: 项目名] 你的指令
  • 示例:[项目: BNEF 活动管理平台] 合并到 PackHorizon
  • 所有操作通过自然语言,由 Rabbit 后端处理

项目合并

真正的合并流程:

  1. 数据合并 — 里程碑、bot 列表、事件全部合到一起
  2. LLM 重新分析 — 合并后全部数据重新生成描述、状态、下一步
  3. 写入更新 — 主项目更新,被合并项目 dismiss

项目审核

  • 项目看板支持删除、改名、合并、改状态、编辑描述
  • 22 个活跃项目(从 100 个自动发现中清理)

相关页面