ContextEvolve: Multi-Agent Context Compression for Systems Code Optimization

TL;DR

ContextEvolve以三代理压缩搜索上下文,在ADRS上提升33.3%,减少29.0%令牌消耗。

cs.LG 🔴 高级 2026-02-02 32 次浏览
Hongyuan Su Yu Zheng Yong Li
大语言模型 系统代码优化 多智能体 上下文压缩 强化学习同构

核心发现

方法论

ContextEvolve将无参数访问下的代码进化拆成三个正交维度:Summarizer Agent把父代摘要与子代代码压缩为语义状态;Navigator Agent分析按指标变化加权的演化轨迹,生成文本优化方向;Sampler Agent依据相关性、多样性和结果检索少量示例。Generator Agent组合三者生成子代,Evaluator计算分数,结果再写回Evolve Buffer。该流程分别对应强化学习的状态表示、策略梯度和优先经验回放。

关键结果

  • 在ADRS五项任务TS、SQL、LB、SAK、MP上,ContextEvolve综合得分均高于基线;相对最佳基线平均提升6.5%,论文摘要报告相对现有方法最高提升33.3%。LB中Balance从0.25提升至0.34、Speed从0.45提升至0.65,综合分0.20,高于OpenEvolve的0.15。
  • ContextEvolve在TS、SQL、LB、SAK、MP的综合分分别为36.10、0.79、0.20、0.586、24.02;相较OpenEvolve的33.56、0.72、0.15、0.591、22.67,除SAK外均明显领先。总令牌消耗平均下降17.3%,复杂LB任务接近30%。
  • 消融实验显示移除Summarizer、Sampler、Navigator后平均性能分别下降9.3%、6.0%和2.9%。相较基线,最佳结果更新频率提高83.3%;基线前60轮快速停滞,而ContextEvolve仍持续改进并实现22.4%的分数突破。

研究意义

论文回应了系统代码优化中“代码能生成但难以持续变快、变正确”的长期问题。它证明API-only条件并不必然意味着盲目随机搜索:通过把历史经验转成摘要、方向和示例,可以在不更新模型权重的情况下复用反馈。对学术界而言,这提供了连接LLM进化搜索与强化学习的统一分析框架;对工业界而言,它降低了长程代码优化的令牌成本,并适合数据库、调度、内核和分布式系统等高验证成本场景。

技术贡献

核心技术贡献是一个面向系统代码的结构化上下文压缩器Φ,而非简单截断历史。形式上,候选代码按ct∼Mθ(·|Φ(Ht),D)生成,目标是最大化T轮内最佳E(ci)。Summarizer保留功能不变量与创新设计,Navigator利用Δs及成功、波动、失败轨迹提炼文本梯度,Sampler执行条件化示例检索。作者进一步给出与Encoder、∇θEτ[J(τ)]和PS(Br)的功能对应,使冻结参数的文本搜索具有RL式状态、方向和经验复用。

新颖性

新颖性不在于首次使用多代理或代码进化,而在于首次明确把系统优化上下文拆成语义状态、优化方向、经验分布三类,并分别交给专门代理维护。相较OpenEvolve直接拼接原始代码、GEPA进行反思突变与Pareto选择,ContextEvolve将“压缩什么、往哪搜、参考哪些样例”解耦,形成面向长程搜索的RL功能同构。

局限性

  • 实验仅覆盖ADRS五类任务,且主要使用Qwen3;尚不能证明该框架在不同模型、供应商API或更广泛系统语言上的稳健性。
  • 论文把文本代理操作称为策略梯度和经验回放的功能同构,而非真正的参数梯度更新;缺少严格收敛保证,也未充分报告代理调用延迟与经济成本。
  • Navigator和Sampler依赖LLM对因果改动与指标波动的正确判断,噪声评估器、非平稳指标或错误摘要可能将搜索带入局部最优。

未来方向

未来可扩展跨模型和跨语言评测,研究自动校准轨迹权重、摘要忠实度与示例多样性;将编译器分析、静态验证和性能计数器接入Evaluator;进一步比较不同代理调用预算、并行策略和缓存机制的真实美元成本,并建立文本梯度质量与最终收益之间的理论界限。

AI 总览摘要

系统代码优化不是一次性写出“看起来正确”的程序,而是在正确性、延迟、吞吐和资源约束之间反复试错。大语言模型能提出候选代码,却常被越来越长的历史记录拖慢。测试时强化学习需要更新模型参数,API-only用户做不到;AlphaEvolve/OpenEvolve等训练无关方法又容易重复搜索、浪费上下文。

ContextEvolve把搜索记忆拆成三部分。Summarizer Agent将代码压缩成保留功能与设计意图的自然语言状态;Navigator Agent比较成功、波动和失败轨迹,提炼类似“文本梯度”的改进方向;Sampler Agent按相关性、多样性和效果挑选示例。Generator据此产生子代,Evaluator打分,再把代码、摘要和分数写回缓冲区。这相当于在文字空间重建状态表示、策略梯度和经验回放。

在ADRS的TS、SQL、LB、SAK和MP任务上,方法综合表现超过现有基线,摘要报告提升33.3%,平均令牌消耗下降29.0%;正文进一步报告相对OpenEvolve平均节省17.3%,复杂LB接近30%。LB综合分为0.20,优于OpenEvolve的0.15;移除摘要器、采样器、导航器分别造成9.3%、6.0%、2.9%的下降。该结果显示,关键不只是调用更多模型,而是让每个令牌承担明确的信息功能。不过,功能同构并不等于真正RL,实验规模和模型覆盖仍有限,未来需要更强验证、成本分析与理论保证。

深度分析

研究背景

ADRS把LLM用于数据库、网络、分布式系统和内核算法发现。单次生成通常不可靠,因此研究转向带自动评估器的多轮进化。AlphaEvolve/OpenEvolve和GEPA能通过反馈改进,但前者容易堆积原始代码,后者主要依赖反思突变与选择,均未显式分离语义状态、方向信号和经验分布。

核心问题

给定任务D、冻结模型Mθ、评估器E和历史Ht={(ci,si)},目标是在T轮内最大化max E(ci)。难点包括:代码上下文高维且冗余;多指标变化难以转成可执行方向;只保留最近样例会丢失高价值经验;系统优化还必须维护功能正确性与探索多样性。

核心创新

  • ��三维解耦:将上下文划分为semantic state、optimization direction和experience distribution。•专门代理:Summarizer保留代码语义,Navigator从加权轨迹生成指导,Sampler检索高价值示例。•RL功能同构:分别对应Encoder、策略梯度估计和优先经验回放,但无需更新权重。•信息密度优先:以摘要和精选示例替代原始历史拼接。

方法详解

  • ��初始化:Evolve Buffer存储(c,s,z),其中c为代码、s为分数、z为摘要。•选父代:依据缓冲区准则选择cp及zp。•提炼方向:Navigator分析多条轨迹,按Δs=sparent−schild区分持续改善、混合波动和持续下降。•检索经验:Sampler以zp和gt为条件,返回相关且多样的Ectx。•生成:Generator按ct∼Mθ(·|Φt)组合父代、方向和示例。•评估更新:E计算sc,Summarizer比较父子代码生成zc,并把新条目写回缓冲区。

实验设计

基准为ADRS五项任务:Transaction Scheduling、SQL Optimization、Load Balancing、Sparse Attention Kernel和Model Placement,迭代次数分别为TS/SQL/SAK/MP 100轮、LB 300轮。基线包括Heuristics、Human-SOTA、LLM One-shot、GEPA和OpenEvolve;所有LLM组件使用Qwen3。指标采用各领域双指标及加权综合分,并比较最佳轨迹、令牌累计量和移除三个代理的消融结果。

结果分析

ContextEvolve综合分为TS 36.10、SQL 0.79、LB 0.20、SAK 0.586、MP 24.02。相对OpenEvolve,TS由33.56升至36.10,SQL由0.72升至0.79,LB由0.15升至0.20,MP由22.67升至24.02;SAK为0.586,略低于0.591。LB Balance提升36%,最佳解更新频率高83.3%,复杂任务令牌节省近30%。

应用场景

可用于自动调优数据库查询与事务调度、负载均衡策略、稀疏注意力CUDA内核和模型部署放置。前提是存在可执行评估器、稳定的正确性测试、明确的性能指标及可调用LLM API。工业系统可先将它用于离线候选生成,再由沙箱、回归测试和人工审查决定上线。

局限与展望

该框架依赖评估器质量和LLM摘要忠实度;错误的文本方向可能放大无效修改。多代理虽降低令牌量,却增加三倍以上API调用,延迟和费用未被充分量化。五项ADRS任务与Qwen3不足以证明普适性;所谓RL同构是功能类比,不提供真正的梯度、收敛或最优性保证。

通俗解读 非专业人士也能看懂

把它想成一家不断改进菜谱的餐厅。每次厨师做出一份新菜,评委会给分。普通做法是把过去所有菜谱和评价都堆在桌上,桌子很快放不下,而且厨师容易重复失败。ContextEvolve安排三位助手:第一位把复杂菜谱浓缩成“少糖、保留脆皮、加入香料”的记忆;第二位比较多次试做,告诉厨师哪种改动通常会变好;第三位从历史中挑出最值得参考的几份菜谱。厨师只看这三类信息再做下一版。

这样,系统不是盲目乱改,而是记住菜的本质、知道尝试方向、参考有用案例。每次新菜仍要经过严格品尝和安全检查,优秀版本才进入下一轮。论文中的“菜”是系统代码,“品尝”是自动性能评估。结果表明,五类任务中它通常比其他自动改进方法更好,同时使用更少文字;但助手说错话、评分标准不稳定或任务太特殊时,效果仍可能下降。

简单解释 像给14岁少年讲一样

想象你在玩一款需要不断升级装备的游戏。你有一个会写代码的AI队友,但它每次改装后都要去训练场测试速度和得分。问题是,玩久了以后,背包里塞满旧装备、失败记录和重复攻略,AI反而找不到真正有用的线索。

ContextEvolve像三个超强队友。总结员把长长的代码变成短攻略;导航员研究哪些改动让分数上升,告诉大家下一步往哪里试;采样员从仓库挑出最相关、最不同、最成功的几件装备给AI参考。主AI把这些信息合起来制作新版本,然后重新测试。

论文在ADRS的五种系统任务上测试它。比如负载均衡任务中,综合分从OpenEvolve的0.15提高到0.20;在所有任务中,摘要报告称性能最高提高33.3%,令牌消耗减少29.0%。去掉总结员后平均下降9.3%,说明“记住重点”非常重要。

不过这不是魔法,也不是AI真的学会了新参数。它主要是在提示词里整理经验,而且需要很多次API调用。如果评分器出错,AI可能认真地朝错误方向升级。未来还要在更多模型和真实工程项目中验证。

术语表

ContextEvolve(上下文进化)

一种在不更新LLM参数的情况下,通过多代理整理搜索上下文来优化代码的方法。它把历史转成摘要、方向和示例。

论文提出的总体框架。

Summarizer Agent(摘要代理)

将父代摘要和子代原始代码转为紧凑语义描述的代理。其作用类似强化学习中的状态编码器。

维护semantic state并减少代码冗余。

Navigator Agent(导航代理)

分析多条演化轨迹及分数变化,生成下一步优化指导的代理。其输出被作者解释为文本空间中的梯度方向。

维护optimization direction。

Sampler Agent(采样代理)

依据相关性、多样性和历史效果选择少量示例的代理。它对应优先经验回放的语义版本。

构造Generator的few-shot上下文。

ADRS

AI-Driven Research for Systems基准,包含多种系统代码优化任务。论文使用TS、SQL、LB、SAK和MP五个场景。

主要实验数据集。

Evolve Buffer(进化缓冲区)

保存代码、分数和语义摘要的历史存储。它使系统能跨轮次复用成功与失败经验。

算法1中的核心历史结构。

开放问题 这项研究留下的未解疑问

  • 1 尚不清楚文本摘要是否在不同模型、语言和代码规模下保持忠实;需要自动化事实校验、跨模型实验及摘要错误率指标。
  • 2 论文没有给出严格收敛保证,也未充分分解API调用、延迟和美元成本;未来应建立搜索收益与上下文预算的可解释模型。

应用场景

近期应用

数据库与调度离线调优

工程团队可提供SQL执行计划、事务调度器和自动基准测试,把ContextEvolve用于候选生成。沙箱验证正确性后,再将高分实现交给专家审查,适合已有稳定评估器的内部平台。

GPU内核与部署策略搜索

对稀疏注意力内核或模型放置问题,系统可根据延迟、密度、成功率等指标反复提出代码或配置。需要编译环境、硬件计数器和超时保护,以避免无效候选消耗预算。

远期愿景

自动化系统研究助手

长期可形成从问题描述、代码生成、基准测试到报告撰写的闭环研究助手。主要障碍是验证复杂不变量、跨硬件迁移以及控制API成本;可靠性达到工程标准后可显著缩短算法探索周期。

原文摘要

Large language models are transforming systems research by automating the discovery of performance-critical algorithms for computer systems. Despite plausible codes generated by LLMs, producing solutions that meet the stringent correctness and performance requirements of systems demands iterative optimization. Test-time reinforcement learning offers high search efficiency but requires parameter updates infeasible under API-only access, while existing training-free evolutionary methods suffer from inefficient context utilization and undirected search. We introduce ContextEvolve, a multi-agent framework that achieves RL-level search efficiency under strict parameter-blind constraints by decomposing optimization context into three orthogonal dimensions: a Summarizer Agent condenses semantic state via code-to-language abstraction, a Navigator Agent distills optimization direction from trajectory analysis, and a Sampler Agent curates experience distribution through prioritized exemplar retrieval. This orchestration forms a functional isomorphism with RL-mapping to state representation, policy gradient, and experience replay-enabling principled optimization in a textual latent space. On the ADRS benchmark, ContextEvolve outperforms state-of-the-art baselines by 33.3% while reducing token consumption by 29.0%. Codes for our work are released at https://anonymous.4open.science/r/ContextEvolve-ACC

cs.LG cs.AI