跳到主要内容

Mandol

面向智能体检索系统的
进程内语义记忆运行时

当前 Mandol 从 src/mandol 暴露 MemoryUnit、SemanticMap、SemanticGraph、MultiRetriever 与三塔检索组件。

快速开始GitHub 仓库
3.12Python 运行时
MapSemanticMap
GraphSemanticGraph
MultiMultiRetriever

什么是 Mandol

Mandol 是一个面向智能体检索实验的进程内语义记忆包。索引与图拓扑保持常驻,冷 MemoryUnit payload 可选择通过 RocksDB-backed 换页管理。

检索由 MultiRetriever 负责,覆盖 BM25、SPLADE、余弦搜索、图扩展、分数融合和 reranker 编排。当前开发位于 main;精确复现已发表实验时应使用冻结的 paper-repro 分支。

Mandol System Architecture Overview

核心创新

维护中的运行时由明确、可检查的记忆原语组成

API

核心记忆对象

Theoretical

MemoryUnit 存储载荷,MemorySpace 存储逻辑归属,MemorySpaceRegistry 定义三塔检索使用的规范空间。

  • 字符串 UID 与字典 raw_data 载荷
  • 基于 UID 引用的树形空间
  • 分层、实体关系、情景三类规范空间名
MAP

SemanticMap + SemanticGraph

Architecture

SemanticMap 管理 embedding、FAISS、稀疏向量和空间过滤搜索;SemanticGraph 增加 rustworkx 关系图和图级持久化。

  • 全局 FAISS 索引与 MemorySpace 过滤
  • 通过 retrieval 模块集成 BM25 与 SPLADE 索引
  • 完整图快照与 RocksDB-backed 自动 payload 换页
RET

检索编排

Retrieval

MultiRetriever 与 TripleTowerRetriever 为稠密、稀疏、图、情景和实体关系路径提供检索编排。

  • BM25、SPLADE、余弦检索与 RRF 融合
  • 可选图扩展与 reranker 管理
  • 面向 vLLM reranker 的异步路径

基准性能对比

在长期对话记忆基准上以更低 Token 消耗达到 SOTA 级正确率

LoCoMo 正确率 (%) 对比

GPT-4o-miniAvg. TokSingleMultiTemp.OpenOverall
Mem01.0k66.7158.1655.4540.6261.00
MemU4.0k72.7762.4133.9646.8861.15
MemOS2.5k81.4569.1572.2760.4275.87
Zep1.4k88.1171.9974.4566.6781.06
EverMemOS2.5k91.6882.7479.3470.1486.13
Mandol2.0k93.8285.1189.1065.6389.48
GPT-4.1-miniAvg. TokSingleMultiTemp.OpenOverall
Mem01.0k68.9761.7058.2650.0064.20
MemU4.0k74.9172.3443.6154.1766.67
MemOS2.5k85.3779.4375.0864.5880.76
Zep1.4k90.8481.9177.2675.0085.22
EverMemOS2.3k95.3289.0190.1377.4391.97
Mandol1.9k95.3692.2087.8579.1792.21

Mandol 在 LoCoMo 上以 1.9k tokens 达到 92.21% 的总体正确率。论文表格使用生成好的三塔图,并启用 router + quantification;Qwen/DeepSeek 用于记忆生成和去重,GPT-4.1-mini/GPT-4o-mini 用于 task-eval 与 judge。

LongMemEval 正确率 (%) 对比

GPT-4o-miniAvg. TokSS-PrefSS-AsstTemporalMulti-SKnow. Upd.SS-UserOverall
MemU0.5k76.7019.6017.3042.1041.0067.1038.40
Mem01.1k90.0026.7872.1863.1566.6782.8666.40
Zep1.6k53.3075.0054.1047.4074.4092.9063.80
MemOS1.4k96.6767.8677.4470.6774.2695.7177.80
Mandol2.1k96.6798.2178.9574.4488.4697.1485.00
GPT-4.1-miniAvg. TokSS-PrefSS-AsstTemporalMulti-SKnow. Upd.SS-UserOverall
EverMemOS2.8k93.3385.7177.4473.6889.7497.1483.00
Mandol2.3k96.6798.2187.2277.4489.7498.5788.40

Mandol 在 LongMemEval 上以 2.3k tokens 达到 88.40% 的总体正确率。复现时需要先准备 cleaned 数据集,并生成 hierarchical、episodic 与 entity-relation 三类图产物后再运行 task_eval。

检索与记忆写入延迟

完整展示尾延迟与平均延迟,服务器和本地部署分别报告

82.2 ms

平均检索延迟

H800 · 10 QPS

39.7 ms

平均写入延迟

H800 · 10 QPS

5.4×

检索加速

服务器平均延迟 · 相比最佳非 Mandol 基线

4.8×

记忆写入加速

服务器平均延迟 · 相比最佳非 Mandol 基线

服务器部署

NVIDIA H800 80GB · 检索 10 QPS · 写入 10 QPS

ms
NVIDIA H800 80GB · 检索 10 QPS · 写入 10 QPS
系统检索写入
P99P90平均值P99P90平均值
MemU63000.760539.547554.512070.67273.15077.9
EverMemOS37192.435220.420092.1790.2555.5317.7
Mem04637.01397.01089.02841.01650.0888.0
Zep5348.7614.8571.7375.1254.5239.0
MemOS777.1528.4440.5376.4211.6191.9
Mandol (本系统)94.888.582.267.346.939.7

所有数值单位均为毫秒。服务器实验使用 NVIDIA H800 80GB,检索和写入均为 10 QPS;本地实验使用 NVIDIA RTX 5090 Laptop 24GB,检索为 5 QPS,写入为 10 QPS。

† EverMemOS 使用其官方实现复现。

以上数据对应冻结的 论文复现 artifact


快速开始

安装发布包或源码环境,添加 MemoryUnit,用 MultiRetriever 检索,再持久化图快照

# Published package
python -m pip install mandol
 
# Reproducible package pin
python -m pip install "mandol==0.1.0"
 
# Base source environment
uv sync
 
# Development and documentation environment
uv sync --extra dev --extra docs --group spacy-model
 
# Paper performance stack (run from the paper-repro branch)
uv sync --extra dev --extra cuda --group spacy-model
 
# Lightweight import check
uv run python -c "import mandol; print(mandol.__version__)"
1. 环境2. 单元3. 检索4. 持久化

引用

如果您的研究受益于本工作,请引用我们的论文

mandol.bib
@misc{zhang2026mandol,
  title={Mandol: An Agglomerative Agent Memory System for Long-Term Conversations},
  author={Yuhan Zhang and Zhiyuan Guo and Ziheng Zeng and Wei Wang and Wentao Wu and Lijie Xu},
  year={2026},
  eprint={2606.29778},
  archivePrefix={arXiv},
  primaryClass={cs.DB},
  doi={10.48550/arXiv.2606.29778},
  url={https://arxiv.org/abs/2606.29778}
}

论文已发布于 arXiv:2606.29778。