PYTHALAB-MERA:面向冻结LLM代码代理的验证驱动记忆、检索与接受控制
摘要
本文介绍了 PYTHALAB-MERA,这是一种用于冻结本地大语言模型(LLM)的外部控制器,通过基于验证的记忆和检索机制来提升代码代理的性能。与自我修正基线方法相比,该方法利用执行反馈和时间差分学习,在严格验证任务中展现出更高的成功率。
arXiv:2605.08468v1 发布类型:新论文
摘要:基于本地大语言模型的代码代理越来越多地在依赖执行反馈、持久化状态和有限修复而非单次流畅回答来获得正确性的环境中工作。静态检索、长上下文提示、自我修正、基于执行反馈的修复以及对模型权重的强化学习,各自解决了该环境中的部分问题,但它们未能围绕冻结的本地模型联合提供基于验证的情境记忆、自适应的检索-动作选择、延迟信用分配以及结构化的技能复用。我们提出了 PYTHALAB-MERA,这是一种用于本地验证条件代码生成的轻量级外部控制器。冻结的语言模型提出完整的源代码文件;控制器决定哪些记忆记录和基于抽象语法树(AST)的技能应进入下一个提示,通过快速失败管道验证每个候选方案,将验证结果转化为有界塑形奖励,并通过类 TD(lambda) 的资格迹传播延迟信用。我们在具有严格验证关卡的强化学习代码任务上,将其实实现评估为本地命令行工具。在测量的硬 RL 设置中(包含三个任务、三次重复和三次尝试预算),PYTHALAB-MERA 通过了 8/9 的严格验证;而自我修正基线和方法中研究的 GRACE 扩展均通过了 0/9。这些结果支持了一个谨慎界定的主张:在这一记录的场景中,外部的记忆与检索控制器提升了验证成功率。这些结果并未建立通用代码合成能力、最先进的性能、形式化程序正确性或形式化安全性。
查看缓存全文
缓存时间: 2026/05/12 06:48
# PYTHALAB-MERA:面向冻结 LLM 编码代理的验证接地式记忆、检索与接受控制
来源:https://arxiv.org/html/2605.08468
11institutetext:PythaLab,伊尔迪兹理工大学
11email:miscan@yildiz\.edu\.tr###### 摘要
基于本地大语言模型(LLM)的编码代理越来越多地工作在这样一种环境中:正确性是通过执行反馈、持久状态和有界修复获得的,而不是通过单次流畅的回答获得的。静态检索、长上下文提示、自我修正、基于执行反馈的修复以及针对模型权重的强化学习各自解决了这一环境中的部分问题,但它们并未共同围绕一个冻结的本地模型提供验证接地式的情景记忆、自适应检索-动作选择、延迟信用分配以及结构化技能复用。我们介绍了 **PYTHALAB-MERA**,这是一种用于本地验证条件代码生成的轻量级外部控制器。冻结的语言模型提出完整的源文件;控制器决定哪些记忆记录和基于抽象语法树(AST)衍生的技能应进入下一个提示,通过快速失败(fail-fast)流水线验证每个候选方案,将验证结果转换为有界的塑形奖励(shaped rewards),并通过 TD(λ) 风格的资格迹(eligibility traces)传播延迟信用。我们将该实现作为一个本地 CLI 工件进行评估,用于具有严格验证门控的强化学习编码任务。在包含三个任务、三次重复和三次尝试预算的测量硬 RL 设置中,**PYTHALAB-MERA** 通过了 9 次严格验证中的 8 次;自我修正基线和所研究的 **GRACE** 扩展均通过了 0/9。这些结果支持一个刻意受限的声明:在该记录设置中,外部记忆与检索控制器提高了验证成功率。它们并未确立通用代码合成、最先进的性能、形式程序正确性或形式安全性。
## 1 引言
基于 LLM 的编码代理越来越多地用于长视界、工具中介的软件工作流中,在这种工作流中,一个看似合理的单次输出是不够的。生成的程序必须满足接口契约、导入约束、运行时行为和特定任务的测试;一步中的失败会影响后续步骤所需的上下文。关于有状态代码代理基准、软件工程代理和原生终端编码系统的最新工作表明,代理性能强烈依赖于维护任务状态、执行证据和结构化上下文,而不仅仅是用更多文本扩展提示 \[29 (https://arxiv.org/html/2605.08468#bib.bib29), 6 (https://arxiv.org/html/2605.08468#bib.bib6), 38 (https://arxiv.org/html/2605.08468#bib.bib38), 39 (https://arxiv.org/html/2605.08468#bib.bib39)\]。在这种设置下,核心问题不仅是代码生成,还有控制:代理必须决定保留哪些证据、信任哪些错误信号、回忆哪些先前的尝试,以及候选方案何时达到外部定义的接受条件。
单次生成的局限性现已得到充分记录。迭代自我修复可以提高相对于单次生成的通过率,但未引导的自我修正仍然容易受到模型内部幻觉和弱反馈接地性的影响 \[30 (https://arxiv.org/html/2605.08468#bib.bib30), 14 (https://arxiv.org/html/2605.08468#bib.bib14)\]。基于执行反馈的方法通过向模型返回编译器诊断、运行时故障、单元测试结果或行为反馈提供了更强的信号 \[31 (https://arxiv.org/html/2605.08468#bib.bib31), 5 (https://arxiv.org/html/2605.08468#bib.bib5)\]。然而,许多基于执行反馈的系统仍然使用静态提示规则或手动设计的修复循环。相反,针对代码生成的强化学习方法通常使用基于执行的奖励来更新生成器本身 \[15 (https://arxiv.org/html/2605.08468#bib.bib15), 47 (https://arxiv.org/html/2605.08468#bib.bib47)\],这在计算上可能昂贵,对于小型本地跟踪不稳定,并且在保护隐私的本地设置中难以部署。这为那些在保持语言模型冻结的同时自适应使用验证反馈的架构留下了空白。
记忆和检索给问题增加了第二个维度。检索增强程序修复、AST 引导修复、仓库级 RAG 和经验记忆系统表明,先前的代码、故障跟踪和结构化上下文可以改善修复或维护工作流 \[35 (https://arxiv.org/html/2605.08468#bib.bib35), 36 (https://arxiv.org/html/2605.08468#bib.bib36), 37 (https://arxiv.org/html/2605.08468#bib.bib37), 1 (https://arxiv.org/html/2605.08468#bib.bib1), 3 (https://arxiv.org/html/2605.08468#bib.bib3)\]。然而,当效用取决于当前的故障模式、尝试索引、验证进度和下游结果时,被动的最近邻检索是不够的。因此,代理 RAG 被框定为一个序列决策过程,其中检索是一个状态依赖的动作,而不是预处理步骤 \[2 (https://arxiv.org/html/2605.08468#bib.bib2)\]。**PYTHALAB-MERA** 遵循这种解释,但将其专门用于本地代码修复:检索动作选择与故障匹配的示例、AST 结构匹配、技能或不使用上下文,并且这些动作使用基于验证的奖励进行更新。
使记忆重用的持久性也引入了风险。记忆中毒、陈旧记录、通过回忆证据进行的提示注入以及来自私有检索存储的泄漏是长期 LLM 代理的已知关注点 \[32 (https://arxiv.org/html/2605.08468#bib.bib32), 33 (https://arxiv.org/html/2605.08468#bib.bib33), 34 (https://arxiv.org/html/2605.08468#bib.bib34), 11 (https://arxiv.org/html/2605.08468#bib.bib11)\]。因此,增强记忆的编码代理不应将召回的代码片段视为权威。在 **PYTHALAB-MERA** 中,召回的情景和提取的技能仅作为不受信任的提示证据插入;正确性通过快速失败验证流水线外化。这并未提供形式安全性,但它防止了记忆相似性或模型置信度作为接受标准。
本文提出了一种本地验证条件编码代理架构 **PYTHALAB-MERA**,其核心是一个围绕冻结 LLM 的轻量级外部控制器。该方法围绕四个原则构建。首先,只有当生成的代码达到验证器定义的零成本终止集时,才被接受。其次,记忆检索是由 LinUCB 控制器选择的情境动作,而不是固定的最近邻查找。第三,验证结果转换为有界塑形奖励,并使用 TD(λ) 风格的延迟信用沿修复轨迹向后传播。第四,成功的程序被挖掘到基于 AST 衍生的技能库中,但在未来的生成候选方案通过验证之前,技能仍然不受信任。
贡献如下:(i) 我们将带有冻结 LLM 的本地代码修复形式化为关于提示证据、记忆检索、奖励和接受的有限视界验证条件控制问题。(ii) 我们实现了一个控制器,结合确定性情景指纹、LinUCB 检索动作选择、验证塑形奖励、资格加权延迟信用和基于 AST 衍生的技能复用。(iii) 我们陈述了一个狭窄的零成本接受属性,将接受与实现的验证器定义终止集联系起来。(iv) 我们报告了针对自我修正基线和所研究 **GRACE** 扩展的本地基准证据。(v) 我们刻意限制经验性声明,将支持的本地结果与关于通用合成、形式正确性、形式安全性或最先进性能的不支持声明分开。
我们使用项目限定名称 **PYTHALAB-MERA** 而不是通用的 MERA 缩写,以便使所提出的工件更容易与不相关的缩写用法区分开来。该名称强调了实际贡献:PythaLab 实现围绕冻结本地生成器的记忆增强检索和验证器定义接受控制。
我们使用 **GRACE** 表示一个被研究的附加扩展,即 Gap-aware Repair And Consolidation Engine(间隙感知修复与巩固引擎)。在此实现中,**GRACE** 在 **PYTHALAB-MERA** 控制器之上添加了意图-执行间隙修复指导、AST 差异修复建议和分数阈值过渡巩固。它不是提出的最终方法;它作为负面结果比较臂被保留。
## 2 方法
### 2.1 方法框架
**PYTHALAB-MERA** 是一个受强化学习启发的本地验证条件代码生成的侧边控制器。冻结的语言模型表示为 $G_{\omega}$,其中 $\omega$ 是固定参数。与执行接地代码生成的模型调优方法不同 \[47 (https://arxiv.org/html/2605.08468#bib.bib47), 15 (https://arxiv.org/html/2605.08468#bib.bib15), 4 (https://arxiv.org/html/2605.08468#bib.bib4)\],**PYTHALAB-MERA** 不更新生成器:
$$ \omega_{t+1}=\omega_t=\omega. \quad (1) $$
自适应对象是一个外部控制器状态,
$$ \Theta_t=\left(B_t^{\mathrm{ret}},M_t,L_t,\mathcal{T}_t,B_t^{\mathrm{dec}}\right), \quad (2) $$
其中 $B_t^{\mathrm{ret}}$ 是 LinUCB 检索动作控制器,$M_t$ 是情景记忆,$L_t$ 是基于 AST 衍生的技能库,$\mathcal{T}_t$ 是延迟信用迹状态,$B_t^{\mathrm{dec}}$ 是可选的解码配置文件 bandit。因此,主要学习问题不是词元级的语言建模,而是关于提示条件、记忆和验证反馈的控制器级适应。这种分离与将记忆和控制外化而不是将所有适应嵌入 LLM 的代理架构相一致 \[40 (https://arxiv.org/html/2605.08468#bib.bib40), 51 (https://arxiv.org/html/2605.08468#bib.bib51), 65 (https://arxiv.org/html/2605.08468#bib.bib65)\]。
参见图注 图 1:**PYTHALAB-MERA** 验证接地控制循环。冻结的生成器提出候选程序,而外部控制器选择检索证据,验证候选方案,并将验证反馈转换为记忆和信用更新。图 1 (https://arxiv.org/html/2605.08468#S2.F1) 将生成与控制分开。任务描述和当前目标文件首先压缩为状态指纹。然后 LinUCB 检索控制器选择提示证据动作:无检索、故障匹配情景、AST 结构匹配、可复用技能或这些小来源的混合。检索到的情景和技能被视为不受信任的上下文,而不是正确性证据。冻结的 LLM 接收组合提示并发出候选实现。接受仅由快速失败验证流水线决定。由此产生的成功、部分进度、故障类型和运行时成本转换为有界奖励/成本信号;这些信号更新检索控制器、情景记忆、AST 技能存储和 TD(λ) 风格延迟信用迹。因此,**PYTHALAB-MERA** 学习如何条件化未来提示而不改变 LLM 权重。
### 2.2 任务、状态与动作
任务实例由自然语言请求 $q$、本地工作空间 $W$ 和目标实现文件 $x_t$ 组成。在实现的工件中,目标文件是一个名为 `algorithm.py` 的单个 Python 文件。代理有一个尝试预算 $T$。在尝试 $t$ 时,控制器观察到
$$ s_t=\left(q,x_t,H_t,F_{t-1},M_t,L_t,c_t\right), \quad (3) $$
其中 $H_t$ 是保留的交互历史,$F_{t-1}$ 是之前的验证报告,$M_t$ 是情景记忆,$L_t$ 是技能库,$c_t$ 是紧凑的上下文键,编码任务族、模型身份、编辑模式、先前故障类型、先前验证进度和粗略持续时间桶。
动作分解为可选解码控制、检索控制和生成的代码:
$$ a_t=\left(a_t^{\mathrm{dec}},a_t^{\mathrm{ret}},a_t^{\mathrm{gen}}\right). \quad (4) $$
核心 **PYTHALAB-MERA** 决策是 $a_t^{\mathrm{ret}}$,它决定是否将下一个提示条件化为故障匹配记忆、AST 结构匹配、技能、这些的混合或无检索上下文。提示组合器是确定性的:
$$ P_t=\Gamma\left(q,x_t,H_t,F_{t-1},R_t,S_t\right), \quad (5) $$
其中 $R_t$ 表示选定的情景记录,$S_t$ 表示选定的技能。然后冻结模型产生文本,控制器提取 Python 候选方案:
$$ y_t=G_{\omega}\left(P_t\right), \quad \hat{x}_t=\mathcal{E}\left(y_t\right), \quad (6) $$
其中 $\mathcal{E}$ 是围栏代码提取算子。如果提取成功,评估的直接循环在验证之前将 $\hat{x}_t$ 实例化为目标文件:
$$ x_{t+1}=\hat{x}_t. \quad (7) $$
因此,**PYTHALAB-MERA** 对接受进行验证门控,但评估循环不是预实例化暂存系统。这种区别很重要,因为接受安全性和写入时安全性是不同的声明。
作为组织控制器信号的设计目标,有限视界控制器可以写为折扣成本最小化问题,
$$ \min_{\pi_{\Theta}}\;J\left(\pi_{\Theta}\right)=\mathbb{E}_{\pi_{\Theta},G_{\omega}}\left[\sum_{t=0}^{T-1}\gamma^tC_t\right], \qquad 0\leq\gamma\leq 1, \quad (8) $$
其中 $C_t$ 表示验证定义的成本。实现不需要该目标的精确动态规划解决方案。相反,在线学习者接收有界塑形奖励信号:
$$ \max_{\pi_{\Theta}}\;\mathbb{E}_{\pi_{\Theta},G_{\omega}}\left[\sum_{t=0}^{T-1}\gamma^tr_t\right]. \quad (9) $$
方程 (9 (https://arxiv.org/html/2605.08468#S2.E9)) 中的奖励视图仅当 $r_t$ 是 $C_t$ 的仿射递减变换时才与成本视图等效。在实现的系统中,$r_t$ 是实际的验证塑形学习信号,定义如下,而 $C_t^{\mathrm{acc}}$ 用于接受属性。因此,实现的学习器应用在线 bandit 和延迟信用更新,而不是全局求解有限视界目标。
转换动态由黑盒生成器、工作空间和验证器诱导。**PYTHALAB-MERA** 不学习关于程序的转换模型,也不声称对完整程序生成过程进行最优控制。
### 2.3 预处理和数据准备
控制器使用的数据是从每次修复尝试在线产生的。没有离线监督训练集,也没有模型权重更新。相反,每次尝试通过四个预处理步骤转换为紧凑的控制记录。首先,模型响应由提取器 $\mathcal{E}$ 解析;不可提取的响应转换为提取失败报告,而不是被静默丢弃。其次,目标文件或候选代码被解析为基于 AST 衍生的结构特征。第三,验证报告被规范化为主要故障类、通过的检查计数、持续时间和行为故障标志。第四,任务和代码被转换为用于检索和记忆持久化的指纹 $\zeta_t$。
此预处理阶段很重要,因为它将原始文本与控制证据分开。控制器从不...相似文章
MemGym:面向LLM智能体的长时记忆环境
MemGym是一个基准测试,用于评估LLM智能体在长时任务中的记忆形成,它统一了现有的智能体gym和合成流水线,并采用记忆隔离得分。它涵盖工具使用对话、多轮搜索、编码和计算机使用,并包含一个轻量级奖励模型(MemRM)以实现高效评估。
面向长周期LLM智能体的选择性记忆保留
本文提出TraceRetain,这是一个用于冻结LLM智能体中绑定外部存储的轻量级框架,表明选择性记忆保留主要在记忆流包含噪声时与缓存启发式方法区分开,从而带来任务成功率和效率的提升。
RecMem:基于重复的记忆整合方法,用于高效且有效的长期运行LLM智能体
RecMem是一种基于重复的记忆整合方法,适用于长期运行的LLM智能体,通过仅在语义相似的交互重复出现时调用LLM,可减少高达87%的令牌消耗,同时提高准确性。
ActiveMem:面向长程LLM推理的分布式主动记忆
ActiveMem提出了一种分布式主动记忆系统,将智能体记忆与大模型核心推理过程解耦,在长程任务上实现了最先进的准确率,同时显著降低了开销。
ElasticMem:作为LLM智能体可学习资源的潜在记忆
ElasticMem 为 LLM 智能体引入了一种可学习的潜在记忆机制,该机制能够自适应地为检索到的记忆分配可变预算,从而在减少 token 成本的同时,提升内存密集型问答和具身智能体任务的性能。