refactor: 将 A_Memorix 重构为主线长期记忆子系统并重建管理界面

- 将 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 及相关历史维护文档
This commit is contained in:
A-Dawn
2026-04-03 08:08:24 +08:00
parent bf5eb45709
commit 15d436b3a1
136 changed files with 52533 additions and 629 deletions

View File

@@ -0,0 +1,65 @@
# 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.json`
- `group_chat_stream_memory_benchmark_hard.json`
第二套更长、更刁钻的压力数据,刻意加入跨话题重叠词、自然句 episode query、
以及更容易淹没人物事实的长聊天流,用于验证修复是否具有泛化效果。
推荐量化指标:
- `search.accuracy_at_1`
- `search.recall_at_5`
- `search.keyword_recall_at_5`
- `knowledge_fetcher.success_rate`
- `profile.success_rate`
- `writeback.success_rate`
- `episode_generation.success_rate`
- `negative_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`