Code2Math:你的代码智能体能通过探索有效演化数学问题吗? Code2Math: Can Your Code Agent Effectively Evolve Math Problems Through Exploration?
提出多智能体框架,利用代码驱动的探索自动将数学问题演化为更难的变体
前置知识
大语言模型的数学推理能力
近年来大语言模型(如DeepSeek-Reasoner、GPT-5.2等)在数学推理方面取得了显著进展,已经达到接近国际数学奥林匹克(IMO)竞赛和研究级问题的求解水平。这些模型能够进行多步逻辑推导、符号运算和复杂证明。然而,这种能力的持续提升面临一个瓶颈:足够有挑战性的高质量数学问题日益稀缺,成为训练、评估和模型自我进化的限制因素。论文正是基于这一背景,探索如何利用代码智能体自动合成更高难度的数学问题。
本文的核心假设是LLM已具备竞赛级别的数学推理能力,理解当前LLM的能力边界是理解全文动机的前提
测试时扩展(Test-time Scaling)
测试时扩展是一种在推理阶段(而非训练阶段)通过增加计算量来提升模型性能的范式。具体而言,给定一个输入,模型可以生成多个候选输出(称为rollouts),然后通过某种验证机制选择最优结果。这种方法不需要修改模型参数,而是在推理时投入更多计算资源来获得更好的结果。在本文中,每个种子问题被允许最多20次rollout尝试,直到生成的问题同时通过可解性和难度两个验证智能体的检查。
本文的核心方法论框架基于测试时扩展范式,通过多次rollout探索来满足验证标准
发现负担(Burden of Discovery)
论文将数学问题的难度定义为'发现负担',即求解者在解题过程中需要付出的认知努力,特别是找到解题切入点所需的洞察力。这与仅仅增加计算量或步骤数的'人工复杂度'形成对比。一个具有高发现负担的问题要求求解者跳出标准解题模板,经历真正的'顿悟时刻'(Aha moment)才能找到突破口。论文的难度验证智能体使用5分制评分来区分人工复杂度和认知深度,只有得分3分及以上的问题才被认为成功提升了难度。
这是论文对'难度'的独特定义,决定了整个评估框架的设计
Theory of Mind(心智理论)在LLM中的应用
心智理论是指理解他人心理状态(信念、意图、推理过程)的能力。在本文中,演化智能体被设计为能够预判经验丰富的竞赛选手会如何分析和求解一个问题,然后故意隐藏关键洞察,使新的切入点更加难以发现。这种设计使智能体能够有针对性地增加问题难度,而不是随机修改问题。例如,智能体会分析原始问题的解法,识别出认知瓶颈,然后设计一个需要更深层次洞察才能突破的新问题。
演化智能体的设计直接受心智理论启发,要求其预判求解者的推理路径
多智能体系统分解
论文将复杂的数学问题演化任务分解为三个阶段,由三个专门的智能体分别负责:演化智能体负责分析种子问题并生成更难的变体;可解性验证智能体检查生成的问题是否存在逻辑错误或内部矛盾;难度验证智能体评估新问题是否比原问题真正更难。这种分解设计基于一个关键观察:适应数学问题是一个长上下文、长视野的任务,单个智能体难以同时保证问题的创造性、逻辑正确性和难度提升。
理解三个智能体的分工是理解整个框架架构的关键
代码执行作为探索引擎
论文的核心创新之一是利用代码智能体的执行能力作为数学探索的引擎。智能体可以编写并执行Python代码,使用SymPy进行符号计算、Z3进行约束求解、NetworkX进行图论分析、itertools进行组合枚举等。这种能力使智能体能够进行数值模拟来探索更紧的不等式界、打印序列来直观发现规律、穷举搜索来验证或反驳候选命题。代码执行提供了确定性的中间反馈,与纯文本的推测性推理形成对比,使探索过程更加可靠和高效。
代码执行能力是本文方法与纯文本推理方法的本质区别
研究动机
随着大语言模型在数学推理方面取得突破性进展——达到接近IMO竞赛和研究级问题的求解水平——一个关键瓶颈日益凸显:足够有挑战性的高质量数学问题严重稀缺。这种稀缺性制约了三个关键环节:(1)训练阶段,缺乏足够多样的高难度训练数据来进一步提升模型能力;(2)评估阶段,现有基准(如AIME、IMO)的题目数量有限,容易被模型'刷分';(3)自我进化阶段,模型需要持续接触更难的问题才能不断进步。手动构建高质量数学问题需要深厚的领域专业知识和大量人力投入,难以规模化。此外,现有的问题生成方法(如MATH-Perturb、EvolMathEval)通常依赖人工编辑或简单的基于规则的LLM修改,未能充分利用智能体的探索潜力。同时,近期代码智能体的发展表明,代码执行可以作为数学实验的可扩展环境,但这方面的潜力在问题生成领域尚未被充分探索。
本文的目标是本文旨在回答三个核心研究问题:(1)代码智能体生成的演化问题是否在数学上是健全且可解的?(2)这些问题是否对当前推理模型构成真正的难度提升?(3)问题演化过程的效率如何?具体而言,作者希望构建一个能够自动将现有数学问题(来自教科书、区域竞赛、IMO、AIME等来源的100个种子问题)转化为更难变体的框架,同时保证生成问题的数学正确性和实质性的难度增加,而非仅仅增加计算复杂度。论文还希望探索代码执行在问题演化中的具体作用机制,并量化其对难度提升的贡献。
与已有工作不同的是,本文的独特切入角度体现在三个层面。首先,在难度定义上,论文提出了'发现负担'(Burden of Discovery)的概念,将难度聚焦于找到解题切入点所需的认知洞察力,而非计算量或步骤数。这一概念借鉴了心智理论,要求演化智能体预判求解者的推理路径并故意制造认知障碍。其次,在方法论上,论文将问题演化分解为三个专门智能体的协作(演化、可解性验证、难度验证),形成了一个完整的'生成-验证-评估'流水线,这与以往仅依赖单次LLM调用的方法截然不同。第三,在技术手段上,论文充分利用代码智能体的执行能力——使用SymPy、Z3、NetworkX等库进行符号计算、约束求解和图论分析——将代码执行从简单的验证工具提升为深度探索引擎。这种'通过代码探索'的方法使智能体能够进行数值模拟、穷举搜索和模式发现,本质上模拟了人类数学家发现和精炼新问题的工作流程。
核心方法
论文提出的Code2Math框架采用'测试时探索'范式,通过多智能体协作系统自动演化数学问题。整体思路可以分为两个层次:直觉层面,框架模拟了人类数学家发现新问题的工作方式——先深入理解现有问题的解法,识别其中的认知瓶颈,然后通过计算实验探索可能的变体方向,最后构造出更具挑战性的问题。技术层面,框架由三个专门的智能体组成流水线:演化智能体负责分析种子问题并生成更难的变体;可解性验证智能体通过两阶段检查(表面错误检测+逻辑链审计)确保问题的数学正确性;难度验证智能体使用5分制评分评估新问题是否真正提升了发现负担。系统采用多次rollout策略,每个种子问题最多尝试20次,直到同时通过两个验证智能体的检查。演化智能体配备了完整的Python数学工具栈(SymPy、Z3、NetworkX、itertools等),能够进行符号计算、约束求解、图论分析和组合枚举,将代码执行作为核心探索引擎。
本文的核心创新点在于将代码执行从辅助工具升级为探索引擎,并通过'发现负担'的概念重新定义难度。与已有的问题生成方法(如R-zero、SANDMath等直接生成数学问题)相比,本文的方法有三个本质区别:(1)探索驱动而非生成驱动——智能体不是直接输出新问题,而是通过编写代码进行计算实验来探索问题空间,类似于人类数学家通过猜想形成、反例搜索和系统实验来发现新问题;(2)双验证机制确保质量——可解性验证和难度验证的双重检查保证了生成问题既数学正确又真正更难,而不仅仅是表面修改;(3)能力不对称性的发现——论文发现模型可以构造出超越自身求解能力的问题,这意味着智能体可以合成'发现负担'超过其自身推理上限的挑战,为通过迭代自我进化持续提升能力开辟了可能。此外,论文提出的5分制难度评分机制(1分=未改变解法路径,2分=仅增加计算繁琐度,3分=打破标准模板,4分=需要非平凡洞察,5分=具有数学美感)提供了一个可操作的难度评估框架。
方法步骤详情
框架的执行分为以下步骤:(1)数据准备阶段,收集100个来自多样来源(教科书、区域竞赛、IMO、AIME等)的数学问题作为种子,附带参考解答;(2)演化智能体的第一阶段——分析原始问题的解答,识别认知瓶颈(即让问题困难的核心洞察),运用心智理论预判竞赛选手的推理路径;(3)演化智能体的第二阶段——基于对瓶颈的分析,进行自由探索:编写Python代码进行数值模拟、符号计算和穷举搜索,探索可能的变体方向,如更紧的数学界、更精巧的组合构造、数值序列中的隐藏模式等;(4)演化智能体输出新问题陈述和提出的解法步骤;(5)可解性验证智能体的两阶段检查——Phase 1检查问题文本本身是否存在域值不合理、约束矛盾等表面错误(使用SymPy建模验证),Phase 2逐步审计提出的解法步骤,检查冲突、推导错误和逻辑谬误(如循环论证、过度推广、边界忽视等);(6)难度验证智能体接收原始问题和演化后的问题及其解法,使用5分制评分评估是否真正提升了发现负担,重点关注是否打破了标准解题模板、是否需要顿悟时刻、是否代表了数学上的提升;(7)如果任一验证失败,系统回滚到步骤(3)重新探索,每个种子问题最多20次rollout;(8)验证通过后,将演化问题提交给6个求解器模型(DeepSeek-Chat、DeepSeek-Reasoner、Qwen3-235B、Gemini-3-Flash-Thinking、GPT-5.2-Medium、GPT-5.2-High)进行评估,每个模型最多3次尝试。
技术新颖性
本文的技术新颖性体现在多个维度。首先,'发现负担'的定义是对传统难度度量的重要改进——以往的难度评估主要关注计算量或步骤数,而本文将焦点转移到认知洞察力的需求上,这更准确地反映了数学问题的真实难度。其次,将心智理论应用于问题生成是新颖的——演化智能体被要求预判求解者的推理路径并故意制造认知障碍,这使得难度提升是有针对性的而非随机的。第三,5分制难度评分机制将'人工复杂度'(得分1-2)与'认知深度'(得分3-5)明确区分,提供了可操作的难度评估标准。第四,代码执行作为探索引擎的系统化应用——与以往将代码仅用于验证不同,本文将代码执行提升为探索问题空间的核心手段,使智能体能够进行确定性的中间验证。第五,能力不对称性的实证发现——模型可以合成超越自身求解能力的问题,这一发现对自我进化研究具有重要意义。最后,三智能体分解架构将复杂的演化任务分解为可管理的子任务,每个智能体专注于特定的质量维度。
实验结果
实验结果揭示了多个重要发现。在可解性验证方面,内部验证器和外部评判者(GPT-5.2-High)之间表现出高度一致性:在所有演化骨干模型中,外部评判者认证了74到98个内部接受的问题中的绝大部分,其中DeepSeek-Reasoner达到94/98(约96%),Gemini-3-Pro-Preview-Thinking更是达到98/98。这表明通过检查提出的解法步骤来过滤无效生成是有效的。在难度提升方面,大多数求解器-演化器对的演化后准确率(Evolution-SR)低于原始准确率(Origin-SR),表明演化问题系统性地更难。效果不仅出现在较弱的求解器上,也出现在强大的闭源模型上:GPT-5.2-High在DeepSeek-Reasoner演化的问题上从70%降到64%,在Gemini-3-Pro-Preview-Thinking和Seed-2.0-Pro演化的问题上降到61%。Gemini-3-Flash-Thinking的下降最为剧烈,最多下降32个百分点。在推理成本方面,演化问题的平均token消耗(ATC)分布明显右移,中位数从原始问题的9,606 tokens增加到DeepSeek-Reasoner演化的17,277 tokens,表明演化问题需要更长的推理链。在效率方面,Gemini-3-Pro-Preview-Thinking是最高效的演化器,平均仅需1.56次失败rollout,而Kimi-K2-Thinking的平均失败次数最高达6.55次。失败主要来自可解性验证(而非难度验证),表明保持数学上有效的问题和解法链是自主问题演化的主导瓶颈。代码消融实验显示,代码辅助的演化在9对演化器-求解器组合中有7对降低了求解率,平均从25.7%降至23.1%。人工审计确认GPT-5.2-High作为评判者的可靠性:有效性精确率99.2%,求解正确性人机一致率92.5%,难度评分完全一致率79.3%,差一分以内一致率95.9%。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 可解性验证一致性(DeepSeek-Reasoner演化) | 外部认证/内部接受 (AR) | 94/98 | N/A | 96%一致性,内部验证器可靠 |
| 可解性验证一致性(Gemini-3-Pro-Thinking演化) | 外部认证/内部接受 (AR) | 98/98 | N/A | 100%一致性 |
| GPT-5.2-High在DeepSeek-Reasoner演化问题上的求解率 | Evolution-SR vs Origin-SR | 64% | 70%(种子问题) | 下降6个百分点,难度有效提升 |
| GPT-5.2-High在Gemini-3-Pro-Thinking演化问题上的求解率 | Evolution-SR vs Origin-SR | 61% | 70%(种子问题) | 下降9个百分点 |
| Gemini-3-Flash-Thinking在DeepSeek-Reasoner演化问题上的求解率 | Evolution-SR vs Origin-SR | 35% | 56%(种子问题) | 下降21个百分点,最大降幅之一 |
| Gemini-3-Flash-Thinking在Gemini-3-Pro-Thinking演化问题上的求解率 | Evolution-SR vs Origin-SR | 24% | 56%(种子问题) | 下降32个百分点,最大降幅 |
| 演化失败后的人工验证中断率 | Failure-after-evolution rate | 49.1% | N/A | 166/338个适用求解器-问题对中,求解器解对了种子但解错了演化问题 |
| 代码消融实验(平均求解率) | 代码 vs 无代码求解率 | 23.1%(有代码) | 25.7%(无代码) | 代码辅助降低2.6个百分点求解率 |
| IMO/CMO子集难度评分 | 人工评分均分 | 4.03/5(人工) | 3.80/5(GPT评判) | 34/35问题达到3分以上,确认竞赛级问题难度有效提升 |
局限与改进
论文承认了以下几个主要局限性。首先,种子问题的规模相对较小,仅使用了100个种子问题,主要因为整个流水线计算成本高昂——每个演化问题需要反复进行生成、求解、可解性验证和难度验证。扩展到更大更多样的种子集将为研究发现的普适性提供更强的证据。其次,虽然实验表明生成的问题是可解的且比种子问题显著更难,但论文没有进一步验证这些问题是否能用作训练数据来提升模型性能。由于研究聚焦于问题适应和难度增强,评估生成问题的下游训练价值仍是重要的未来方向。第三,评估数学问题的质量本质上是劳动密集型的,通常需要专家人工判断,因此论文仅对采样案例进行了人工评估而非整个生成集。从独立观察来看,还存在以下值得关注的局限:(1)框架依赖GPT-5.2-High作为外部评判者,虽然人工审计显示高一致性(92.5%),但评判者的偏见可能影响评估的客观性;(2)每个种子问题仅生成一个演化实例,限制了对生成多样性的评估;(3)论文未深入分析不同数学领域(代数、组合、数论等)的演化效果差异;(4)1.56到6.55次失败rollout的效率表明,对于困难案例(超过10次迭代),计算成本可能成为实际应用的障碍;(5)难度验证智能体的5分制评分存在主观性,不同评估者对'数学美感'的理解可能不同。
独立分析的弱点
论文存在几个可以改进的弱点。第一,种子问题多样性不足——100个种子问题虽然覆盖了代数、组合、微积分、序列和图论等领域,但规模有限,且主要来自英语竞赛和教材,缺乏对非英语数学传统(如中国高考、日本数学奥林匹克等,尽管案例研究中有所涉及)的系统覆盖。改进方向:构建更大规模、更多语言和文化背景的种子库,并按领域和难度分层采样。第二,演化方向的单一性——当前框架每个种子仅生成一个演化实例,限制了问题空间的探索广度。改进方向:引入多样性奖励机制,鼓励从同一种子生成多个不同方向的演化问题(如从一个组合问题分别向图论、数论、代数方向演化)。第三,效率瓶颈——双验证机制虽然提高了可靠性,但引入了显著的计算开销,Kimi-K2-Thinking平均需要6.55次失败rollout。改进方向:训练专门的小型验证模型替代通用LLM验证,或引入早期剪枝策略在演化过程中提前终止明显无效的探索。第四,缺乏下游训练效果验证——论文仅评估了演化问题对求解器的难度影响,未验证这些用于训练是否能实际提升模型能力。改进方向:将演化问题用于SFT或RLHF训练,评估对模型数学推理能力的提升效果。第五,代码消融实验的非确定性——代码辅助在某些求解器-演化器对上反而提高了求解率(如DS-NT演化的问题被DS-NT求解时,有代码13% vs 无代码11%),说明代码并非总是有益。改进方向:研究哪些类型的数学问题更适合代码辅助演化,建立代码使用的条件决策机制。
未来方向
论文和基于研究发现可延伸的未来方向包括:(1)提升rollout效率——当前的严格双验证虽然提高了可靠性,但引入了计算开销,未来可以探索更高效的验证策略,如训练专门的轻量级验证模型或引入渐进式验证(先快速筛选再精细检查);(2)强化可解性保证——虽然内部验证器与外部评判者的一致性很高,但仍有少量不一致案例,未来可以探索更严格的数学证明方法来保证可解性;(3)探索超越数学推理的泛化——当前框架专注于数学问题演化,但代码驱动的探索策略可能适用于其他结构化推理领域,如编程题生成、逻辑谜题设计、科学假设生成等;(4)大规模自我进化循环——论文发现的能力不对称性(模型可以合成超越自身求解能力的问题)为迭代自我进化提供了可能,未来可以探索多轮演化-训练循环,持续提升模型能力;(5)多模态问题演化——当前框架仅处理纯文本数学问题,未来可以扩展到几何图形、数据可视化等多模态数学问题;(6)人机协作问题设计——将智能体的探索能力与人类数学家的直觉结合,辅助人类设计更高质量的竞赛题目;(7)问题难度的细粒度控制——当前的5分制评分较粗,未来可以探索连续难度度量和精确的难度调控机制。
复现评估
论文在可复现性方面做出了较好的努力。代码和数据已在GitHub开源(https://github.com/TarferSoul/Code2Math),包括种子问题、演化问题、智能体提示模板和评估结果。框架基于Smolagents开源库实现,提供了完整的工具栈(SymPy、Z3、NetworkX、itertools等)。论文详细报告了实现细节:100个种子问题、每个种子1次演化运行、最多20次rollout、最大轨迹长度30步、求解器最多3次尝试、30分钟超时限制、温度设为0。然而,完全复现仍面临一些挑战:(1)计算成本高昂——每个演化问题需要多次生成和验证,使用5个演化模型和6个求解器模型,总计算量可观;(2)模型版本依赖——实验使用了多个闭源模型(GPT-5.2-High/Medium、Gemini-3-Pro-Preview-Thinking等),这些模型的API可能随时间变化;(3)评判者偏差——使用GPT-5.2-High作为统一评判者,虽然人工审计显示高一致性,但不同时间的模型版本可能导致结果差异;(4)随机性因素——虽然温度设为0,但LLM的输出仍可能因API版本更新而有差异。总体而言,对于拥有足够计算资源和API访问权的研究者,复现论文的主要结果是可行的,但精确复现所有数字可能因模型版本差异而有挑战。
论文图表
展示了演化智能体的完整提示模板,包括七个部分:任务使命与核心原则、工作流程(探索优先、最终答案最后)、关键强制规则、数学构造指导原则(发现负担的黄金规则、逻辑完整性原则、问题类别与答案格式)、最终输出规范、可用资源、最终检查清单。
揭示了智能体设计的详细指导方针,特别是'探索优先、最终答案最后'的工作流和'发现负担'的黄金规则,这些是框架成功的关键设计决策。
展示了可解性验证智能体的完整提示模板,分为两个阶段:Phase 1静态问题分析(域值合理性检查、约束一致性检查),Phase 2逐步逻辑审计(冲突检查、推导验证、逻辑谬误检测,包括变换错误、过度推广、无效构造、错误除法、循环论证、逻辑违反、隐藏假设、边界忽视、模糊论证等具体失败模式)。
详细展示了质量控制机制的设计,特别是两阶段验证和具体的失败模式分类,这些是确保生成问题数学正确性的关键。
展示了难度验证智能体的完整提示模板,包括核心难度评估标准(洞察力优先于执行力、有效vs无效难度增加)、分析工作流(分析原始问题→分析新问题→对比→判断→输出)、以及5分制评分标准(1分=未改变解法路径,2分=仅增加计算繁琐度,3分=打破标准模板,4分=需要非平凡洞察且具有反模板性,5分=额外具有数学美感)。
展示了如何将'发现负担'的概念操作化为可执行的评估标准,5分制评分的详细定义是理解论文难度评估框架的关键。
展示了外部可解性评估器的提示模板,要求检查问题陈述是否存在逻辑错误或矛盾,以及问题是否在数学上可解。输出格式为JSON,包含has_logic_error、is_solvable、solution_correct、overall_valid等字段。强调对解答的小错误(计算错误、打字错误)应持宽容态度。
展示了外部评判者的评估标准,理解这一标准对于评估内部验证器与外部评判者的一致性至关重要。
展示了求解器模型的提示模板,要求模型作为杰出数学专家和金牌数学奥林匹克教练来求解问题。要求深度推理、LaTeX格式化、严格JSON输出格式(包含question_summary、solution_steps、final_answer)。
展示了求解器的标准化评估设置,确保所有模型在相同条件下被评估。
展示了解答评估器的提示模板,使用1.0/0.5/0.0三级评分:1.0=完美(逻辑健全、计算无误、答案正确),0.5=小瑕疵(答案正确但有表述问题),0.0=错误(答案错误或逻辑根本错误)。
展示了求解器输出的标准化评估标准,是实验评估方法论的重要组成部分。