跳到主要内容

聊天记录和统计 ​

看看 MaiBot 有多活跃,都聊了什么!首页看概览,详细统计页看数据,麦麦聊天页看真实聊天流与麦麦观察时间线,资源管理页看表情包、表达方式和黑话。

首页概览 ​

登录后进入的首页(/)用卡片展示运行概况:

WebUI 首页

  • 机器人状态 — 在线状态、运行时长
  • 统计总览 — 消息数、回复数、请求数、Token 用量
  • 资讯 — 来自 MaiBot 官方渠道的新闻与公告(1.3.0 起新增卡片)
  • 趋势图表 — 请求、Token、费用随时间的变化
  • 模型分布 — 各模型的使用占比与明细
  • Prompt 缓存 — 缓存命中率与节省的费用
  • 存储占用 — 本地数据目录占用情况

卡片可以拖拽排序、增删、调整宽度,右上角可切换 24 小时 / 7 天 / 30 天时间范围。界面风格选「千禧」时,趋势图表会换成示波屏样式:实线网格、加粗折线、不画坐标轴线、图例移到底部。

详细统计 ​

顶部工作区切换到「日志」,选择 详细统计 标签(/statistics),打开可交互的详细统计页:

详细统计

页面顶部可以切换时间范围:

  • 自部署以来 / 近 30 天 / 近 7 天 / 近 3 天
  • 近 1 天 / 近 3 小时 / 近 1 小时 / 近 15 分钟

核心指标 ​

  • 在线时长 — 机器人累计运行时长
  • 消息数 / 回复数 — 收到的消息与发出的回复数量
  • 请求数 / Token 用量 — 模型调用次数与输入、输出 Token 总量
  • 缓存命中 — 缓存命中与未命中 Token 数及命中率
  • 费用 — 总花费、每百条消息成本、每小时成本等

多维分析 ​

「分类统计」区块下用标签页切换分析维度,每个维度都是同一张明细表,列为名称、调用次数、输入 Token、输出 Token、Token 总量、缓存命中 / 未命中 Token、缓存命中率、累计花费和平均耗时:

  • 按模型 — 每个模型的请求数、Token、缓存命中率、费用和平均耗时
  • 按任务组(1.3.0 起)— 按 model_config.toml 里 model_task_config 配置的任务名汇总,如 planner、replyer、vlm、embedding
  • 按模块 — 按功能模块聚合的调用分布(请求类型第一个 . 之前的部分)
  • 按请求类型 — 不同请求类型的成本占比
  • 聊天消息 — 各聊天流的消息量与成本
  • 数据图表 / 指标趋势 — 按时间序列展示成本、消息量等指标的变化

按任务组和其他维度有什么区别?

  • 按模型回答「哪个模型在烧钱」,同一任务挂了多个模型时会拆成多行
  • 按任务组回答「哪个环节在烧钱」,同一任务下的所有模型合并成一行,看的是业务环节而不是具体型号
  • 按模块回答「哪个功能在烧钱」,归属于消息处理、记忆检索这类功能域

想知道「回复环节到底花了多少」就按任务组看;想知道「回复环节里哪个模型最贵」就再切到按模型看。

升级到 1.3.0 后,下一次统计刷新会把历史调用按任务名重新归类。历史记录里没有 task_name 的调用统一归入「未记录」,不会按请求前缀或当前配置反推。

聊天管理 ​

从 1.3.1 起,侧边栏「概览」分组里不再有「聊天管理」入口(原路由 /chat-management 只保留共享组管理)。要管理共享组,打开 麦麦设置(/config/bot),点右上角的省略号(更多设置)→ 共享组设置:

聊天管理

  • 在 表达 / 黑话 / 记忆 三个标签之间切换
  • 新建共享组、把聊天流加入共享组、从共享组里移除、删除整个共享组
  • 同一共享组内的聊天流共享同一套表达方式、黑话或长期记忆,分别写进 expression_groups、jargon_groups 和 a_memorix.shared_memory_groups
  • 打开 a_memorix.global_memory_sharing_enabled 全局共享记忆后,记忆共享组只读,暂不参与普通记忆检索范围控制
  • 「添加聊天」弹窗可按名称、平台、用户、群号或会话 ID 搜索,一次最多显示前 50 条匹配项

聊天流的消息记录浏览、按用户 / 时间 / 聊天流筛选、发言频率与学习配置管理,统一移到麦麦聊天页,见下一节。

麦麦聊天 ​

侧边栏「概览」分组下的 麦麦聊天(/chat)可以直接和 MaiBot 对话,无需外部平台;同时在同一页面浏览麦麦正在观察的真实聊天流:

本地聊天室

  • 输入消息按 Enter 发送,Shift + Enter 换行
  • 可添加图片、发送自己的表情包
  • 消息历史自动保存
  • 顶部搜索框可按名称过滤本地会话与观察聊天流
  • 左侧「与麦麦聊天」是本地会话(与麦麦对话、虚拟身份对话),「麦麦的聊天流」是真实群聊 / 私聊

在本地聊天室发消息

本地用户身份 ​

输入框右侧是本地用户身份框(1.3.1 起从侧边栏移到此处):

  • 点昵称旁的铅笔图标修改昵称,回车或点「保存」生效;留空保存时回退为默认昵称
  • 点头像右下角的相机图标上传新头像,支持 JPEG、PNG、WebP、GIF、BMP
  • 虚拟身份的头像在会话列表里单独管理

观察聊天流的设置 ​

「麦麦的聊天流」里每个会话右侧有齿轮图标,点开就是页内的聊天流设置弹窗(1.3.0 起不再跳转到聊天管理页),包含:

  • Session 基本信息 — Session ID、平台、类型、群号 / 用户 ID
  • 适配器规则 — 放行或拒绝该会话下的具体适配器
  • 发言频率规则 — 按时间段配置默认频率与动态频率
  • 额外聊天流 Prompt — 为这个会话追加专属 Prompt
  • 学习配置 — 表达、黑话、行为的启用状态与修正
  • 删除聊天流 — 需要手动输入完整 session_id 的严肃确认,清理消息、表达学习、黑话关联、工具调用与统计数据

麦麦观察 ​

在麦麦聊天页选中「麦麦的聊天流」里的任意会话,右侧就是该会话的麦麦观察时间线。麦麦观察已并入聊天工作区,不再有独立的侧边栏入口。

  • 阶段状态 — 顶部状态条显示当前阶段(Planner / 回复器等)、轮次、智能体状态
  • 实时推理 — Planner 一返回就立即显示思考内容与工具执行状态,工具执行完成后结果在同一张卡片内原位更新,不用等整轮结束;同一次轮次(cycle / run)重复推送时也只在原位置刷新
  • 稳定排序 — 事件按实际广播 / 写入顺序排列,修复了重启后新一轮次覆盖旧卡片的问题
  • 查找上条 — 点「上条」向上跳到视口上方最近一条麦麦发送的消息并高亮,上方没有更多时会给提示;旁边的「顶部」跳到时间线最早一条,「底部」回到最新
  • 当前上下文(1.3.2 新增)— 状态条上的「当前上下文」按钮展开浮层,看当前运行的聊天流这一轮实际用到的内容:回想记忆 / 表达方式 / 黑话 / 激活的工具四组的计数与条目,黑话条目悬停看释义;数据每 10 秒刷新一次,聊天流未运行或读取失败时会有明确提示
  • 连接状态 — 左侧「聊天流」标题旁的绿点现在实时反映底层连接,断开时消失;网络恢复或页面重新可见后会立即重连,时间线自动续上,不需要刷新页面

统计浮层 ​

点状态条上的「统计」展开当前会话的用量浮层:

  • 上下文容量 — 取最近一轮 Planner 请求的真实输入 Token,再按各分段字符占比拆分,用堆叠条加图例展示:消息、系统提示词、即时提示、系统工具、插件工具、MCP 工具、其他工具。还没有 Planner 请求时显示「暂无数据」
  • 平均缓存命中率 — 当前会话累计的缓存命中 / 未命中 Token 比例;没有缓存数据时显示 —
  • 累计输入 / 输出 — 当前会话累计的 prompt 与 completion Token
  • 消息 / 循环 / 工具调用 — 当前会话的事件计数

分段占比是按字符数换算的估值,用来快速定位「上下文被谁占满了」;精确 Token 数以「累计输入 / 输出」和推理过程页为准。

工具卡片 ​

  • 内置工具各有图标 — reply、wait、fetch_history、query_memory、query_image_memory、query_person_profile、send_emoji、send_image、switch_chat、tool_search、view_forward_message,其余工具统一用扳手
  • 标题直接列工具名(1.3.2 起)— 卡片标题就是这一轮实际用到的工具名,多个工具用「、」分隔(如 send_message、web_search);只有一个工具时,名称、耗时与推理入口合并进标题行,也不再重复显示数量
  • 状态徽标 — 执行中的工具显示「执行中」,排队中的显示「等待执行」,完成后是「执行成功」或「执行失败」
  • tool_search 单独展示(1.3.1 起)— 搜索词显示为「搜索工具:关键词」,执行成功后列出「激活工具」及每个工具是「本次新发现」还是「此前已发现」;没找到匹配工具时显示「未找到匹配工具」
  • wait 精简展示 — 只显示一句「等待 x 秒」,不再铺开参数、JSON 与执行结果
  • 来源合并 — 一次工具调用来源一致时,来源徽标只在卡片右上角出现一次;单个工具的名称、耗时与推理入口合并进卡片标题行
  • 推理入口 — 有对应推理记录时卡片上会出现「推理」按钮,点击跳到推理过程页

表情包 ​

表情包页(/resource/emoji)管理收集的表情包:

表情包

  • 使用频率统计、热门表情包
  • 可以上传新的、禁用不合适的

表情包在 WebUI 中统一显示为四种状态:

  • 认识:有描述,但未注册、未封禁
  • 不认识:还没有描述,且未注册、未封禁
  • 据为己用:已经注册,可被 MaiBot 使用
  • 丢弃:已经封禁,不再使用

从 WebUI 手动上传的表情会直接标记为「据为己用」。上传时填写的标签列表会合并为表情描述;如果图片已存在于数据库,会复用原记录、更新描述、解除封禁并标记为已注册。删除未注册表情时会同步删除数据库记录和本地文件;删除已注册表情时会先从可用表情库卸载,再删除数据库记录和文件。

表达方式 ​

表达方式页(/resource/expression)管理 MaiBot 学到的说话风格:

表达方式

  • 正式/随意、活泼/沉稳、幽默/严肃等风格
  • 可以手动确认或拒绝

黑话 ​

黑话页(/resource/jargon)管理机器人学到的网络用语:

黑话

  • 新词热词、梗和段子、小圈子术语
  • 可以手动确认或拒绝

回复效果评估 ​

回复效果评估用来衡量 MaiBot 的每一条回复「好不好」——是否回应了用户、回应得是否恰当。这是调优 Prompt 或对比不同模型表现的重要参考。

开启 ​

在 bot_config.toml 的 [debug] 段开启:

toml
[debug]
enable_reply_effect_tracking = true

开启后,WebUI 侧边栏「高级工具」分组下会出现 回复效果 页面(/reply-effects)。

回复效果

评分语义(当前 v6) ​

评估标准经历多轮升级,当前实现为 v6:

  • 回应度 — 衡量回复是否回应了用户,不再把「用户回应速度」作为证据,其余回应证据按原权重比例归一化
  • 总分 — 缺少明确语义的原始总分已移除,只看各维度的证据
  • 无关联信息 — 未发现与回复相关的信息时不再生成置信度,记录标记为「已完成 / 无信息」
  • 不完整记录 — 未走完观察窗口(还在观察后续反馈)的记录标记为「不完整」,不参与评分与聚合统计
  • 失败重试 — 评估过程中因 Prompt 截断等原因失败的记录,重启后会自动重试

查看与操作 ​

  • 评分分布 — 评分以逐条样本散点图展示,直观呈现零分堆积、离群值与模型组内波动
  • 删除 / 清空评分 — 可以删除单条评分记录,或清空整个聊天 / 全局的评分数据
  • 记录上限 — 每个聊天最多保留 maisaka_reply_effect_limit 条记录(默认 256),超出的旧记录自动清理

推理过程 Token 展示 ​

推理过程页面(/reasoning-process)的日志列表与详情中,每条 LLM 请求会展示:

推理过程

  • 输入 Token — 请求发送给模型的 Token 数
  • 输出 Token — 模型返回的 Token 数
  • 总 Token — 输入 + 输出的合计

方便直观评估一次回复的推理成本,尤其是高活跃群聊中的费用增长。

预览图片缓存与清理 ​

推理过程除了文字记录,还会把当时的提示词预览图存成图片,缓存在 data/prompt_imgs/。1.3.2 起这些图片改为登记制,并由后台线程巡检回收:

  • 启动时清一次,之后每小时清一次 — 重扫 logs/maisaka_prompt 下的全部记录建立引用索引,删掉 data/prompt_imgs/ 里没有任何记录引用的哈希图片;日志里会打印「Prompt 孤立图片清理完成: 删除 N 张,释放 X MiB」
  • 清空推理过程时一并释放 — 在 WebUI 里「清空推理过程」会同时释放不被其他记录引用的图片,实际回收的磁盘比 toast 里显示的「删除 N 个文件」更多
  • 只动自己的缓存 — 只删 data/prompt_imgs/ 下 64 位十六进制的哈希图片,符号链接跳过,不碰聊天图片和表情原件
  • 不随导出包走 — 用 WebUI 数据管理页导出业务数据时默认排除 data/prompt_imgs/,要备份得单独拷贝

日志查看器 ​

顶部工作区切换到「日志」的 终端 标签(/logs),实时查看 MaiBot 运行日志:

日志查看器

  • 按级别筛选(DEBUG / INFO / WARNING / ERROR / CRITICAL)
  • 关键词搜索、自动滚动、导出日志

使用建议 ​

日常查看 ​

  • 每天看看统计数据,了解活跃度
  • 关注费用变化,避免超支
  • 查看用户反馈,改进机器人

数据分析 ​

  • 分析高峰时段,合理安排维护
  • 观察用户偏好,调整机器人性格
  • 统计热门话题,增加相关内容

优化建议 ​

  • 响应太慢?检查配置
  • 费用太高?换便宜模型
  • 用户太少?增加推广

验证与排错 ​

验证:发一条消息后,首页统计总览的消息数会增加,详细统计页能看到对应记录。

统计数据是空的?

  • 新部署还没有消息时数据为空,属正常现象
  • 确认时间范围选对了(默认「自部署以来」)
  • 按任务组里出现大量「未记录」,说明是 1.3.0 之前的历史调用没有记录任务名,属正常现象

详细统计加载失败?

  • 稍后重试;统计由后台任务定期收集
  • 旧版静态报告仍可通过 maibot_statistics.html 查看

麦麦观察里看不到某个聊天流?

  • 左侧「麦麦的聊天流」来自数据库中的真实聊天流,机器人还没在这个会话里说过话时不会出现
  • 列表加载失败会显示红色提示,刷新页面重试

找不到「聊天管理」入口了?

  • 1.3.1 起侧边栏移除了该入口,共享组管理改从「麦麦设置 → 更多设置 → 共享组设置」进入
  • 聊天流浏览和设置统一在「麦麦聊天」页完成

如何降低使用费用?

  • 选择便宜模型,减少不必要的调用,优化提示词
  • 关注 Prompt 缓存命中率,命中率低说明上下文变化频繁
  • 先用按任务组定位最烧钱的环节,再切到按模型看该环节里哪个模型最贵