跳转至

REFLEX: Reflective Evolution from LLM Experience

会议: NeurIPS 2026
arXiv: 2606.16496
OpenReview: https://openreview.net/forum?id=ZzfhnQtTqh
代码: https://github.com/wangpan-ustc/REFLEX
领域: LLM Agent
关键词: 程序化策略, 进化搜索, 多模态大模型, 批评者-行动者解耦, 技能记忆库

一句话总结

REFLEX 提出了一个无需训练的程序化策略进化搜索框架,通过多轮诊断链解耦视觉批评者与纯文本行动者,并结合可根据适应度增量动态更新效用的持久化技能记忆库与 UCB1 算子老虎机,实现了高效可追溯的策略代码演化与跨任务迁移。

研究背景与动机

深度强化学习在复杂连续控制任务中取得了显著成功,但所学策略多表现为高维黑盒神经网络,不仅难以解释与形式化验证,在出现安全故障时也缺乏有效的人工打补丁手段。与黑盒网络相比,程序化策略将控制律显式表达为人类可读的源代码,在保留符号控制可解释性与安全审计性的同时具备良好的表达力。近期,多模态大语言模型(MLLM)被引入进化算法作为代码变异算子,例如 MLES 框架利用多模态行为证据(Behavioral Evidence, BE)引导种群搜索。

然而,现有 MLLM 辅助进化系统(如 MLES)普遍采用单次端到端生成调用,要求同一个大模型在单次上下文内同时解析复杂的视觉时空轨迹图、推断潜在失败机理,并直接重写生成修复代码。这种诊断与修复纠缠(Diagnosis–Repair Entanglement)机制构建了一个高度不透明的反馈回路:当变异生成的子代策略性能下降时,研究者无法审计到底是视觉感知误判了物理轨迹异常,还是行动者生成了包含语法或逻辑缺陷的代码。此外,现有进化框架中的可复用知识通常被隐式固化在完整程序或纯文本反思日志中,缺乏细粒度的代码片段级记忆与量化效用反馈机制,导致先前搜索中积累的高效代码启发式算子难以在不同任务间持久复用。

本文的切入角度是将进化搜索中的视觉感知诊断与代码修补解耦,并把代码演化中验证有效的局部算法逻辑结构化存取。核心 idea:构建解耦视觉 Critic 诊断与文本 Actor 编程的多轮诊断链,并引入基于适应度增量量化效用的持久化技能记忆库,使程序化策略的变异轨迹全程可解释、可归因且支持跨任务知识迁移。

方法详解

整体框架

REFLEX 面向程序化策略搜索问题,目标是在代码程序空间 \(\mathcal{P}\) 中最大化标量适应度函数 \(\mathcal{F}(p)\)。框架核心包含三个紧密耦合的模块:基于多轮诊断链(Multi-turn Diagnostic Chain, MDC)的 Critic-Actor 解耦架构、任务专用的视觉行为证据(Behavioral Evidence, BE)渲染器,以及自演化的持久化技能记忆库 \(\mathcal{M}\)。种群迭代过程由维护 5 个进化算子的 UCB1 多臂老虎机自适应调度。

整体流水线如下图所示:

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["父代策略评估<br/>计算标量适应度 + 渲染行为证据 BE"] --> B["多轮诊断链:Critic-Actor 视觉解耦<br/>视觉 Critic 输出结构化 JSON 诊断"]
    B --> C["技能记忆库:片段检索与效用 credit<br/>BM25 检索 top-K 代码片段与当前效用"]
    C --> D["文本 Actor 变异生成<br/>结合父代码、JSON 诊断与记忆片段合成子代"]
    D --> E["子代评估与环境反馈<br/>执行仿真评估计算适应度增量 Δ"]
    E --> F["记忆库更新与技能抽象<br/>更新使用片段效用 / 正向增量抽象新技能"]
    F --> G["UCB1 算子老虎机自适应调度<br/>根据归一化奖励更新算子臂价值并选出下一步算子"]
    G -->|未耗尽总 LLM 调用预算| A

关键设计

1. 多轮诊断链:Critic-Actor 视觉解耦:打破感知与生成的纠缠黑盒 传统框架用单次 MLLM 调用同时完成图像阅读和代码编写,极易导致错误无法溯源。REFLEX 将突变操作显式拆分为两步独立调用并全程日志化。面对锦标赛选择出的父代程序 \(p\)、标量得分 \(f_p\) 及其行为证据图像 \(V_p = \mathcal{B}(p)\),视觉 Critic 仅负责从图像中诊断运动学异常,输出包含 failure_mode、visual_evidence、root_cause 与 suggested_fix 的严格 JSON 对象,完全不编写代码;纯文本 Actor 则输入父代码、Critic 的 JSON 诊断以及从记忆库检索出的代码片段,专注于代码重写。当变异子代失败时,审计者可直接查阅 JSON 区分是 Critic 看错还是 Actor 写错代码。

2. 技能记忆库:片段级代码存取与适应度增量 Credit 赋值:实现算法启发式的跨任务继承 针对全量程序难以复用且纯文本反思无法直接执行的问题,REFLEX 维护持久化代码片段库 \(\mathcal{M}=\{(k_i, c_i, u_i)\}\),其中 \(k_i\) 为自然语言触发词,\(c_i\) 为可执行代码片段,\(u_i\) 为效用得分。Critic 生成的诊断文本作为检索查询,通过 BM25 算法计算相关性评分:

\[\text{score}(D_p, k_i) = \sum_{q \in D_p} \text{IDF}(q) \cdot \frac{f(q, k_i) \cdot (k_1 + 1)}{f(q, k_i) + k_1 \cdot \left(1 - b + b \cdot \frac{|k_i|}{\text{avgdl}}\right)}\]

检索得到 top-\(K\) 技能送入 Actor 上下文。当子代 \(p'\) 评估完成后,根据适应度差值 \(\Delta = f_{p'} - f_p\) 对 Actor 声称使用的技能更新效用:若 \(\Delta > 0\),则 \(u_i \leftarrow u_i + \min(\Delta, 1)\);若 \(\Delta \le 0\),则惩罚 \(u_i \leftarrow u_i - \frac{1}{2}\min(|\Delta|, 1)\)。新抽象技能初始效用设为 1;若某技能在至少 3 次检索后效用 \(u_i < -1\),则予以归档淘汰;容量达到 256 上限时优先淘汰最低效用项。这一闭环激励机制使得真正带来性能跃迁的代码片段被持续沉淀,为冷启动新任务提供了高质量的可迁移库。

3. UCB1 算子老虎机自适应调度:动态平衡诊断、重组与跨域探索 为避免单一进化算子陷入局部极值,REFLEX 构建了包含 5 种算子的候选池:诊断突变(m_diag)、文本突变(m_text)、三亲本多样性交叉(x_div)、从头生成初始化(i1)以及跨领域灵感突变(m_inspire)。算子选择采用带有祖先回溯奖励的 UCB1 算法驱动:

\[U_t(o) = \hat{\mu}_o + C \sqrt{\frac{\ln t}{N_o}}\]

其中 \(\hat{\mu}_o\) 为算子平均归一化收益,\(N_o\) 为被选次数。当子代产生正向增量 \(r\) 时,不仅奖励直接算子,还会对深度 \(d \le 3\) 的祖先算子赋予 \(0.5^d r\) 的衰减信度。此外,若连续 12 代子代未能刷新历史最佳,系统触发强制突发机制,强制并发派发一次跨领域灵感变异 m_inspire 与一次从头生成 i1,有效跳出搜索停滞平台。

损失函数 / 训练策略

REFLEX 属于免训练(Train-free)搜索机制,不包含任何模型参数的梯度回传。所有 LLM 角色统一采用固定权重的冻结模型推理(控制任务正式对比均基于 Qwen3-VL-235B-A22B-Instruct,迁移实验采用 Qwen3.5-27B)。系统对所有 LLM 调用进行严格计费(包括 Critic、Actor、语法报错修复、技能抽象总结与失败调用),确保在固定总调用预算(50 或 100 次 calls)下与基线公平对齐。

实验关键数据

主实验

在经典控制基准环境(Lunar Lander、Pendulum、Acrobot)和 36 维同心圆环形天线阵列(CCAA)综合任务上,将 REFLEX 与官方 MLES 及计算等效的 Actor-only 消融基线进行对比。在 100 次 LLM 调用预算和 10 组配对种子下,各方法在控制任务中的求解步数与最终得分如下表所示:

数据集 / 任务 评估指标 REFLEX (本文) Official MLES Actor-only 消融 性能表现 / 提升
Lunar Lander (100-call) 最终得分 (NWS ↑) 1.082 ± 0.009 1.069 ± 0.011 1.064 ± 0.012 解决率 10/10,中位调用 24 步达标(对比 MLES 49 步缩减 51.0%)
Pendulum (100-call) 最终得分 (Upright ↑) 0.935 ± 0.020 0.860 ± 0.034 0.875 ± 0.030 解决率 10/10,中位调用 20 步达标(对比 MLES 53 步缩减 62.3%)
Acrobot (100-call) 最终得分 (Raw ↑) -0.145 ± 0.008 -0.165 ± 0.015 -0.155 ± 0.012 解决率 10/10,中位调用 13 步达标(对比 MLES 41 步缩减 68.3%)
CCAA 天线综合 (240 evals) Best@240 得分 ↑ 25.33 ± 0.02 25.18 ± 0.03 (GA) 25.12 ± 0.03 (CMA-ES) ≥25.25 高难门槛达标率 9/10,达标中位评测数仅 19 次

在 36 维 CCAA 物理工程综合任务中,所有传统黑盒优化器(GA、PSO、CMA-ES)在高难门槛 25.25 上的通过率最高仅 3/10,而 REFLEX 达到 9/10,展现出强大的复杂物理约束解析与局部结构优化能力。

消融实验

为验证视觉行为证据(BE)与技能记忆库介质的独立贡献,论文在 Acrobot 控制任务上展开了配对消融实验(10 组种子):

配置 / 变体 最终得分 (Final ↑) 曲线下面积 (AUC ↑) 达标率 (Target) 达标中位调用数 (Calls ↓) 说明
完整 REFLEX (真实 BE) -0.1352 ± 0.0041 -0.2850 ± 0.0337 10/10 5.50 ± 1.58 完整模型,诊断与代码闭环协同
打乱 BE (Shuffled-BE Critic) -0.1426 ± 0.0040 -0.4270 ± 0.0556 10/10 14.70 ± 4.37 图像与代码不匹配,Critic 误诊导致收敛迟缓
空白 BE (Blank-BE Critic) -0.1388 ± 0.0020 -0.3620 ± 0.0408 10/10 9.50 ± 2.55 Critic 丧失视觉感知,仅凭先验泛化
仅 Actor (Actor-only, 无 Critic) -0.1373 ± 0.0021 -0.3450 ± 0.0347 10/10 10.30 ± 3.34 算力全部分配给 Actor,但缺失定向诊断
冻结记忆库:可执行代码片段 -0.1363 -0.5445 9/10 - 无效代码率降至 0/163,结构更具约束力
冻结记忆库:纯文本策略描述 -0.1393 -0.4742 10/10 - 文本具备更高泛化弹性但偶有语法错漏 (1/166)

关键发现

  • 视觉反馈的有效性依赖空间真实性:Shuffled-BE 导致 AUC 较真实 BE 下降 0.142 且达标步数翻近 3 倍(从 5.5 步暴增至 14.7 步),证明 Critic 确实从相平面轨迹图像中捕获了真实的物理动力学反常,而非仅提供幻觉建议。
  • 跨任务知识正向迁移:将 Pendulum 或 Lunar Lander 演化出的冻结技能库直接注入 Acrobot 初始搜索,在全部 10 组配对种子上均实现了最终得分的全面正提升(Wilcoxon 检验 \(p=0.002\))。虽然单次技能复用存在较多退化,但进化适应度选择机制能精准保留重写适配后的有效启发式(如能量泵送逻辑)。
  • 解耦结构显著抑制无效代码生成:在 50 次调用的 Acrobot 实验中,REFLEX 的代码无效崩溃率仅为 0.6%(2/360),而单步 MLES 的崩溃率高达 14.7%(75/510),证明细化分工使 Actor 能更专注于代码语法的正确性。

亮点与洞察

  • 多轮诊断链的责任归因机制:将视觉观察与代码变异拆分成两道独立可读的输入输出流,使得演化过程不仅能被人类透明审计,而且能直接区分是感知误诊还是代码生成逻辑失误。
  • 自进化的代码级动态效用账本:不同于传统的完整提示词或全量函数记忆库,以极小的代码片段作为复用粒度,并通过子代适应度增量进行正负反馈更新,成功构建了具有自我净化能力的程序演化记忆。
  • 从仿真控制跨入真实工程电磁设计:将同一套演化接口直接迁移到 36 维天线阵列旁瓣抑制优化中,击败了高度调优的传统启发式优化器,证实了 LLM 视觉诊断在复数物理场逆向设计中的通用潜力。

局限与展望

  • 严苛预算下的 Critic 调用开销瓶颈:当总调用预算极低(如 Acrobot 在 20 次调用以内)时,Critic 占据了约 40% 的调用份额,导致实际生成的策略候选数量减少,早期优势未能充分拉开。
  • 高维与长程视觉行为证据表达困难:目前视觉 BE 针对低维物理控制(相平面、下落轨迹)和静态天线方向图设计良好,但在高维连续观测或长时程复杂任务中,如何渲染出高度紧凑且具有诊断辨识度的图像依然面临挑战。
  • 代码重写过程中的退化重构代价:跨任务技能迁移虽带来总体收益,但微观层面中超过 70% 的技能直接注入尝试会导致性能退化,未来需探索更具适应性的条件重构机制。

相关工作与启发

  • vs MLES:MLES 采用单次多模态 MLLM 调用将视觉识别与代码重写混杂在一起,导致反馈黑盒化且无效代码率高(14.7%);REFLEX 通过 MDC 架构解耦 Critic 与 Actor,并将变异达标步数减半、无效代码率降至 0.6%。
  • vs Reflexion / ReEvo:Reflexion 与 ReEvo 局限于纯文本的执行日志或多步语言反思,且记忆主要保留在提示词/文本层面;REFLEX 将反思拓展到多模态行为证据诊断,并维护具象的可执行代码片段记忆库。
  • vs FunSearch / AlphaEvolve:FunSearch 与 AlphaEvolve 依靠全局程序数据库进行全量函数级的演化与重组;REFLEX 专注于细粒度算法启发式片段的提炼与跨任务效用量化更新。

评分

  • 新颖性: ⭐⭐⭐⭐☆ (提出 Critic-Actor 视觉解耦的多轮诊断链与量化效用的代码片段自演化记忆库,设计简洁清晰)
  • 实验充分度: ⭐⭐⭐⭐⭐ (覆盖经典控制与 36 维工程物理阵列设计,包含配对种子检验、多种 BE 扰动消融及跨任务冷启动迁移分析)
  • 写作质量: ⭐⭐⭐⭐⭐ (叙述逻辑连贯,符号与实验参数记录翔实,附录提供了完整的 JSON 诊断 Schema 和提示词模板)
  • 价值: ⭐⭐⭐⭐☆ (为可解释程序化策略发现与 MLLM 辅助工程代码逆向设计提供了极具工程借鉴价值的免训练范式)