跳到主要内容
Agent Memory ANN 系统

第6章:Pancake 精读 2 —— 多 Agent 混合图索引与 Agent Profile

Pancake 精读三章的第二章。把这篇论文最具创新性的"多 Agent 索引管理"部分讲透:多 Agent 场景下 coarse search 占比飙到 80%+ 的实证、不同 agent 在同一 cluster 内访问模式的非均匀性、把多个 agent 的 coarse index 连成"混合图"的设计、用 ef_connect 概率自适应跨图连接密度、用 Agent Profile per-cluster table 追踪每个 agent 的 fine-grained 访问偏好——以及为什么这种"多 Agent ANN co-design"是 Mem-GPT / MIRIX 等应用层框架完全缺失的系统层创新。

Pancake 多 Agent 混合图 Agent Profile coarse search hybrid graph ef_connect

第 5 章拆开了 Pancake 的单 Agent 优化——多级 cache + FSM。但 Pancake 论文的标题是 “Hierarchical Memory System for Multi-Agent LLM Serving”——多 Agent 才是它真正想攻的腹地。本章解读 Pancake 三件套的第二件:多 Agent 场景下的两个独立性能困境(excessive coarse search + non-uniform fine search),以及它们的统一解法——Hybrid Graph + Agent Profile。这一章在思路上比第 5 章更”系统派”:少了一些机器学习味,多了很多”把传统数据库哲学搬到 LLM agent 场景”的设计巧思。读完你会理解为什么 Pancake 在 20 个 agent 共享同一个 8M MS MARCO 库时,端到端吞吐下降仅 10.2%(其他系统下降 30-56%)——以及这个数字背后的两个具体技巧。

📑 目录


1. 多 Agent 场景的两个独立性能困境

1.1 为什么多 Agent 是独立问题

回到第 4 章的 Agent Memory 三层架构图:

Application Layer    →  MIRIX / MemOS 等"多 Agent 协同框架"已经存在
                        但它们只在"应用语义层"做 ACL 和共享池

                        每个 Agent 仍然在用 *独立* 的 vector store
                        或 *共享* 的 vector store + agent_id filter

                        无论哪种,**底层 ANN 索引都不知道多 Agent 存在**

Indexing Layer       →  💥 多 Agent 性能在这一层崩塌

🌟 关键事实MIRIX 把”多 Agent ACL”做透了,但没人解决”多 Agent 索引层性能”。Pancake 的多 Agent 设计填的是这个空白。

1.2 Pancake 论文揭示的两组数字

20 个 agent 共享同一 8M 向量库时:

困境 1:Coarse search 占比从 < 20% 飙到 > 80%   ← 论文 Fig. 7(a)
        (5 个 agent 时还正常,20 个 agent 时灾难)

困境 2:同一 cluster 被不同 agent 访问的 fine pattern 完全不同 ← 论文 Fig. 7(b)
        (centroid 在 embedding 空间漂得乱七八糟)

🍎 直觉对应

  • 困境 1 像”图书馆有 20 个研究员,每人要先扫一遍全馆目录才能开始查书”
  • 困境 2 像”同一本书架,20 个研究员用的是完全不同的 6 个子章节,但书架的’代表性中心位置’被强行算成所有 20 个研究员的平均偏好”

1.3 两个困境的对应解法

困境Pancake 解法
Excessive coarse searchHybrid Graph:把多 agent 的 coarse 索引连成一个图,单次遍历搞定
Non-uniform fine searchAgent Profile:per-static-cluster 的 per-agent 偏好表,搜索时优先访问

关键判断两个解法相互独立、可单独启用。这种”分而治之”的设计让 Pancake 在不同 workload 下都能取最大收益。


2. 困境 1:Excessive Coarse Search Cost

2.1 实证数据

Pancake 论文 Fig. 7(a) 给的是一组 alarming 数字:

Coarse search 占总搜索时间的比例:

agent 数   IVF4096 (Flat)     IVF65536 (HNSW)
1          20%                10%
5          40%                30%
10         60%                55%
20         85%                80%

🌟 关键事实agent 数线性增加时,coarse search 占比指数级增加——20 个 agent 时已经”主导了”总时间。

2.2 为什么会这样

回顾第 2 章的 IVF / HNSW 工作方式:

传统两阶段搜索:
  Step 1 (coarse): 找最近的 nprobe 个 cluster      ← O(K) 或 O(log N),K = nlist
  Step 2 (fine):   在这 nprobe 个 cluster 内精搜    ← O(M·d)

单 agent 场景下:coarse 阶段的 O(K) 比 fine 阶段的 O(M·d) 小一两个数量级(典型 K=4096 vs M=10000, d=1024)——所以 coarse 是”几乎免费”的。

多 agent 场景呢?两种部署方式:

方式 A:每个 agent 一个独立索引

20 个 agent → 20 个独立的 IVF coarse 索引
              每次跨 agent search 要扫 20 次 coarse → 20× cost ❌

方式 B:所有 agent 共享一个索引 + agent_id filter

共享一个大索引 → 但是 fine 阶段每个 cluster 内要过滤 agent_id
                  cluster 越大、agent_id 越分散,filter 越慢 ❌

🧠 关键洞察方式 A 让 coarse 变成瓶颈;方式 B 让 fine 变得不准(因为不同 agent 共用 centroid)。两个方式都不好。

2.3 论文 Fig. 6 的可视化

方式 A:Flat coarse                       方式 B:HNSW coarse
        每个 agent 单独一个 coarse           每个 agent 单独一个 HNSW
            ↓                                    ↓
            12 次距离计算(3 个 agent)         7 次距离计算
            (线性增长)                         (log 增长,但仍然每个 agent 独立遍历)

Pancake:Hybrid graph
        多 agent coarse index 连成一个图

            4 次距离计算(同样 3 个 agent)
            (一次遍历跨多个 agent)

关键判断Pancake 的混合图把”每个 agent 独立 coarse 搜索”压成”一次遍历多 agent”,把多 agent 的 coarse 摊销代价压低


3. 困境 2:Non-Uniform Fine Search Patterns

3.1 实证数据

Pancake 论文 Fig. 7(b) 提供了一个 PCA 可视化:

取 1 个 cluster,看不同 agent 在这个 cluster 里的访问分布:

PCA 2D 散点图:
    
    Agent A 访问的 vector ──→ 集中在左上区域
    Agent B 访问的 vector ──→ 集中在右下区域
    Cluster 的整体 centroid ─→ 在中间("代表"不了任何 agent)

🌟 关键事实同一个物理 cluster,不同 agent 实际”使用”的子区域完全不同——cluster centroid 是个”平均人”,不代表任何一个 agent 的真实访问模式。

3.2 这个现象的根因

回到第 5 章讲的”intra-agent locality”——同一 agent 的 memory 在 embedding 空间是高度内聚的。当多个 agent 共享一个 cluster 时

Cluster c 里有:
  Agent A 的 50 个 memory:分布 N_A(embedding 空间内聚簇 A)
  Agent B 的 30 个 memory:分布 N_B(embedding 空间内聚簇 B)
  Agent C 的 100 个 memory:分布 N_C(embedding 空间内聚簇 C)
  
Cluster centroid = mean(所有 180 个 memory)
                = N_A、N_B、N_C 三个簇心的加权平均
                ≠ 任何单个 agent 实际感兴趣的"中心"

🍎 直觉对应:图书馆把”Python 教程”、“机器学习教程”、“数据库教程”三类书堆在同一个书架。书架的”代表性位置”是这堆书的几何中心,但任何一个研究员都不在那个中心做研究

3.3 为什么这是个性能问题(不只是召回问题)

不只是 recall 受影响——搜索效率也受影响

没 agent-aware 时的 search:
  agent A 查询 q_A
    → IVF coarse 找到 cluster c(因为 q_A 离 centroid 最近)
    → 进入 cluster c 精搜
    → 但 cluster c 里大部分向量属于 B 和 C,对 A 没用
    → 浪费 (50+100)/180 = 83% 的距离计算

🌟 结论多 agent 共享 cluster 时,每个 agent 在精搜阶段都在”做无用功”——这是 fine search 的隐性瓶颈。


4. Hybrid Graph:把多 Agent 的 coarse index 连起来

4.1 总体思路

Pancake 不让多 agent 的 coarse index 各自为政,也不强行融合成”统一 centroid”。它把多个 agent 的 coarse index “graph-connect” 起来

传统多 agent(独立 coarse):

    Agent 1 coarse:  ●  ●  ●  ●
                                       这 4 个集合互相不知道
    Agent 2 coarse:  ●  ●  ●  ●
                                       搜索要分别遍历
    Agent 3 coarse:  ●  ●  ●  ●

Pancake 混合图(hybrid graph):

    Static coarse:   ●──●──●──●        基础静态层
                     │  │  │  │
    Agent 1 coarse:  ●  ●─┼──●         agent 私有层(与 static 互连)
                     │     │            少量 inter-graph edges
    Agent 2 coarse:  ●──●  ●  ●
                     │     │
    Agent 3 coarse:  ●  ●  ●──●
                     
    互连边的概率:1/ef_connect

🧠 关键洞察Pancake 不是把多 agent 索引”merge”成一个,也不是”独立维护”,而是用”sparse cross-graph edges 连接”——既保持每个 agent 的私有性,又允许跨 agent 协同搜索

4.2 数据结构

每个 agent + 静态库都是一个多层 HNSW

Static coarse index:           Agent A coarse index:
                              
  Layer 2: 入口节点              Layer 2: 入口节点
  Layer 1: 中间层                Layer 1: 中间层
  Layer 0: 全部节点              Layer 0: 全部节点
  
                inter-graph connection:
                  Layer 0 节点 ←─概率 1/ef_connect──→ Layer 0 节点

具体来说:

  • 每个 agent 维护自己的 fine index(保存自己的私有 memory)
  • 每个 agent 维护自己的 coarse index(典型 4-layer HNSW,每层度 M)
  • Coarse index 之间有少量跨图边(“portal nodes”),用于跨 agent 搜索

4.3 搜索流程:BFS-like cross-graph traversal

def hybrid_graph_search(query, scope):
    # scope = 'static' or {'static', 'agent_A', 'agent_B'}
    
    # 1. 从 static coarse index 的入口节点开始
    frontier = [static.entry_point]
    visited = set()
    portals_to_explore = []
    
    while frontier or portals_to_explore:
        node = frontier.pop()
        if node in visited:
            continue
        visited.add(node)
        
        # 2. 检查邻居(同图)
        for neighbor in node.neighbors:
            if dist(neighbor, query) < threshold:
                frontier.append(neighbor)
        
        # 3. 检查 inter-graph connections(跨图)
        for portal in node.cross_graph_portals:
            if portal.target_scope in scope:
                portals_to_explore.append(portal.target_node)
        
        # 4. 当 frontier 探索完,去跨图节点
        if not frontier and portals_to_explore:
            next_node = portals_to_explore.pop()
            frontier.append(next_node)
    
    return top_k_by_distance(visited, query, k)

🌟 关键设计BFS 在每个图内部正常做,遇到 portal 就”跳”到另一个图——但 portal 的密度受 ef_connect 控制,不会让搜索失控。

方法多 agent coarse 复杂度
独立 coarse + FlatO(K · n_agents)
独立 coarse + HNSWO(log K · n_agents)
Hybrid graphO(log K)(共享一次遍历)

🌟 结论hybrid graph 把 coarse search 复杂度从”线性随 agent 数增长”压回”准 log”——这正是 Fig. 7(a) 中 80% → ~20% 占比下降的根源


5. Inter-Graph Connection:用 ef_connect 控制密度

5.1 ef_connect 的形式化

Pancake 的 inter-graph connection 概率:

                              d_static
ef_connect = min( α_ic · ────────────── ,  1 )
                              d_agent

其中:

  • d_static:static coarse index 的”average centroid spacing”——衡量静态层的密度
  • d_agent:agent 私有 coarse index 的”average centroid spacing”——衡量该 agent 层的密度
  • α_ic:Pancake 推荐 [4, 8]

5.2 三种典型情形

情形 A:d_static = d_agent(密度相同)
        ef_connect = min(α_ic, 1)
        ≈ 1
        → 每个节点都有 inter-graph edge → 密集连接

情形 B:d_static >> d_agent(静态比 agent 稀疏)
        ef_connect 大 → 还是密集
        → 静态层覆盖广但低密度,agent 层细密度,需要多连接桥

情形 C:d_static << d_agent(静态比 agent 密集)
        ef_connect 小 → 稀疏连接
        → 静态层已经覆盖 agent 的语义空间,只要少量 portal 就够

🧠 关键洞察Pancake 让 inter-graph edge 数量自适应——agent 的语义空间和 static 重叠度越高,桥越少;重叠度越低,桥越多

5.3 直觉对应

🍎 直觉比喻

  • 静态库 = 全国铁路图
  • Agent 私有库 = 某城市的地铁图
  • inter-graph edge = 铁路-地铁换乘点
  • 城市地铁覆盖广(与铁路重叠多) → 换乘点少(不需要每站都换乘)
  • 城市地铁覆盖窄(与铁路不重叠) → 换乘点多(每个交点都换乘)

5.4 一个潜在 pitfall

Pancake 论文也承认 ef_connect 调参不简单:

  • 太大 → inter-graph edge 过多 → 单次 BFS 变成全图遍历
  • 太小 → inter-graph edge 过少 → 跨 agent 搜索召回降

实测 α_ic ∈ [4, 8] 是 Pareto 区域。

🌟 结论ef_connect 的设计是 Pancake 的”hyperparameter sensitivity 痛点”——但论文实测在 6 个数据集上 [4, 8] 都稳健。


6. Agent Profile:per-cluster 的 fine-grained 优先级

6.1 数据结构

每个静态 cluster,每个 agent 都有一个 Profile 条目:

Static Cluster c 的 Agent Profile Table:
  
  ┌──────────┬─────────────────────────────────┐
  │  Agent ID│  Recently-accessed vector IDs   │
  │          │  (fixed-size sorted list)       │
  ├──────────┼─────────────────────────────────┤
  │  A       │  [v_17, v_42, v_8, v_103, ...]  │
  │  B       │  [v_55, v_92, v_3, ...]         │
  │  C       │  [v_201, v_88, ...]             │
  └──────────┴─────────────────────────────────┘

每个 entry:

  • Agent ID
  • 最近访问的 vector 局部 ID 列表(fixed size,sorted by access recency)

🍎 直觉对应:每个图书馆书架上贴一张”研究员最近翻过的书”标签——研究员再来找书时,先看标签上的书,再翻整书架。

6.2 更新规则

def on_query_complete(query, agent_id, top_k_in_cluster):
    # top_k_in_cluster 是这次 query 在 cluster c 内的 top-k 结果
    
    profile = agent_profiles[c][agent_id]
    for v in top_k_in_cluster:
        if v in profile.recent:
            # 已有:promote 到列表前面
            profile.promote(v)
        else:
            # 新的:插入到前面
            profile.insert_front(v)
            # 如果超过 fixed size,evict 末尾
            if len(profile.recent) > MAX_SIZE:
                profile.evict_last()

🌟 关键设计profile 是 cluster-local + agent-specific 的双重维度——很细粒度但每个 entry 都很小。

6.3 在搜索时的使用

Search 流程被这样改写:

def fine_search_in_cluster(cluster, query, agent_id, k):
    profile = agent_profiles[cluster][agent_id]
    
    # 1. 先看 profile 里的"最近访问"
    candidates = profile.recent_vectors    # 比如 50 个 ID
    
    # 2. 算这些向量到 query 的距离
    distances = compute_distances(candidates, query)
    
    # 3. 如果当前 top-k 满足 early termination 条件
    if all(top_k_distances < α_et · d_agent):
        return top_k(candidates, k)   # 提前返回
    
    # 4. 否则 fall back 到完整 cluster 搜索
    return full_cluster_search(cluster, query, k)

🧠 关键洞察Agent Profile 把 cluster 内搜索从”扫所有向量”压成”先扫最相关的 50 个 → 不够再继续”——典型 8x-20x 加速

6.4 与第 5 章 FSM 的关系

维度FSM(第 5 章)Agent Profile(本章)
粒度cluster-level(哪个 cluster 该被访问)vector-level(cluster 内哪些 vector 该优先)
作用search reordering / prefetchfine search reordering
时间维度跨 step(reasoning chain)单 step(当前 cluster 内)
存储位置L0 cache 表每个 cluster 的 profile 表

🌟 关键判断FSM 和 Profile 是”宏观 + 微观”两个尺度的 locality 利用——FSM 选 cluster,Profile 选 cluster 内向量。两者完全互补。


7. 多 Agent 搜索流程整合

7.1 完整的端到端搜索流程

把第 5 章的多级 cache + FSM 和本章的 hybrid graph + Agent Profile 整合:

def pancake_multi_agent_search(query, agent_id, scope, k):
    """
    scope: 'static_only' or {'static', 'agent_A', 'agent_B', ...}
    """
    
    # ===== Stage 1: Coarse search via Hybrid Graph =====
    # FSM 预测目标 cluster
    predicted_cluster = FSM_table[agent_id].predict(query)
    
    if predicted_cluster:
        # 优先查预测 cluster(search reordering)
        candidates = fine_search_in_cluster(
            predicted_cluster, query, agent_id, k)
        if early_termination(candidates):
            return candidates
    
    # 否则 BFS 走 hybrid graph
    nprobe_clusters = hybrid_graph_BFS(query, scope, n_clusters=nprobe)
    
    # ===== Stage 2: Fine search with Agent Profile =====
    all_candidates = []
    for cluster in nprobe_clusters:
        cluster_results = fine_search_in_cluster(
            cluster, query, agent_id, k)
        all_candidates.extend(cluster_results)
        
        if early_termination(all_candidates):
            break
    
    return top_k(all_candidates, k)

7.2 三层调度的协同

┌─────────────────────────────────────────────┐
│ L0 / L1 / L2 cache (第 5 章)               │
│   ↓                                         │
│ FSM 预测 + 重排 + prefetch (第 5 章)       │
│   ↓                                         │
│ Hybrid Graph BFS (本章)                    │  ← 多 Agent coarse
│   ↓                                         │
│ Agent Profile fine search (本章)           │  ← 多 Agent fine
│   ↓                                         │
│ 底层 vector DB (HNSW / Faiss)              │
└─────────────────────────────────────────────┘

🌟 关键判断Pancake 的每一层都独立可关——你可以只用 hybrid graph,或者只用 multi-level cache。这种”插件化”对工业部署很友好。

7.3 关键参数一览

参数含义典型值来源章节
N_pL0/L1 缓存表项数几十~几百第 5 章
k’L1 缓存 top-k’ 邻居k × (1.5-2)第 5 章
α_etearly termination 阈值0.6-0.8第 5 章
N_SFSM 最大状态数数十第 5 章
d_mergeFSM 合并距离启发式第 5 章
MHNSW 度16-64本章
ef_searchHNSW search beam50-200本章
α_icinter-graph connection 系数4-8本章
Profile size每个 (cluster, agent) profile 容量几十本章

⭐ Pancake 整体 ~9 个超参——比 SPFresh / Quake 多,但绝大多数有论文给的默认值或物理含义。


8. 与 MIRIX / MemOS 等应用层多 Agent 框架的对照

8.1 三层视角

┌─────────────────────────────────────────────────────────┐
│ Application Layer                                       │
│ MIRIX / MemOS / Mem-GPT                                 │
│   功能:ACL、6 类记忆、shared/private 边界、TTL 等       │
│   局限:底下 vector store 当黑盒                        │
└─────────────────────────────────────────────────────────┘
                          ↕  Pancake API
┌─────────────────────────────────────────────────────────┐
│ Indexing Layer                                          │
│ ⭐ Pancake (Hybrid Graph + Agent Profile)               │
│   功能:感知 scope、多 agent 协同 ANN、性能              │
│   局限:不做应用语义                                     │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ Storage Layer                                           │
│ DRAM / SSD / RDMA / UB                                  │
└─────────────────────────────────────────────────────────┘

🌟 关键判断Pancake 不取代 MIRIX,而是补完 MIRIX 缺失的索引层。理论上 MIRIX + Pancake 组合是 2026 年最完整的多 Agent Memory 栈。

8.2 关键能力对比

能力MIRIXMemOSPancake
Multi-agent ACL❌(不在乎)
Multi-agent memory types✅(6 类)✅(MemCube)
Multi-agent coarse search 优化✅ ⭐
Multi-agent fine search 优化✅ ⭐
Cross-agent locality 利用✅ ⭐
性能优化(>10× 加速)

Pancake 在应用层框架完全缺位的领域开辟了新空间

8.3 集成 Pancake 的代码示意

按 Pancake 论文 §5(Implementation)的描述,集成大致是这样:

import pancake_lib

# Pancake 作为 backend
backend = pancake_lib.PancakeMemory(
    n_agents=20,
    static_index='ms_marco_8M',
    hybrid_graph=True,
    agent_profile=True,
    gpu_caching=True,    # 第 7 章会讲
)

# 包进 MIRIX 这样的应用层框架
from mirix import MIRIXAgent
agent = MIRIXAgent(
    agent_id="agent_1",
    memory_backend=backend.scope("agent_1"),
)

# 用 MIRIX 的 API,但底下走 Pancake
agent.episodic.add("Hello world")
results = agent.semantic.search("greeting")

🌟 结论Pancake 的工程价值不在于”取代”,而在于”加速”——它是个高性能 backend,可以被任何应用层框架调用。


9. 多 Agent 实验数据复盘

9.1 Multi-Agent Scalability(Fig. 14)

随 agent 数从 1 增长到 20:

End-to-end throughput (tokens/s, Llama3.1-8B):

agent 数 | A-Mem | Mem-GPT | LlamaIndex | LangMem | Pancake
1        | 5     | 10      | 3          | 25      | 95
5        | 5     | 9       | 3          | 23      | 92
10       | 4     | 8       | 3          | 20      | 90
15       | 4     | 7       | 2          | 18      | 88
20       | 3     | 6       | 2          | 15      | 85    ← Pancake 仅降 10.5%

🌟 关键事实Pancake 在 20 agent 时端到端吞吐仅降 10.2%。其他系统降 30-65%。

9.2 Mixed Workload(Fig. 13)

两个 agent 混合 search + insert:

Pancake:吞吐降 < 9.8%
其他系统:吞吐降 29.9% - 55.9%

🌟 关键事实Pancake 在多 agent 混合 search/update 下性能下降不到 10%——这是它最难看的”压力测试”场景,仍然守住了 SLA。

9.3 Hybrid Graph 的消融实验(Fig. 18(a))

Coarse search cost:

agent 数 | IVF4096 (Flat) | IVF65536 (HNSW) | Pancake (Hybrid Graph)
1        | 0.05 ms        | 0.02 ms         | 0.01 ms
5        | 0.25 ms        | 0.10 ms         | 0.05 ms
10       | 0.50 ms        | 0.20 ms         | 0.05 ms ⭐
20       | 1.00 ms        | 0.40 ms         | 0.05 ms ⭐

关键事实Pancake 的 coarse 搜索代价几乎不随 agent 数增长——20 agent 时比 HNSW baseline 快 20×

9.4 Agent Profile 的消融实验(Fig. 18(b))

总计算量(向量距离计算次数):

方法                                    | 距离计算量
独立索引 + 没 Agent Profile             | 100%(baseline)
Hybrid graph 但没 Agent Profile         | 88.4%(hybrid graph 自身贡献 11.6%)
Pancake(Hybrid graph + Agent Profile) | 66.6%(Agent Profile 额外贡献 21.8%)

🌟 关键事实Agent Profile 在 Hybrid Graph 之上额外贡献 21.8% 的距离计算节省——单独这一项就是值得发表的优化。


✅ 自我检验清单

  • 两个困境:能说出”excessive coarse search” 和 “non-uniform fine search” 各自的实证数据
  • Coarse search 80% 现象:能解释为什么 20 个 agent 时 coarse 占比从 < 20% 飙到 80%+
  • 三种部署方式:能列出”独立 coarse + Flat”、“独立 coarse + HNSW”、“共享 + filter”各自的失败模式
  • Hybrid Graph 结构:能画出 static + agent coarse index 通过 inter-graph edges 连接的样子
  • ef_connect 公式:能复述 ef_connect = min(α_ic · d_static / d_agent, 1),并解释三种典型情形
  • Agent Profile 数据结构:能描述 per-cluster + per-agent 的 fixed-size sorted list 设计
  • FSM vs Profile:能说出两者在粒度(cluster-level vs vector-level)和时间维度上的差异
  • 与 MIRIX 的关系:能解释为什么 Pancake 不取代 MIRIX,而是补完它的索引层
  • 核心数据:能背出”20 agent 下 Pancake 吞吐仅降 10.2%、coarse search 降 20×”

📚 参考资料

论文原文

  • Pancake: Hierarchical Memory System for Multi-Agent LLM Serving (Hu et al., UCSD, 2026.02):arXiv 2602.21477v1
  • ⭐ §3.2 (Multi-Agent Challenges) + §4.3 (Multi-Agent Indexing with Hybrid Graph):本章主要解读对象
  • ⭐ Fig. 6-7(多 agent 困境可视化)、Fig. 10(hybrid graph 结构)、Fig. 13-14(多 agent 实验)

Pancake 引用的多 Agent 相关工作

Pancake 直接比较的多 Agent 框架

  • MIRIX: Multi-Agent Memory System for LLM-Based Agents (Wang & Chen, 2025):arXiv 2507.07957
  • AI Town / Generative Agents:模拟环境多 agent
  • Camel: Communicative Agents for “Mind” Exploration of LLM Society (Li et al., NeurIPS 2023):NeurIPS —— Pancake 引用 [39]

Pancake 引用的应用层 baseline

与 Hybrid Graph 设计相关的工作

  • HNSW (Malkov & Yashunin, TPAMI 2018):arXiv 1603.09320 —— hybrid graph 内部仍是 HNSW
  • Sub-Graph 索引:早期数据库系统中的多视图索引研究——Pancake 的 hybrid graph 可以视为 LLM 时代的对应物

多 Agent 评测数据集

Pancake 论文用的多 agent 数据集:

  • APIGen (Liu et al., 2024):tool-calling agent
  • AgentGym (Xi et al., 2024):环境交互 agent
  • UltraChat / UltraFeedback:对话型 agent

Surveys(多 Agent + Memory)

  • Multi-Agent Memory from a Computer Architecture Perspective (2026):arXiv 2603.10062 —— vision paper,对应到 Pancake 这一类系统层工作
  • Token Coherence: Adapting MESI Cache Protocols to Multi-Agent LLM Systems (2026):arXiv 2603.15183
  • Storage-Based ANNS Survey (IISWC 2025):含多 agent / 分布式章节

行业讨论

本系列其它章节