Yuzhe's Blog

yuzhes

AVM 多智能体基准测试:60 倍性能提升与记忆的真实价值

今天我们运行了全面的基准测试,以衡量 AVM 对多智能体协作的影响。结果清楚地表明了持久记忆最能发挥价值的场景,以及我们在哪里实现了显著的性能优化。

TL;DR

多智能体准确率:

场景基线AVM提升
上下文溢出50%88%+38%
知识检索47%67%+20%
完整协作100%100%

性能(优化后):

操作优化前优化后加速比
Recall4,300ms62ms70x
写入84ms4-8ms10-20x
列目录50ms0.6ms83x

1. 多智能体基准测试设计

测试场景

我们在 5 个类别中创建了 48 个场景

  1. 协作编程(10 个)— 多智能体软件开发
  2. 知识检索(15 个)— 跨智能体知识查询
  3. 信息同步(10 个)— 实时数据传播
  4. 实际案例(5 个)— 端到端工作流(交易、客服、DevOps)
  5. 上下文溢出(8 个)— 超出上下文限制的召回

测试方法

每个场景运行两次:

我们使用 Claude Opus 执行智能体任务,4 线程并行以提高效率。


2. 结果:AVM 最能发挥价值的地方

上下文溢出:准确率 +38%

价值最高的场景。当智能体被「压缩」(丢失了详细上下文)时,AVM 能够召回特定细节。

场景:长对话召回
问题:"密码重置用什么邮箱?"

基线:"我没有关于邮箱地址的信息..."
AVM:"security@company.com" ✓(从 /decisions/security.md 召回)

结果:4/8 → 7/8 正确(+38%)

知识检索:断言 +20%

跨智能体知识共享表现出明显改善:

场景:架构决策记录
任务:"我们应该拆分单体架构吗?团队从 10 人增长到 25 人。"

基线:关于微服务的通用建议
AVM:召回 ADR-007(原始单体决策),注意团队规模变化,
     提供有上下文的建议 ✓

结果:24/51 → 34/51 断言通过(+20%)

AVM 不起作用的场景

对于所有上下文都能装进对话窗口的场景,两种方法都能成功。AVM 增加了额外开销,但为未来会话提供了知识持久化。


3. 性能优化

问题:4.3 秒的 Recall

初始基准测试显示每次 recall 操作耗时 4.3 秒。瓶颈:每次 CLI 调用时都要加载嵌入模型。

$ time avm recall -a test "data analysis"
# 4.2 秒 (!)

方案一:模型缓存

我们实现了在同一进程内跨实例持久化的类级别模型缓存:

class LocalEmbedding(EmbeddingBackend):
    # 类级别缓存(跨实例持久化)
    _model_cache: Dict[str, Any] = {}
    
    def _load_model(self):
        if self.model_name in LocalEmbedding._model_cache:
            self._model = LocalEmbedding._model_cache[self.model_name]
        else:
            self._model = SentenceTransformer(self.model_name)
            LocalEmbedding._model_cache[self.model_name] = self._model

方案二:查询嵌入缓存

为查询嵌入添加 LRU 缓存(重复查询跳过嵌入计算):

def embed(self, text: str) -> List[float]:
    cache_key = text[:200]
    if cache_key in self._query_cache:
        return self._query_cache[cache_key]
    
    result = self._model.encode(text).tolist()
    self._query_cache[cache_key] = result
    return result

方案三:智能 Recall 过滤

添加 min_relevance 阈值(默认 0.3),过滤低质量结果:

# 返回前过滤
if min_relevance > 0:
    scored = [s for s in scored if s.relevance_score >= min_relevance]

# 无相关结果时提前返回
if not scored:
    return ""  # 零 token 浪费

结果:快 70 倍

操作CLI(子进程)进程内加速比
写入84ms4-8ms10-20x
Recall(冷)4,300ms100ms43x
Recall(热)62ms70x
列目录50ms0.6ms83x
统计71ms1.4ms50x

warmup 命令预加载模型:

$ avm warmup
 嵌入模型加载完成,耗时 3779ms
  模型:all-MiniLM-L6-v2
  维度:384

4. 使用建议

何时使用 AVM

高价值场景

⚠️ 中等价值场景

低价值场景(使用基线):

优化建议

  1. 在高吞吐场景直接使用 Python API(避免 CLI 子进程开销)
  2. 在进程启动时调用一次 warmup
  3. 设置合适的 min_relevance — 精度优先用 0.5+,召回优先用 0.2
  4. 使用批量操作batch_remember() 用于批量写入

5. 结论

AVM 的价值依赖于具体场景:

性能优化让 AVM 适合用于生产环境:

基准测试验证了 AVM 的核心论点:当 LLM 上下文限制成为瓶颈时,持久记忆才真正重要


复现

git clone https://github.com/aivmem/avm
cd avm/benchmarks

# 安装依赖
pip install tiktoken sentence-transformers

# 运行单元基准(不需要 LLM)
python run_unit_benchmark.py

# 运行多智能体基准(需要 Claude API)
python run_parallel.py
python run_context_overflow.py
python run_knowledge_retrieval.py

结果保存到 results/*.json


基准测试于 2026 年 3 月 23 日在 Apple M2 Pro 上进行,使用 Claude Opus 执行智能体任务。48 个场景,150+ 次智能体调用,80+ 并行任务。