- 将 A_Memorix 从旧 submodule / 插件形态迁入主线源码,主体落到 src/A_memorix - 调整主程序接入方式,使 A_Memorix 作为源码内长期记忆子系统运行 - 回收父项目插件体系中针对 A_Memorix 的特判,减少对 plugin 通用层的侵入 - 将长期记忆配置、运行时、自检、导入、调优等能力收口到 memory 路由与主线服务层 - 重做长期记忆控制台与图谱页面,按 MaiBot 现有 dashboard 风格接入 - 补充实体关系图与证据视图双视图能力,支持查看节点、关系、段落及其证据链路 - 新增长期记忆配置编辑器与 memory-api,支持主线内配置管理 - 补齐删除管理能力:删除预览、混合删除、来源批量删除、删除操作恢复 - 优化删除预览与删除操作详情的前端展示,支持分页、检索,并以实体名/关系内容/段落摘要替代单纯 hash 展示 - 修复图谱与控制台相关前端问题,包括证据视图切换、查询触发时机、删除弹层空值保护等 - 新增或更新 A_Memorix 相关测试、WebUI 路由测试、前端 vitest 测试与辅助验证脚本 - 移除旧 plugins/A_memorix、.gitmodules 及相关历史维护文档
3.0 KiB
3.0 KiB
Group Chat Stream Benchmark
这套基准数据专门用于 A_memorix 当前“群聊聊天流”设计的量化评估。
设计对齐点:
- 只把 Bot 参与过的话题段落纳入长期记忆总结。
- 群聊内容先按话题批次收束,再写入
chat_summary。 - 回复前通过
search_long_term_memory做长期记忆检索增强。 - 回复后只把“关于人物的稳定事实”写回
person_fact。 - 检索需要覆盖
search / time / episode / aggregate四种模式。 - 需要有明确的负样本,验证“无 Bot 参与”的纯群友闲聊不会被误写入。
- 当前 summarizer 的原生触发条件需要被显式覆盖:
80条消息直接触发,或8小时后累计至少20条消息触发。
数据文件:
group_chat_stream_memory_benchmark.jsongroup_chat_stream_memory_benchmark_hard.json第二套更长、更刁钻的压力数据,刻意加入跨话题重叠词、自然句 episode query、 以及更容易淹没人物事实的长聊天流,用于验证修复是否具有泛化效果。
推荐量化指标:
search.accuracy_at_1search.recall_at_5search.keyword_recall_at_5knowledge_fetcher.success_rateprofile.success_ratewriteback.success_rateepisode_generation.success_ratenegative_control.zero_hit_rate
当前 fixture 结构:
simulated_stream_batches用于模拟话题级聊天窗口,适合检索、episode、画像、写回等离线量化评估。runtime_trigger_streams用于模拟真正能触发当前 summarizer 阈值的原生聊天流。 这部分数据满足20 条 + 8 小时的时间触发条件,可直接用于验证 “是否进入话题检查”与“无 Bot 发言是否被丢弃”。chat_history_records用于模拟宿主将群聊话题总结后写入长期记忆的主路径。person_writebacks用于模拟发送回复后的稳定人物事实写回。search_cases / time_cases / episode_cases / knowledge_fetcher_cases / profile_cases用于直接驱动量化检索评估。negative_control_cases用于验证“无 Bot 发言的群聊片段应被忽略”。
覆盖主题:
- 值班柜第二层的备用物资与物资报备
- 停电夜投影仪抢救与应急灯 / 橙色延长线盘
- 风铃观测前的温湿度计校准与无糖姜茶
- 东侧窗边狸花猫、绿色硬壳笔记本与黄铜回形针
- 无 Bot 参与的零食闲聊负样本
使用建议:
- 如果要验证“当前 summarizer 是否真的会被触发”,优先喂
runtime_trigger_streams。 - 如果要验证“当前实现是否真正符合总结后写入和检索设计”,优先喂
simulated_stream_batches与chat_history_records。 - 如果要快速跑检索、画像、episode、写回指标,直接使用
chat_history_records + person_writebacks + cases。 - 如果要切换到第二套压力数据,可在运行 benchmark 前设置
A_MEMORIX_BENCHMARK_DATA_FILE=pytests/A_memorix_test/data/benchmarks/group_chat_stream_memory_benchmark_hard.json。