Solvita:竞赛编程的AI闭环进化框架

当前大语言模型在通用代码生成领域已经取得显著进展,但在竞赛编程这类复杂算法场景中,仍容易出现算法选择失误、边界条件遗漏、复杂度判断偏差等问题,难以通过隐藏测试用例。近期来自多所高校的研究者推出了Solvita,这是一款面向竞赛编程的智能体进化框架,通过四个协作角色构建闭环系统,并搭配可训练的图结构知识网络实现经验积累,有效提升了竞赛编程的解题成功率。
竞赛编程并非简单的“将题面翻译成代码”,一个正确的解法需要经历多个复杂环节:理解自然语言题面、抽象数学结构、选择合适的算法范式、估算复杂度、编写代码、构造测试用例、处理多解输出、排查隐藏边界条件等。现有大语言模型在这类任务中面临四大典型困难:
算法选择高度依赖题目约束
即使是同类型的图论、动态规划或字符串问题,不同的输入约束也需要匹配完全不同的算法方案。如果模型仅根据表面相似度套用已有样例,很容易选择“看起来相似但本质错误”的解题套路。
公开样例测试覆盖不足
很多错误解法可以通过公开样例测试,但在隐藏的边界条件、复杂度极限测试、多答案校验、精度问题等场景下会失效,普通的自测很难覆盖这些细节。
失败经验难以复用
现有的多数代码智能体在失败后通常会重新尝试、重新生成代码或调试,但一次任务结束后,这些失败经验通常不会改变后续任务的求解策略,系统无法真正学会“下次遇到类似结构时需要避开哪些坑”。
多智能体框架缺乏动态更新
类似AlphaCodium、MapCoder这类方案虽然将解题拆分为多个阶段,但更偏向固定的流水线流程,每个阶段仅调用模型,却缺少基于历史经验的长期记忆和路由机制,无法随实践优化解题策略。
人类竞赛选手的提升并非依赖每道题从零开始,而是通过积累“题型匹配的算法套路”“容易出错的实现细节”“高效的测试用例设计”等经验。Solvita正是基于这一逻辑,在不微调底层大模型的前提下,为四个核心角色构建了可训练的图结构知识网络,让系统能够从解题、测试、攻击和修复的全流程中持续积累经验。
Solvita的核心工作机制
Solvita将竞赛编程求解组织为一个闭环系统,每个环节都配备了可训练的知识网络,整个系统由四个协作智能体组成:
1. Planner:题目抽象与策略选择
Planner首先将自然语言题面转化为形式化的数学描述,剥离无关的故事背景,提取变量、约束、目标和输入输出规则。随后,它会预测可能的算法标签、实现思路和复杂度。其背后的知识网络会记录历史题目的形式化结构、预测标签和最终结果,当遇到新题目时,Planner会参考结构相似问题的历史经验,而非仅依赖临时prompt生成策略。
2. Solver:代码生成与局部修复
Solver根据Planner的策略生成C++程序,并在样例和Oracle生成的测试用例上进行验证。与传统“失败后整段重写”的方案不同,Solvita强调基于补丁的修复(patch-based repair):如果程序测试失败,Solver会生成SEARCH/REPLACE形式的局部补丁,而非完全重新生成整份代码,这样可以保留已经正确的逻辑,仅修改出错的局部,避免重写破坏已验证的正确部分。
3. Oracle:构造可靠内部测试
Oracle的核心任务并非生成最终答案,而是为解法提供“可信监督”:它会生成基于testlib的生成器、验证器、校验器和参考解法,检查参考解法是否能复现公开样例的输出,随后生成更多测试输入并完成认证。对于多答案问题,Oracle还需要提供自定义校验器的证据,只有当测试输入、期望输出、认证比例等条件满足要求时,生成的测试才会被采纳。
4. Hacker:主动攻击候选程序
Hacker类似竞赛中的对拍高手,会分析候选代码的潜在漏洞,生成结构化的漏洞报告,随后选择语义攻击、压力测试、反哈希攻击等路线,尝试构造能击穿错误程序的输入。如果某条攻击路线失败,系统会沿着fallback链继续尝试。成功发现的bug不仅用于当前题目的修复,还会作为失败经验同步到四个Agent的知识网络中,优化后续的解题和测试策略。
可训练的图结构知识网络
Solvita的核心设计并非仅仅增加了多个智能体角色,而是为每个Agent配备了可训练的图结构知识网络。以Solver为例,其知识网络分为三层:
- Q Layer:记录历史题目描述和元信息;
- M Layer:记录解法分解、失败对比和元认知分析;
- S Layer:记录可复用的算法技能和C++代码模板。
当新题目到来时,系统会先检索相似的Q节点,再沿着Q→M→S的两跳路径激活相关技能。不同路径的边权并非固定,而是会根据历史成功与失败的结果进行更新:成功路径会被强化,失败路径会被削弱,甚至生成新的对比节点。这与传统的检索增强生成(RAG)有本质区别:传统RAG更像是“找到相似文本塞入prompt”,而Solvita的知识网络更专注于“学习什么样的问题结构应该路由到对应的算法技能”,记忆不再是静态检索,而是可训练的策略路由机制。
互补的测试模块:Oracle与Hacker
在算法题中,测试本身就是解题能力的重要组成部分,一个智能体能否正确解题,很大程度上取决于它能否准确判断自己的解法是否真正正确。Solvita将测试能力拆分为两个互补的方向:
Oracle:专注可靠监督
Oracle更倾向于构造参考解法、生成器、验证器和校验器,目标是生成可以稳定判断程序正确性的内部测试,有效保护正确解法不被误判。
Hacker:专注发现漏洞
Hacker更倾向于寻找边界输入、复杂度极限、结构性反例或哈希冲突等攻击样例,目标是暴露候选代码中隐藏的错误,擅长发现隐藏的bug。
二者的功能并不重复,实验结果显示,二者结合后,在错误解法检测、正确解法保留和强测试确认等方面都取得了更好的平衡。
实验结果与分析
论文在CodeContests、APPS、AetherCode以及近期的Codeforces轮次比赛中对Solvita进行了评测,并与single-pass、Codex CLI、Claude Code、AlphaCodium、MapCoder等方法进行了对比。主实验结果显示,Solvita在15个主干模型-基准测试组合中,有14个取得了最高的pass@1准确率。
以GPT-5.4作为主干模型为例,Solvita相比single-pass实现了大幅的性能跃升;相比已有的多智能体框架,也在多个基准测试上保持了稳定的领先优势。更重要的是,这种性能提升并非依靠无限增加token消耗实现的,论文的成本分析显示,Solvita的平均token消耗与开源多智能体框架处于相近区间,并未接近部分商业CLI智能体的高消耗水平。
消融实验:验证核心设计的价值
论文通过附加消融实验来区分两个关键问题:一是Solvita的性能提升是否仅仅因为多智能体流程的复杂性更高;二是可训练的知识网络是否真的带来了额外的性能增益。
实验结果显示,从single-pass切换到未经过训练的多智能体框架,本身已经可以显著提升性能,这说明solve–certify–attack–repair的闭环结构确实更适合复杂算法题的求解。但在此基础上,加入Solver、Oracle、Hacker的知识网络后,性能还能继续提升,并且随着训练问题数量从1.5k增加到3k再到4.5k,性能增益持续增长。
在GPT-5.4主干模型上,完整的Solvita系统最终达到了最优性能。这说明三个知识网络并非互相替代,而是互补叠加:Solver网络主要提升算法技能路由和代码修复能力;Oracle网络提升内部监督的质量;Hacker网络提升对隐藏漏洞的攻击能力。完整的系统将三类经验整合起来,最终取得了最强的表现。
基于补丁的修复的优势
论文还专门对比了Solver内部的两种修复方式:全量重生成和基于补丁的修复。全量重生成是指每次失败后重新生成完整的代码;而基于补丁的修复则仅针对诊断出的错误位置生成局部补丁。
在相同的最大迭代预算下,基于补丁的修复不仅通过率更高,而且平均迭代次数更少,token消耗也更节省。以GPT-5.4为例,这种修复方式的优势更加明显,这说明在长链路的解题过程中,“推倒重来”并非总是最优策略,很多时候候选解法已经具备了大部分正确的逻辑,真正需要的是精准的修补,而非重新生成一份可能引入新错误的代码。
Codeforces真实比赛评测
除了离线基准测试,论文还在近期的Codeforces轮次比赛中进行了更贴近真实竞赛场景的评估。评测选取了12场截止后的Codeforces轮次,共76道题目,所有测试都在官方时间限制内完成,不允许赛后修改,约束条件与真实选手参赛一致。
结果显示,使用GPT-5.4、Claude Opus 4.6、DeepSeek V4 Pro作为主干模型的Solvita版本,最终都进入了Legendary Grandmaster区间;而使用相同主干模型的基础模型则停留在较低的区间。这说明Solvita的性能提升并非仅仅来自底层模型本身,而是来自智能体循环、知识网络和对抗验证机制的系统性增强。
总结与展望
Solvita是一款面向竞赛编程的智能体进化框架,它试图回答一个关键问题:如何让代码智能体不只是“多尝试几次”,而是真正从过往的成功和失败中积累经验。该研究的核心贡献可以概括为三点:
- 提出了solve–certify–attack–repair的闭环解题流程,将算法题求解拆解为四个协作角色,形成完整的循环;
- 引入了可训练的图结构知识网络,每个Agent都可以通过解题结果、测试认证质量和对抗漏洞等反馈信号更新网络边权,在不微调底层大模型的前提下持续积累经验;
- 在竞赛编程任务上取得了显著的性能提升,在多个基准测试和真实比赛中均超过了现有的多智能体框架。
从更宏观的角度来看,Solvita传递了一个重要的观点:未来更强大的代码智能体,不一定仅仅来自更大的模型参数,也可能来自更高效的经验组织和迭代方式。真正可靠的代码智能体,需要具备规划能力、验证能力、自我攻击修正能力,以及将失败转化为后续成功经验的能力。对于AI辅助代码开发的研究而言,Solvita提供了一种新的思路:从一次性的代码生成,走向持续进化的代码智能体。
塔猴是一个专注于为用户提供系统学习、内容创作与商业连接的AIGC综合服务平台,致力于为每一位AI探索者打造理想的创作、成长家园。在塔猴,你不仅可以学习众多AIGC类实战课程,获得与时俱进的AIGC技能和视野,还有机会获得长期商业合作和接单机会!点击进入:https://www.tahou.com/
AI生成内容提示:本文由人工智能辅助创作,内容仅供参考,不代表平台观点。请注意核实信息的准确性,并理性判断。


