主题上报与归并系统
Agent Portal 的对话主题分析系统,通过 Bot 主动上报和 LLM 智能归并,将碎片化的 Bot 活动聚合为可理解的高层主题。
概述
主题上报与归并系统(Topic Report System)是 Agent Portal 的核心功能模块,解决”有十几个机器人,每一个跟它聊了什么我都不记得了”的管理痛点。系统包含数据采集(Bot 主动上报)、数据存储(Supabase AP_topics 表)、LLM 智能归并(254 → 108 条)、以及多种前端可视化(树状图 → 两列流程图 → 横向流程图)。
系统架构
数据流
Bot 活动 → topic-report Skill 上报 → AP_topics 表
↓
AP_daily_digest (306 条历史活动) → rebuild-topics.cjs → AP_topics
↓
merge-topics.cjs (LLM 归并) → 108 个高层主题
↓
Portal 前端(工作台视图)
数据库表结构
迁移后精简为 10 张核心表 + 6 张 backup(从 19 张表清理):
AP_topics— 主题存储,含 bot_id、name、project_id、status、category、summary、events (JSONB)AP_daily_digest— 每日活动摘要,306 条历史记录AP_tasks_backup— 旧版任务表备份
topic-report Skill
安装在 Bot 工作区的 OpenClaw 技能,用于主动上报对话主题:
# 列出已有主题
node report.js --list --bot <bot_id>
# 创建新主题
node report.js --create --bot <bot_id> --name "主题名" [--project "项目名"] [--summary "摘要"]
# 更新主题
node report.js --update <topic_id> --bot <bot_id> [--status active|completed|blocked]上报规则:有目的的讨论、功能开发节点、部署完成时上报;闲聊、单条问答、自动化流程不上报。
LLM 主题归并
归并流程
- 按 bot 分组所有 topics
- 对每组使用 Azure OpenAI (GPT-4o) 分析相关性
- 相关事件合并为高层主题
- 自动推断 category(health/education/ops/development 等)
归并效果
| 阶段 | 数量 | 说明 |
|---|---|---|
| 原始 | 301 | 从历史数据重建 |
| 去噪 | 254 | 删掉 ping/闲聊/日常提醒 |
| 归并后 | 108 | LLM 智能归并相关事件 |
典型归并示例:
- 传送门: 40 → 8(Pipeline 优化、前端 V2 改造、日报系统 → 各自一个主题)
- Cloud Ops: 38 → 19(门户优化与全链路测试、Mattermost 数据管理等)
- 小蛛: 30 → 13(聊天体验升级、OpenClaw 插件迁移等)
噪音过滤策略
删除的噪音类型:
- 18 条 healthbot 日常提醒(“吃药时间到了”等)
- 29 条运维/闲聊空洞对话(ping 回复、状态查询等)
- 24 条 ping/pong 指令
前端可视化演进
迭代历程
- 平铺卡片(初始)→ 300+ 条堆在一起,看不清
- 树状展示(Bot → Category → Topic)→ 改善但手机体验差
- 两列布局(Master-Detail)→ 左列项目、右列主题
- 合并 Tab(项目看板 + 主题 → 工作台)→ 4 个 Tab 精简为 3 个
- 横向流程图(Category → Topic → 详情)→ 节点 + 连接线,可折叠
最终设计
┌──────────────┬───────────────────────────────────┐
│ 📋 项目列表 │ 📂 Category → 🟢 Topic 节点 │
│ │ │
│ Agent Portal │ [📂 开发] ──→ [🟢 Pipeline 优化] │
│ (7活跃) │ [🟢 GrowLog 拆分] │
│ │ │
│ 🔧 通用运维 │ [📂 运维] ──→ [⚪ 代码仓库管理] │
│ (2活跃) │ │
│ Clawline │ [📂 健康] ──→ [⚪ 健康监控面板] │
│ (0活跃) │ │
└──────────────┴───────────────────────────────────┘
特性:
- 进行中的项目/主题用 spinner 🔄 转圈动画
- Category 节点可折叠/展开
- 节点间有连接线
- 项目卡片含 Bot badge
数据整合
108 个主题全部关联到 12 个活跃项目 + 1 个”通用运维”分组:
- Agent Portal 最大(46 主题)
- Clawline 14 主题
- 视频剪辑 8 主题
- Miss E 4 主题