Long Context Processing Method for Agent

30 Oct 2025 LLM, Agent, and Note

MemAgent: Reshaping Long-Context LLM with Multi-Conv RL-based Memory Agent

思路很简单:让 LLM 能够逐块处理文本,将关键信息存入一个固定大小的memory中,从而在理论上处理任意长度的输入,同时保持计算复杂度为线性。

工程设计

当文本太长,超过模型上下文窗口时,MemAgent 将其分解为更小的文本块(chunks)进行迭代处理。其工作流程如下:

这个设计的关键优势在于,无论原始文档有多长,LLM 在每一步处理时面对的输入长度始终是大致固定的(query + text section + memory),因此计算成本与文本总长度成线性关系,而非平方关系。

这个思路其实很传统,类似的迭代优化方法(Iterative Refine),每次将 summary(i-1) + chunk (i) 做总结,从第二步开始 LLM 调用的输入长度就是基本固定的了(L_summary + L_chunk)。MemAgent 的方法是假设了传统方法的 summary 会越来越长的情况(才会有平方关系)。

训练方法

使用了一种基于可验证结果的强化学习(RLVR)方法来训练 MemAgent。这意味着模型的学习信号来自于最终任务的完成情况(例如,问答是否正确),而不是每一步操作的对错。

Multi-Conv DAPO: 提出了一种对 DAPO (Direct Advantage Policy Optimization) 算法的扩展。传统的 Agent 训练通常将多轮对话历史简单拼接起来,这在处理长文本时会变得非常低效和不灵活。Multi-Conv DAPO 则支持将每次与文本块的交互视为一次“独立对话”,模型可以并行处理多个这样的交互,从而高效地进行端到端优化。

这种 Reward 设计使模型拥有长期规划能力,即在处理早期文本块时,就能判断哪些信息对最终回答问题可能有帮助,并将其保留在记忆中。

Performance

除了文中语义丰富、流畅度较好的自然语言文本的例子外,记忆的积累与更新对 长代码文件、代码片段与对话类文本的混合 都有较好的表现。

Comments