首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 归档 标签 关于
智能AI evening

竞赛编程Agent进入全球前十!南大、清华新模型CF rating超3500

2026-07-08 1 阅读 约10分钟阅读 新智元
分享:
字号:
新智元报道 【新智元导读】 大语言模型在代码生成上的能力不断增强,但在复杂算法题,尤其是竞赛编程场景中,仍然容易因为算法选择错误、边界条件遗漏、复杂度判断失误或隐藏测试覆盖不足而失败。Solvita是一款面向竞赛编程的智能体框架,通过四个角色(Planner、Solver、Oracle、Hacker)形成闭环系统,并利用可训练的图结构知识网络积累经验。 竞赛编程并不只是「把题面翻译成代码」。一个正确解法往往需要经历多个复杂环节:理解自然语言题面、抽象出数学结构、选择合适算法范式、估计复杂度、实现代码、构造测试、处理多解输出、排查隐藏边界条件等。 对于LLM来说,这类任务有几个典型困难: 1. 算法选择高度依赖题目结构 同样是图论、动态规划或字符串问题,不同约束下可能对应完全不同的算法。如果模型只根据表面相似度检索样例,很容易选到「看起来像但本质不对」的套路。 2. 样例测试远远不够 很多错误解法可以通过样例,却会在隐藏测试中失败。尤其是边界条件、复杂度极限、多答案checker、精度问题等,都很难靠普通自测覆盖。 3. 失败经验难以复用 现有很多coding agent失败后会重新尝试、重新生成、重新调试,但一次任务结束后,这些失败经验通常不会改变后续任务的求解策略。系统并没有真正学会「下次遇到类似结构要避开什么坑」。 4. 多Agent框架仍然偏静态 AlphaCodium、MapCoder等方法已经把解题拆成多个阶段,但它们更像固定流程。每个阶段可以调用模型,却缺少一个会随历史经验更新的长期记忆与路由机制。 来自南京大学、清华大学等机构的研究者提出了Solvita,这是一个面向竞赛编程的Agentic Evolution框架。它不微调底层大模型,而是在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-basedrepair:如果程序失败,Solver会尽量生成SEARCH/REPLACE形式的局部补丁,而不是完全重新生成整份代码。这样做的好处是保留已经正确的部分,集中修改真正出错的局部,避免每次重写都破坏前面已经满足的条件。 3. Oracle:负责构造可靠内部测试 Oracle的任务不是写最终答案,而是为解法构造「可信监督」。它会生成testlib-basedgenerator、validator、checker和reference solver,并检查reference solver是否能复现公开样例输出,再生成更多测试输入并进行认证。对于多答案问题,Oracle还需要提供custom checker的证据。只有当测试输入、期望输出、认证比例等条件满足要求时,Oracle生成的测试才会被接受。 4. Hacker:负责主动攻击候选程序 Hacker更像一个对拍高手。它会分析候选代码的潜在漏洞,生成结构化vulnerability report,然后选择semantic、stress、antihash等攻击路线,尝试构造能击穿错误程序的输入。如果某条攻击路线失败,系统还会沿着fallback chain 继续尝试。成功hack到的bug不只用于当前题修复,还会作为失败经验传播给Planner、Solver、Oracle和Hacker的知识网络。 可训练的图结构知识网络 制 Solvita最重要的设计不是「多了几个Agent」,而是每个Agent都配有一个可训练的graph-structured knowledge network。 以Solver为例,它的知识网络分为三层: Q Layer:记录历史题目描述和元信息; M Layer:记录解法分解、失败对比和metacognitive analysis; S Layer:记录可复用算法技能和C++模板。 当新题到来时,系统会先检索相似的Q节点,再沿着Q→M→S的两跳路径激活相关技能。 不同路径的边权不是固定的,而是会根据历史成功与失败进行更新。成功路径会被强化,失败路径会被削弱或生成新的contrastive节点。这和传统RAG有本质差异。 传统RAG更像「找到相似文本塞进prompt」,而Solvita的知识网络更像「学习什么问题结构应该路由到什么算法技能」。记忆不再只是静态检索,而变成了可训练的策略路由。 Oracle和Hacker 在算法题中,测试本身就是能力的一部分。一个Agent能不能解题,很大程度上取决于它能不能判断自己的解法是否真的正确。 Solvita将测试能力拆成两个互补方向: Oracle关注「可靠监督」。 它更倾向于构造reference solver、generator、validator和checker,目标是生成可以稳定判断程序正确性的内部测试。 Hacker关注「发现漏洞」。 它更倾向于寻找边界输入、复杂度极限、结构性反例或哈希冲突等攻击样例,目标是暴露候选代码中隐藏的错误。 二者的功能并不重复。Oracle更保守,能较好保护正确解法不被误杀;Hacker更激进,更擅长发现隐藏bug。论文实验也显示,二者结合后,在错误解法检测、正确解法保留和stronger-test confirmation上都取得了更好的平衡。 实验结果 论文在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,也在多个b
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱