循环中的记忆:进程内检索作为语言智能体的扩展工作记忆

arXiv cs.AI 论文

摘要

本文介绍了“循环中的记忆”,其中语言智能体在每个推理步骤中反复访问进程内关联存储。通过使用快速(约100微秒)的进程内存储,每一步的检索成本相比网络存储降低了三个数量级,消除了冗余操作,并提升了GPT-5类模型的召回率。

arXiv:2607.05690v1 公告类型:新 摘要:语言智能体运行一个循环——观察、推理、行动——但它们所依赖的记忆却位于循环之外:一个每轮最多查询一次的存储。我们研究的是记忆进入循环内部、每一步都进行读写的情况。障碍始终是延迟:网络存储需要数十到数百毫秒才能响应,而当检索代价高昂时,循环内检索可能使端到端延迟增加多达83倍。先前的工作是在管理这种代价而非质疑它:服务层调度将其隐藏,“记忆优先”设计将检索限制为每轮一次。我们认为延迟是存储所在位置的属性,而非循环模式的问题:进程内存储的响应时间约为100微秒,比网络模式低三个数量级,在此速度下每步的额外开销消失了。根据扩展心智理论的对等原则,一个足够快以致能持续直接访问的存储就变成了扩展工作记忆,而不仅仅是智能体偶尔查阅的工具。这一前提是因果性的:在固定的每轮记忆延迟预算下,仅改变存储的响应速度,冗余操作会随着延迟单调增加——在进程内速度下12次中0.0次,在110毫秒的云端往返延迟下12次中7.2次(gpt-5-nano、gpt-5-mini;确切置换检验p=0.0079)。我们端到端地展示了这一模式:在四个GPT-5类模型上,使用有界窗口,记忆循环内使召回率从0/5提升至3.6-4.8/5,存储操作的中位延迟为80-165微秒——尽管一个指示为“每次回复都复述”的基线方法也能完美解决此问题,但其令牌成本随工作集增长而增加。存储在任何运行中均未丢失任何事实(244次写入全部保留);每次遗漏都归因于智能体的读取策略,而非存储本身。我们的测量还重新定位了瓶颈:每步的主要成本是嵌入过程(网络延迟约200-400毫秒);将进程内存储与小型本地嵌入器配对后,完整操作可降至实测约40微秒。
查看原文
查看缓存全文

缓存时间: 2026/07/08 04:38

# 进程内检索:语言代理的扩展工作记忆 来源:https://arxiv.org/html/2607.05690

###### 摘要

语言代理运行一个循环——观察、推理、行动——但它们所推理的记忆被视为循环*外部*的事物:一个每个轮次最多查询一次的存储。我们研究的机制是将记忆移动*进入*循环,在每一个推理步骤上进行读写。障碍始终是延迟:网络化向量存储的响应时间为几十到几百毫秒,并且当检索本身昂贵时,循环内检索已被证明会使端到端延迟增加高达83×。先前的响应方案管理了这种成本:服务层调度隐藏了它,“记忆优先”的设计将检索限制为每个轮次一次。我们认为成本本身是一个假设,而非定律。延迟是*存储所在位置*的属性,而不是循环内模式的属性;一个进程内存储的响应时间约为100微秒,比网络机制低三个数量级,在这样的速度下,每步开销就消失了。我们基于扩展心智论文来区分这一点:根据对等原则,一个外部资源只有在持续可用、无障碍直接访问且自动被认可时,才构成认知过程——这些标准的前两个我们可以理解为一个*延迟预算*。一个100毫秒的存储是代理*咨询*的工具;一个100微秒的存储,在循环中与其连接并接受咨询,则是扩展的工作记忆。然后我们证明这个前提是*因果*的:在固定每轮记忆延迟预算、仅改变存储回答速度的情况下,冗余行动随存储延迟单调递增——在进程内速度下为0.0/12,在110毫秒云往返中为7.2/12(此时没有一个查找符合预算)(gpt-5-nano, gpt-5-mini;每个梯级五个种子工作负载;精确排列p=0.0079;零守卫错误)——即使500毫秒的预算仍然泄漏1.6/12。我们端到端地演示了这一机制:在四种GPT-5级模型、有界上下文窗口下,召回率从0/5(所有基线和窗口感知运行)提升至3.6–4.8/5,使用循环内记忆,存储操作实时在p50 80–165微秒;一个指示性“每回复复述”基线在这个五事实任务上完美解决,我们报告并分析了这一点——复述每次轮次支付租金,该租金随工作集增长,正是存储所避免的成本。存储从未在任何运行中丢失事实(244次写入中244次保留);所有观察到的缺失都是代理的单一有界读取未能浮现存储的事实——读取策略失败,而非记忆失败。我们的测量也重新定位了瓶颈:主导的每步成本是*嵌入*(网络上约200–400毫秒);将进程内存储与小规模本地嵌入器配对,将完整操作返回至测量到的约40微秒。

## 1 引言

语言代理由一个循环定义:观察,推理,行动,重复。然而,它们所推理的记忆通常被视为循环*外部*的东西——一个代理每个轮次查询一次然后就不管的数据集。本文问的是,当记忆移动*进入*循环时会发生什么:当一个代理可以在其推理的*每一步*上读写一个关联存储,就像访问自己的上下文窗口一样便宜。我们称这种机制为“循环中的记忆”,呼应并扩展了熟悉的“人在回路中”。障碍始终是延迟。网络化向量存储的回答时间为50–200毫秒(第2节);一个代理在每一步都咨询它,会反复支付这一成本,而最近的工作显示循环内检索可能导致端到端延迟增加高达83倍(Yang et al., 2025)。该领域已在两条战线上做出回应。系统工作将检索保留在循环内,并在服务层隐藏其成本:SearchAgent-X(Yang et al., 2025)按优先级调度请求并使检索非阻塞。行业“记忆优先”指南则将记忆移出循环,移入一个在每个轮次开始时查询、结束时更新的层(Mem0, 2026)。两种答案都将存储的延迟视为给定。我们认为这是一个假设,而非定律。使得循环内检索不可行的延迟是*存储所在位置*的属性,而不是循环内模式本身的属性。一个*进程内*存储的回答时间约为100微秒——比网络机制低三个数量级——在这样的速度下,放大了的效果消失了:整个每轮循环内开销测量约为1.7毫秒(表2)。更精确地说,每轮网络开销是S×RTT,线性地取决于代理访问记忆的频率,这就是为什么网络化存储迫使代理*定量配给*检索;一个进程内存储将这种开销驱动到约0并消除了配给。效率文献视为基础的权衡瓦解了;这种底层级别的答案补充而非对立服务层的答案(第3节)。并且这个前提是因果性的,而非相关性的:固定每轮记忆预算,仅改变存储延迟,任务结果本身就会翻转(第6节)。这不仅仅是优化。我们将其建立在扩展心智论文(Clark and Chalmers, 1998)的基础上:一个外部资源只有在持续可用、无障碍直接访问且检索时自动被认可时,才变得*构成*认知。一个100毫秒的网络调用是代理*咨询*的工具;一个100微秒的进程内存储*始终在那里*——它清除了对等原则设定的延迟门槛,并且在循环中与其连接并接受咨询时,成为真正的扩展工作记忆,而非外部数据库(图3)。延迟决定了一个存储是否*有资格*成为代理心智的一部分;循环的布线决定它是否真的成为(第4节)。这是关于记忆作为语言代理认知资源的更广泛工作的第一步。它确立了*何时*记忆可以参与推理:在每一步,一旦检索变得便宜。代理应该保留什么,以及如何组织它所保留的内容,是自然的下一个问题(第11节)。

#### 贡献。(1) 我们将*检索频率*(每轮 vs. 每步)从RAG系统中的服务层旋钮(Fan et al., 2024; Hu et al., 2025b)提升为代理级别的设计轴,并展示存储延迟是其门控因素(第3节)。(2) 我们将对等原则重新解释为一个*工程标准*——一个延迟预算——并论证进程内延迟使外部记忆*有资格*成为构成性工作记忆,而循环的布线使其成为现实(第4节)。(3) 我们展示了存储延迟对任务结果的*因果性*,而不仅仅是墙钟时间(第5节–第6节):在固定每轮记忆预算下,一个脚本化循环守卫从0冗余动作翻转为10/10冗余动作,而一个真实LLM守卫则呈现单调剂量反应——在进程内速度下为0.0冗余,在+15毫秒时1.4–1.6,在+110毫秒(无查找可负担)时为7.2/12(两个模型,每个梯级五个种子工作负载,精确排列p=0.0079,零守卫错误)。(4) 我们端到端地演示了这一机制,对抗审稿人会要求的基线:在GPT-5梯子的所有四个模型、有界窗口下,召回率从0/5(所有基线和窗口感知运行)提升至3.6–4.8/5,使用循环内记忆,存储操作实时在p50 80–165微秒(第6节)。一个指示性“每回复复述”基线在这个五事实任务上达到5/5,超过了这里的记忆工具;我们直白地报告该结果,并展示为什么复述会停止扩展:它支付一个随工作集增长的每轮成本,正是存储所避免的(第6节)。所有观察到的缺失都追溯到代理的读取策略,从未是存储。剩余的瓶颈,网络嵌入,通过一个小型本地嵌入器关闭到一个测量到的约40微秒完整操作(第7节)。

## 2 背景

#### 工作记忆,从认知到上下文窗口。Baddeley–Hitch模型——一个中央执行器协调有限容量缓冲区,后来扩展了一个情节缓冲区(Baddeley and Hitch, 1974; Baddeley, 2000)——是标准透镜。应用于语言代理,LLM扮演中央执行器,上下文窗口扮演缓冲区;其容量限制促使外部化。扩大窗口并不能关闭问题,有三个与大小无关的原因。*租金*:每个窗口令牌在每一步都被重新处理,所以上下文被反复支付,而外部存储以无重复成本持有事实,仅对获取的内容收取微秒费用。*可发现性*:模型可靠地错过深埋在长上下文中间的事实(Liu et al., 2024),而关联检索直接根据含义找到事实。*悬崖*:一个长寿代理最终会超过任何窗口,并且失败是突然的——我们的窗口×事实扫描(第10节)在三个任务族中正好将任务失败定位在事实跨度超过窗口的地方。窗口是工作表面;它不能同时是档案。这一举动有一个生物学先例:Ericsson和Kintsch的*长期工作记忆*(Ericsson and Kintsch, 1995)表明专家通过长期记忆中快速、可靠的检索结构来扩展工作能力——而在这里,正如那里一样,使扩展工作的标准是检索速度。

#### 代理循环与CoALA的内部动作。CoALA(Sumers et al., 2024)将语言代理框架为模块化记忆(工作记忆加情节/语义/程序性长期记忆),由三个内部动作作用:*推理*(更新工作记忆),*检索*(读取长期记忆),和*学习*(写入长期记忆)。CoALA将检索固定为一个动作,但未说明它*多久*可以触发;我们将其作为中心变量。

#### 两个延迟机制。检索延迟聚集为两个相差几个数量级的机制:网络化/磁盘(云向量数据库约110毫秒——一个代表性的跨区域往返,我们在第6节中针对实时Qdrant复现;RAG 50–200毫秒)和进程内/内存中(嵌入式存储报告约0.25毫秒本地扫描(Egoist-Machines, 2025);我们的实时存储操作测量p50 80–165微秒,第6节)。围绕它们的是网络嵌入API(约200–400毫秒,第6节测量)和LLM推理步骤本身(约1秒)。这些机制之间的差距是论证的实质。

## 3 循环中记忆论文

#### 定义(检索频率)。让一个*轮次*是一次用户/环境交互,一个*步骤*是轮次内的一次推理迭代(一次LLM调用)。*每轮检索*每个轮次最多获取一次(经典RAG)。*每步检索*(循环中记忆)可能在每一步读写存储(图1)。

图1:检索频率。左:每轮检索(单次网络获取,然后一个无记忆访问的内循环)。右:循环中记忆——一个进程内存储在每一步被读写。

#### 放大论证及其反转。Yang et al. (2025) 展示了使用循环内检索时,端到端延迟随每步检索延迟而扩展,并且相对于每轮RAG被放大(高达83倍),因为每一步都阻塞在检索上。他们的系统SearchAgent-X保持检索交错,并在服务层消除阻塞:优先级感知调度和无阻塞检索覆盖高召回近似搜索。我们在更底层攻击同一项。他们的测量在网络/磁盘机制下进行,其中放大项S·t_store很大,因为t_store很大。将t_store从约10^2–10^3毫秒减少到约10^-1毫秒(进程内),该术语在没有调度机制的情况下变得微不足道。两种修复都将记忆保留在循环内;它们组合。我们拒绝的是工业“记忆优先”模式,该模式将记忆移出循环,进入每个轮次查询一次的服务(Mem0, 2026)。

#### 成本模型。端到端延迟近似为
E2E ≈ ∑_steps (t_reason + f·(t_embed + t_store)), (1)
其中f是每步检索频率。如果f·(t_embed + t_store) ≪ t_reason,则循环内记忆可行。第6节测量t_store ≈ 100微秒(进程内)对比t_store + RTT(网络),并确认t_embed(网络上约200–400毫秒)是主导的剩余项。

#### 可行性前沿。固定一个预算份额β:记忆最多可以增加端到端时间的一个分数β。每检索成本c = t_embed + t_store,每步推理时间r,可负担的每步频率为
f_max = (β/(1-β))·(r/c). (2)
测量值,在β=0.1且r=1秒时:一个带有本地嵌入器的进程内存储(c≈116微秒)可负担f_max ≈ 953 次检索每步;相同的存储背后是网络嵌入器(c≈202毫秒)可负担0.55;一个云向量存储加网络嵌入器(c≈312毫秒)可负担0.36。低于1,代理甚至不能负担每步一次查找——配给是强制算术,而非设计品味。接近10^3时,每步访问实际上免费(图2)。

图2:可行性前沿:三个记忆栈在10%延迟预算下,每步可负担的循环内检索次数(f_max,对数刻度)。虚线f=1线是悬崖,低于它代理不能负担一次每步查找;进程内+本地嵌入器栈比它高三个数量级,而两个网络栈在约1秒推理步骤时位于它之下(网络嵌入器栈

相似文章

G-Long: 图增强内存管理用于高效长期对话代理

arXiv cs.CL

G-Long 提出了一种用于长期对话代理的图增强内存管理框架,利用微调的小型语言模型进行结构化三元组提取和关联检索,在响应生成和内存检索方面取得了最先进的性能,同时降低了计算开销。

StageMem:面向语言模型的生命周期管理记忆框架

arXiv cs.CL

StageMem 提出了一种面向语言模型的生命周期管理记忆框架,该框架将记忆划分为瞬态、工作状态和持久状态三个阶段,并引入明确的置信度与强度指标,将记忆视为一种有状态的处理流程而非静态存储,从而在容量受限的条件下更精准地管理信息的保留与遗忘。