游乐游手机版
首页/AI热点日报/热点详情

南大清华新模型竞赛编程Agent全球前十,CF评级超3500

类型:热点整理2026-07-09
针对竞赛编程,南京大学、清华大学等机构提出Solvita框架,包含Planner、Solver、Oracle、Hacker四个角色形成闭环,并引入可训练的图结构知识网络积累解题经验。在多个基准测试和真实Codeforces比赛中取得领先,进入全球前十,CFrating超过3500。

竞赛编程智能体新突破:Solvita如何让AI学会“从失败中成长”?

大型语言模型在代码生成方面已经展现出越来越强的能力,但一旦面对复杂算法题,特别是竞赛编程场景,仍容易暴露出诸多问题——算法选择失误、边界条件遗漏、复杂度估算偏差、隐藏测试覆盖不足等缺陷依然普遍存在。

Solvita的诞生正是为了攻克这些瓶颈。这是一套专为竞赛编程设计的智能体框架,其核心思路是通过四个角色(Planner、Solver、Oracle、Hacker)构成闭环系统,并借助一个可训练的图结构知识网络来持续积累解题经验。下面先看几个关键判断。

竞赛编程远非“将题目描述翻译成代码”那般简单。一个正确的解法,通常需要经历理解自然语言题面、抽象出数学结构、选择恰当的算法范式、估算复杂度、实现代码、构造测试用例、处理多解输出、排查隐藏边界条件等多个环节。

对LLM而言,此类任务存在几大典型难点:

1. 算法选择高度依赖题目结构

同样是图论、动态规划或字符串问题,不同约束条件对应的算法可能截然不同。如果模型仅依据表面相似性检索样例,很容易误选“看起来相似但本质错误”的套路。

2. 样例测试远远不够

许多错误解法能通过样例测试,却在隐藏测试中败下阵来。边界条件、复杂度极限、多答案校验器、精度问题等,依靠普通自测很难全面覆盖。

3. 失败经验难以复用

现有的多数coding agent在失败后会重新尝试、重新生成、重新调试,但任务结束后,这些失败经验往往被丢弃,不会影响后续任务的求解策略。系统并未真正学会“下次遇到类似结构应避开哪些坑”。

4. 多Agent框架仍偏静态

AlphaCodium、MapCoder等方法已将解题过程拆分为多个阶段,但它们更像固定流程。每个阶段固然可以调用模型,却缺少一个能够随着历史经验动态更新的长期记忆与路由机制。

来自南京大学、清华大学等机构的研究者提出了Solvita,它不微调底层大模型,而是在Planner、Solver、Oracle、Hacker四类Agent外部构建可训练的图结构知识网络,使系统能够从解题、测试、攻击和修复过程中持续积累经验。

代码仓库:https://github.com/NJU-LINK/Solvita
论文链接:https://arxiv.org/pdf/2605.15301

Solvita的出发点十分朴素:人类选手通过刷题变强,靠的不是每道题都从零开始,而是不断积累“什么题用什么套路”、“什么实现容易WA”、“什么测试最能hack错误程序”等经验。

Solvita是如何工作的?

Solvita的核心思想是:将竞赛编程求解组织成一个闭环系统,并让每个环节都配备可训练的知识网络。整个系统由四个Agent组成:

1. Planner:负责题目抽象与策略选择

Planner首先将原始题面转化为更形式化的数学描述,去除故事背景和无关信息,提取变量、约束、目标和输入输出结构。随后,它会预测可能的算法标签、实现思路和复杂度。其背后的知识网络会记录历史题目的形式化结构、预测标签及最终结果。当新题出现时,Planner并非单纯依靠prompt临场发挥,而是参考结构相似问题的历史经验。

2. Solver:负责生成代码与局部修复

Solver根据Planner的策略生成C++程序,并在样例以及Oracle生成的测试上进行验证。与许多“失败后整段重写”的方法不同,Solvita强调基于补丁的修复(patch-based repair):若程序失败,Solver会尽量生成SEARCH/REPLACE形式的局部补丁,而非完全重新生成整份代码。这种做法的好处是保留已正确的部分,集中修改真正出错的局部,避免每次重写都破坏前面已经满足的条件。

3. Oracle:负责构造可靠内部测试

Oracle的任务并非编写最终答案,而是为解法构造“可信监督”。它会生成基于testlib的生成器、验证器、校验器以及参考解法,并检查参考解法能否复现公开样例输出,再生成更多测试输入并进行认证。对于多答案问题,Oracle还需提供自定义校验器的证据。只有当测试输入、期望输出、认证比例等条件满足要求时,Oracle生成的测试才会被接受。

4. Hacker:负责主动攻击候选程序

Hacker更像一个对拍高手。它会分析候选代码的潜在漏洞,生成结构化的漏洞报告,然后选择语义、压力、抗哈希等攻击路线,尝试构造能击穿错误程序的输入。如果某条攻击路线失败,系统还会沿fallback链继续尝试。成功hack到的bug不仅用于当前题目的修复,还会作为失败经验传播给Planner、Solver、Oracle和Hacker的知识网络。

可训练的图结构知识网络

Solvita最重要的设计并非“多了几个Agent”,而是每个Agent都配有一个可训练的图结构知识网络。

以Solver为例,它的知识网络分为三层:

  • Q Layer:记录历史题目描述和元信息;
  • M Layer:记录解法分解、失败对比及元认知分析;
  • S Layer:记录可复用的算法技能和C++模板。

当新题到来时,系统会先检索相似的Q节点,再沿着Q→M→S的两跳路径激活相关技能。不同路径的边权并非固定不变,而是根据历史成功与失败进行更新。成功路径会被强化,失败路径会被削弱或生成新的对比节点。这与传统RAG有本质差异。

传统RAG更像是“找到相似文本塞进prompt”,而Solvita的知识网络则更像是“学习什么问题结构应该路由到什么算法技能”。记忆不再只是静态检索,而是变成了可训练的策略路由。


Oracle和Hacker:互补的测试能力

在算法题中,测试本身就是能力的一部分。一个Agent能否解题,很大程度上取决于它能否判断自己的解法是否真正正确。Solvita将测试能力拆分为两个互补方向:

Oracle关注“可靠监督”

它更倾向于构造参考解法、生成器、验证器和校验器,目标是生成能够稳定判断程序正确性的内部测试。

Hacker关注“发现漏洞”

它更倾向于寻找边界输入、复杂度极限、结构性反例或哈希冲突等攻击样例,目标是暴露候选代码中隐藏的错误。

二者功能并不重复。Oracle较为保守,能较好保护正确解法不被误杀;Hacker更为激进,更擅长发现隐藏bug。论文实验也显示,二者结合后,在错误解法检测、正确解法保留以及更强测试确认方面都取得了更好的平衡。

实验结果:14/15的领先

论文在CodeContests、APPS、AetherCode以及近期Codeforces rounds上评测了Solvita,并与single-pass、Codex CLI、Claude Code、AlphaCodium、MapCoder等方法进行了比较。主实验结果显示,Solvita在15个backbone-benchmark组合中,有14个取得最高pass@1。以GPT-5.4 backbone为例,Solvita相比single-pass实现了大幅跃升;相比已有agent framework,也在多个benchmark上保持稳定领先。

更重要的是,这种提升并非靠无限增加token消耗换来的。论文的成本分析显示,Solvita的平均token消耗与开源agent framework处于相近区间,并未接近部分商业CLI agent的更高消耗水平。

消融实验:知识网络的价值

论文进一步做了加法消融实验,用以区分两个问题:第一,Solvita的收益是否仅仅因为多Agent流程更复杂?第二,可训练知识网络是否真的带来了额外提升?

结果显示,从single-pass切换到没有训练的多Agent框架,本身已能显著提升性能。这说明“求解–认证–攻击–修复”的闭环结构确实更适合复杂算法题。但在此基础上,加入Solver/Oracle/Hacker知识网络后,性能还能继续提升,并且随着训练问题数量从1.5k到3k再到4.5k,收益持续增长。在GPT-5.4上,完整系统最终达到:这说明三个网络并非互相替代,而是互补叠加。Solver网络主要提升算法技能路由与实现修复;Oracle网络提升内部监督质量;Hacker网络提升对隐藏漏洞的攻击能力。完整系统将三类经验整合起来,最终取得最强表现。

Patch-based Repair:为什么不要每次都重写?

论文还专门比较了Solver内部的两种修复方式:完全重写和补丁修复。完全重写是每次失败后重新生成完整代码;补丁修复则只针对诊断出的错误位置生成局部补丁。在相同最大迭代预算下,补丁修复不仅通过率更高,而且平均迭代次数更少、token节省更多。以GPT-5.4为例,这说明在长链路解题中,“推倒重来”并不总是好策略。很多时候,候选解法已经有大部分逻辑正确,真正需要的是精准修补,而不是重新生成一份可能引入新错误的代码。

Codeforces真实比赛评测:Legendary Grandmaster

除了离线benchmark,论文还在近期Codeforces rounds上进行了更接近真实比赛的评估。评测选取12场post-cutoff Codeforces rounds,共76道题。每场比赛都在官方时间限制内完成,不允许赛后修改,约束与真实选手一致。结果显示,使用GPT-5.4、Claude Opus 4.6、DeepSeek V4 Pro作为backbone的Solvita版本,最终都进入Legendary Grandmaster区间;而相同backbone的裸模型则停留在较低区间。这说明Solvita的收益不仅来自底层模型本身,更源于智能体循环、知识网络和对抗验证机制的系统性增强。

总结与展望

Solvita是一个面向竞赛编程的智能体演化框架。它试图回答一个重要问题:如何让代码Agent不只是“多试几次”,而是真正从过去的成功和失败中积累经验?

该研究的核心贡献可以概括为三点:

1. 提出求解–认证–攻击–修复闭环

Solvita将算法题求解拆解为Planner、Solver、Oracle、Hacker四个角色,让策略选择、程序生成、测试认证和对抗攻击形成闭环。

2. 引入可训练的图结构知识网络

每个Agent都拥有自己的知识网络,通过通过/失败判定、测试认证质量以及对抗性漏洞等反馈信号更新边权,在不微调底层LLM的前提下持续积累经验。

3. 在竞赛编程任务上取得显著提升

Solvita在CodeContests、APPS、AetherCode和Codeforces真实比赛评测中均展现出强性能,在多数backbone-benchmark组合上超过已有agent framework。

从更大的角度看,Solvita传达了一个非常重要的观点:未来更强的coding agent,不一定只来自更大的模型,也可能来自更好的经验组织方式。真正可靠的代码智能体,需要会规划、会验证、会攻击自己的答案,也需要能把失败转化为下一次成功的经验。对于AI for Code研究而言,Solvita提供了一种新的思路:从一次性代码生成,走向持续进化的代码智能体。

参考资料:
https://arxiv.org/pdf/2605.15301

来源:https://www.bestblogs.dev/article/c6258ac1?utm_source=rss&utm_medium=feed&utm_campaign=resources&entry=rss_article_item

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。