← 返回 2026-01-12

将反馈蒸馏为工具化记忆:通过文件系统记忆摊销推理时推理成本 Distilling Feedback into Memory-as-a-Tool

Víctor Gallego 📅 2026-01-09 👍 3 2026-07-13 08:35
工具调用 持续学习 推理时推理 自我改进 记忆增强生成

用文件系统记忆存储反馈,摊销推理时自我纠错的计算成本

前置知识

记忆增强生成 (Memory-Augmented Generation)

记忆增强生成是一种扩展大语言模型(LLM)能力的范式,通过引入外部存储系统使模型能够在推理过程中保存和检索信息。传统LLM受限于固定长度的上下文窗口,无法跨会话保留信息。记忆增强方法通过向量数据库、文件系统或键值存储等外部机制,让模型能够积累长期知识。在本文中,记忆被实现为基于文件的持久化存储,LLM通过工具调用(ls、read_file、write_file)主动管理记忆内容,实现从具体反馈到抽象原则的知识提炼。

本文的核心创新在于将记忆从被动的向量检索转变为主动的文件管理,理解记忆增强生成的基本概念是理解本文方法论的前提。

工具调用 (Tool Calling)

工具调用是指大语言模型生成结构化输出以触发外部工具执行的能力。模型不仅能生成文本,还能决定何时调用特定工具(如搜索、计算、文件操作)来获取信息或执行动作。在本文中,LLM通过工具调用与文件系统交互,执行ls命令列出记忆目录、read_file读取相关记忆、write_file创建新记忆文件、edit_file更新现有记忆。这将记忆管理转化为一个代理推理任务,LLM需要主动决定何时读取和写入记忆。

工具调用是本文方法的操作基础,理解LLM如何通过工具与外部系统交互是理解Memory-as-a-Tool框架的关键。

自我纠错 (Self-Critique / Reflexion)

自我纠错是一种推理时技术,LLM生成初始输出后,由同一或另一个模型对输出进行批评和评估,然后根据反馈进行修订。例如Self-Refine方法通过迭代的批评-修订循环显著提升推理和生成任务的性能。Reflexion则通过语言强化学习让代理从失败中学习。然而,这些方法的关键局限是其计算开销——每个查询都需要重复完整的推理过程,且批评信号在上下文重置后就会丢失。

自我纠错是本文要解决的核心问题之一,本文的目标正是要摊销自我纠错的高计算成本,将临时的批评信号转化为持久化的可检索指导。

测试时推理 (Test-Time Compute / Inference-Time Reasoning)

测试时推理是指在模型推理阶段通过增加计算资源来提升输出质量的技术。这包括思维链(Chain-of-Thought)推理、迭代搜索、自我纠错等方法。研究表明,通过增加测试时计算,模型能够实现远超零样本性能的推理能力。然而,这种优势伴随着高计算成本,因为推理过程必须为每个新查询从头开始重复执行。

本文的核心动机就是解决测试时推理的高成本问题,通过记忆机制将一次性的推理投资转化为可复用的知识资产。

持续学习 (Continual Learning)

持续学习是指模型在一系列任务上连续学习,同时保留之前任务知识的能力。传统的机器学习方法在新任务上训练时容易发生灾难性遗忘。本文通过文件系统记忆实现了一种形式的持续学习,让LLM在多个任务序列中积累和检索知识,同时通过有意义的文件名和结构化内容最小化任务间的干扰。

本文的实验设置涉及持续学习场景,模型需要在多个相关任务中积累知识,理解持续学习的概念有助于理解实验设计和评估方式。

Pareto最优 (Pareto Optimality)

Pareto最优是一种多目标优化概念,指在不恶化至少一个目标的情况下无法改善任何目标的状态。在本文中,Pareto前沿用于分析成本和性能之间的权衡——每个方法代表成本-性能空间中的一个点,Pareto前沿连接了所有非支配解。本文声称其Memory + Feedback方法位于成本-性能权衡的Pareto最优位置。

理解Pareto最优有助于理解本文如何评估方法的成本效益,以及为什么摊销反馈比每次推理时自我纠错更优。

研究动机

当前测试时推理技术(如Self-Refine、Reflexion、思维链推理)虽然能显著提升LLM输出质量,但面临严重的计算效率问题。具体而言,自我纠错方法通常需要将每个查询的token数量增加两到三倍(生成+批评+修订),这意味着每次推理都需要重复完整的推理过程。例如,一个使用Self-Refine的系统在处理每个新查询时,必须先生成草稿,再进行批评评估,最后修订输出,整个过程从头开始进行。更关键的是,这种推理是临时性的——批评中包含的学习信号在上下文重置后就会丢失,模型在处理后续查询时无法利用之前学到的改进知识。这导致了一个严重的冗余问题:模型经常重复推导相同的洞察或修正,相当于在上下文窗口关闭的瞬间'遗忘'了其改进。虽然微调可以持久化这些行为,但成本高昂且缺乏灵活性,无法快速适应新的用户定义规范或评分标准。

本文的目标是本文旨在建立一个框架来摊销推理时推理的高成本,具体目标是将临时评估器反馈转化为持久化、可检索的指导原则。作者提出了一种名为'Distilling Feedback into Memory-as-a-Tool'的方法,让语言模型能够将评估器生成的批评信号蒸馏并存储在基于文件的记忆系统中。核心目标是实现'一次学习,多次应用'——在学习阶段承担反馈的成本,然后在所有后续任务中只需承担检索相关记忆的轻微成本。具体来说,作者希望证明这种方法能够让LLM在保持低成本推理(接近零样本基线)的同时,达到与高成本自我纠错方法相当的性能水平。

与已有工作不同的是,本文的独特切入角度在于将记忆管理视为一个代理推理任务,而非被动的信息检索过程。与传统的检索增强生成(RAG)依赖向量数据库进行语义搜索不同,本文方法要求LLM主动推理应该检索什么,通过有意义的文件名来组织和检索记忆。这种方法将记忆从原始交互日志的噪声积累转化为一个策划的'经验教训'日志,通过抽象化过程将具体反馈提炼为通用规则。此外,与现有的优化规范方法(如MetaSC、SSC)相比,本文将规范视为动态记忆对象而非静态提示词,使模型能够通过工具调用明确读写,实现跨不同会话的知识持续积累。这种文件系统方法还提供了人类可解释、可检查、可调试的记忆,为记忆管理提供了透明的替代方案。

核心方法

本文方法的核心直觉是:既然测试时推理(如自我纠错)能提升性能但成本高昂,何不将其投资一次性固化到持久化记忆中,从而在后续任务中以极低成本复用这些'经验教训'?技术路线建立在概率形式化框架之上:对于标准自我纠错,模型生成草稿 x_0,评估器基于评分标准 R 提供反馈 c ~ p(c|x_0, R),然后精炼输出 x' ~ p(x'|x_0, c)。本文引入持久化记忆状态 M,将过程分解为三步:(1) 为任务 z_i 生成响应 x_i ~ p(x_i|z_i);(2) 评估器提供反馈 feed_i ~ p_eval(feed_i|x_i, R);(3) LLM决定更新记忆 M' ~ p(M'|M, feed_i, x_i)。测试时,LLM在生成响应前先检索相关记忆:x' ~ p(x'|z, M')。这个框架将临时的批评信号转化为可重用的知识资产。

本文的核心创新在于将记忆实现为基于文件的持久化系统,通过工具调用(ls、read_file、write_file、edit_file)进行管理,而非传统的向量数据库语义搜索。本质区别体现在三个层面:首先,检索机制上,要求LLM主动推理应该检索什么,通过有意义的文件名(如'review creative rubric.txt'而非'note 1.txt')进行语义组织;其次,记忆内容上,不存储原始反馈,而是将具体批评提炼为通用规则,实现从情节记忆到语义记忆的转化;最后,更新策略上,LLM需要决定是创建新文件还是更新现有文件,实现知识去重和矛盾解决。这种文件系统方法将记忆管理转化为一个代理推理任务,LLM需要主动决定何时读取、写入以及如何组织记忆内容。

方法步骤详情

Memory-as-a-Tool协议包含两个核心操作:检索和蒸馏。检索操作 x ~ p(·|z, M) 分为两步:首先,LLM调用 ls(path='/memories/') 列出可用文件,这要求模型维护语义有意义的文件名;然后,根据文件名和当前任务 z,模型选择相关文件并调用 read_file(path) 读取内容,检索到的记忆内容 m 作为工具结果返回到LLM上下文中,用'经验教训'为模型做好准备。蒸馏操作 M' ~ p(·|M, feed) 也分为两步:首先,LLM将原始反馈(如'你在第2段未能使用联觉语言')抽象为可泛化的策略(如'关键原则:优先使用联觉混合——声音的颜色、味道的声音');然后,LLM决定是通过 write_file 创建新文件还是通过 edit_file 更新现有文件,这允许代理去重知识并解决新旧反馈之间的矛盾。

技术新颖性

本文的技术新颖性体现在多个层面。首先,记忆管理方式的创新:与传统RAG依赖被动语义搜索不同,本文将记忆管理视为主动的代理推理任务,LLM通过文件系统操作明确控制存储和检索。其次,知识转化机制的创新:引入从情节记忆到语义记忆的抽象化过程,将具体反馈转化为通用规则,确保记忆保持为策划的知识库而非噪声日志。第三,成本摊销视角的创新:将推理时推理视为一次性投资,通过记忆机制将'思考'的计算成本一次性支付,然后在所有未来任务中收获收益。第四,评估框架的创新:引入Rubric Feedback Bench,一个包含42个精心策划场景的新数据集,用于研究基于结构化反馈的学习。最后,实验设置的创新:在持续学习和混合任务场景中评估方法,展示跨任务边界的知识泛化能力。

High-level overview of the proposed framework
Figure 1: High-level overview of the proposed framework

实验结果

本文在Rubric Feedback Bench上进行了三组核心实验,结果表明Memory + Feedback方法能够有效摊销推理时推理的成本。在持续学习实验中(H=3任务序列,5个类别,每模型15个例子),自我纠错基线虽然起始性能高,但保持静态且推理成本高;Memory + Feedback方法从基线性能开始,经过仅两轮反馈后就达到或超过自我纠错性能,其中Claude Sonnet 4.5展现出最陡峭的学习曲线。在长序列混合任务实验中(H=12,Claude Sonnet 4.5),记忆代理最终得分0.78±0.10,显著高于无反馈基线的0.52±0.25,方差也更低,展示了跨任务边界的知识泛化能力,代理在实验结束时积累了8个记忆文件。成本效率分析表明,Memory + Feedback方法在成本-性能Pareto前沿上占据更优位置,以接近基线的成本达到与自我纠错相当的性能。

Aggregated judge scores on the mixed-task long-horizon experiment (H = 12)
Table 2: Aggregated judge scores on the mixed-task long-horizon experiment (H = 12)
Comparison of agentic scaffolding implementations used across model families
Table 3: Comparison of agentic scaffolding implementations used across model families
Prompt templates used by the evaluator LLM to assess generated responses
Table 4: Prompt templates used by the evaluator LLM to assess generated responses
Learning trajectories on Rubric Feedback Bench
Figure 2: Learning trajectories on Rubric Feedback Bench
Cost-Score Pareto Frontier (Claude Sonnet 4.5)
Figure 3: Cost-Score Pareto Frontier (Claude Sonnet 4.5)
查看结构化数据
任务指标本文基线提升
持续学习 (H=3, 5类别, 每模型15例子) 标准化评分 (0-1) Memory + Feedback: 两轮反馈后达到/超过自我纠错性能 自我纠错: 静态高成本; 零样本: 低性能 两轮反馈后匹配自我纠错,推理成本显著降低
长序列混合任务 (H=12, Claude Sonnet 4.5) 平均评分 ± 标准差 0.78 ± 0.10 0.52 ± 0.25 (无反馈基线) 提升0.26,方差降低60%
成本效率 (Claude Sonnet 4.5 Pareto前沿) 每任务平均成本 vs 平均得分 接近基线成本的高性能 自我纠错: 高成本高性能; 零样本: 低成本低性能 Pareto最优位置,成本摊销效果显著

局限与改进

本文存在几个重要局限性。首先,检索机制依赖LLM基于文件名的推理而非语义搜索,虽然增强了可解释性,但当记忆命名空间增长到数千个文件时可能面临可扩展性挑战,需要更复杂的混合检索策略。其次,实验规模相对较小,持续学习实验仅涉及H=3的任务序列,长序列实验也仅到H=12,而真实部署可能涉及数千个情节,长期可能需要更高级的检索层次或主动遗忘机制。第三,记忆蒸馏过程的抽象化可能丢失具体反馈中的重要细节,过度泛化可能导致记忆过于抽象而失去实用性。第四,评估依赖于LLM作为评判者,评判模型(Claude的另一变体)可能存在系统性偏差,影响评估的公平性。此外,混合任务实验仅使用Claude Sonnet 4.5,方法对其他模型的泛化性需要更多验证。

独立分析的弱点

本文存在几个值得关注的弱点。首先,纯文件名检索机制在规模化时存在明显瓶颈:当记忆文件数量增加时,LLM可能难以从数百个文件名中准确识别相关记忆,特别是当任务边界模糊或命名不够精确时。改进方向可以是引入分层文件结构(模仿人类在大型仓库中的信息组织方式)或混合检索策略(结合文件名语义和嵌入相似度)。其次,记忆蒸馏的抽象化过程缺乏质量控制机制:LLM可能过度泛化丢失关键细节,或创建过于具体难以复用的记忆。可以引入人类参与的记忆审核流程,或建立记忆质量评估指标。第三,实验仅在5个任务类别上进行,每类别仅3个任务,样本量较小可能限制结果的统计显著性。第四,方法依赖商业API(Claude Sonnet 4.5、GPT-5.1、Gemini 3 Pro),多次LLM调用的成本较高,限制了方法的可及性。

未来方向

作者提出了几个重要的未来研究方向。首先,针对可扩展性挑战,建议实现分层文件结构,要求代理执行递归目录遍历(发出顺序ls命令导航嵌套类别),模仿人类专家如何在大型仓库中高效定位信息而不使上下文窗口过载。其次,针对长期部署,建议探索更高级的检索层次或主动遗忘机制,防止上下文污染和记忆文件过多。基于本文成果,可以延伸的研究方向包括:(1) 结合向量数据库的混合记忆系统,利用文件名的可解释性和嵌入的语义丰富性;(2) 引入记忆修剪策略,自动识别和删除过时或低价值的记忆;(3) 探索多代理协作记忆,多个代理共享和协调记忆空间;(4) 研究记忆的迁移学习,将一个任务类别中学到的记忆应用到相关但不同的类别;(5) 开发记忆质量评估框架,量化记忆的有效性和复用性。

复现评估

本文在可复现性方面提供了较好的支持。代码已在GitHub开源(github.com/vicgalle/feedback-memory-as-a-tool),数据集也已发布在HuggingFace(hf.co/datasets/vicgalle/rubric-feedback-bench)。然而,完全复现存在几个挑战:(1) 评估使用了三个商业API模型(Claude Sonnet 4.5、GPT-5.1、Gemini 3 Pro),多次LLM调用的成本较高;(2) 评判模型使用了Claude的另一变体,具体版本未完全公开;(3) 混合任务长序列实验仅使用Claude Sonnet 4.5,未在其他模型上验证;(4) 记忆内容和系统提示的具体实现细节可能因模型差异而影响结果。总体而言,框架的核心思想(将反馈蒸馏为文件记忆)是可复现的,但具体实现和性能可能因模型和配置不同而有所差异。