看到“自主多智能体数学发现挑战现有共识”这个标题时,我的第一反应是警惕,不是兴奋。因为在数学这个领域,“发现”和“声称发现”之间隔着一条极深的河。一个多智能体系统可以在几分钟内生成几十条看似合理的猜想,也可以构造出一个貌似反例的构造,但其中有多少能被严格定义、被形式化验证、被数学共同体接受,完全是另一个问题。
但警惕不等于否定。真正值得讨论的,是它把矛头指向了一个长期被默认的工作流假设:数学发现只能靠人类灵感。过去二十年,机器学习在数学里更多扮演的是近似计算和辅助验证工具,而自主多智能体系统把“提出猜想—尝试反例—修正表述—再次验证”的循环部分自动化之后,数学研究的上游——问题提出、反例构造、概念类比——第一次出现了被系统化探索的可能。这个变化,比“AI 自动证明了一条定理”更值得认真拆解。
1. 自主多智能体在数学发现里,到底做了什么
1.1 不只是一个模型多次调用
很多第一次接触“自主多智能体”的人,会误以为它是把同一个大模型多跑几遍,或者把多个模型堆在一起投票。这是理解偏差。
一个可用的自主多智能体数学发现系统,通常由多个承担不同职责的智能体组成,它们不是并行输出,而是围绕同一个数学问题形成协作循环。常见角色包括:
- 探索者(Explorer):负责提出候选猜想、构造类比、改变定义或参数范围。
- 批评者(Critic):负责挑毛病,尝试为候选命题构造反例、找出未声明的前提条件。
- 验证者(Validator):负责把通过初步审查的结论落到更可验证的工具上,比如符号计算、定理证明器、数值检验。
- 整合者(Integrator):把探索、批评、验证的过程记录成可读报告,保留轨迹,供人类判断或下一轮迭代使用。
这里的核心不是“智能”,而是分工。不同角色使用不同的提示策略、不同的工具调用方式、不同的输出约束。探索者可以更发散,批评者可以更苛刻,验证者必须更保守。这样一个系统产生的结果,会比单个模型连续追问更接近“可追踪的探索过程”。
1.2 它解决的是“数学灵感无法流程化”的问题
数学家的工作方式,往往是长期浸淫一个领域之后,突然在某个瞬间产生一个想法。这种模式很高效,但很难复制,也很难并行。多智能体系统想解决的问题恰恰在这里:它把“提出想法—否证—修正”这个隐性过程显式化。
你可以在系统里预设多组初始条件,让探索者在不同方向同时提出猜想;可以让批评者在一个猜想上反复攻击;可以让验证者对剩下的候选命题做数值抽样。这些操作不是某个数学家的灵感被复制了,而是探索过程本身被流程化了。
这也是为什么这类系统适合放在数学研究的“上游”:它不追求立刻给出证明,而是想把“该研究什么问题”和“这个方向有没有被忽略的反例”这样的事变得可以被批量处理。
注意:不要把“多智能体数学发现”理解成“AI 自动证明定理”。它更像一个不知疲倦、但没有判断力的研究助理团队,能在你指定的方向里快速生成大量候选和反例,真正能留下来的结论仍然要经过严格验证。
2. 它挑战的现有共识,到底是什么
2.1 共识:数学发现是灵感驱动的,无法工程化
很多数学工作者心里都有一个默认假设:真正有价值的发现来自个人的灵感、品味和长期训练。机器可以做计算,可以做穷举,但“发现”这一步不是流程能催生出来的。
多智能体系统挑战的正是这个假设,但它没有说“不需要人”。它说的是另一个判断:灵感不是凭空出现的,它通常是在大量潜在地尝试、失败、比较、剔除之后浮现出来的。这部分“尝试—失败—剔除”工作,是可以被自动化加速的。
当探索者一次提出上百个候选猜想,批评者快速排除大部分,验证者把通过初筛的分类整理出来,人类研究者要做的就不是从零开始想问题,而是从一组“机器已经初步过滤过的候选”里做判断。这个过程并不会取代人的品味,但它会改变品味发挥作用的位置。
2.2 共识:AI 只能验证,不能提出有意义的问题
过去很长一段时间,机器学习在数学里的标签是“辅助工具”。它可以做近似计算,可以在搜索空间很大的情况下做优化,可以在人类指定范围内搜索反例。但“提出一个有研究价值的问题”被认为是人类独有的能力。
多智能体系统打破了这个边界,但方式不是靠一个模型突然获得数学直觉,而是靠结构化的探索策略。比如:
- 让探索者把两个不相关的结构做类比,生成“如果 A 和 B 在某种变换下同构,那么在另一个条件下是否有类似性质”这类候选命题。
- 让批评者对一条已知定理的每个前提做“删减测试”,看看删掉哪个条件之后结论是否还成立。
- 让验证者从失败的反例中提取“边界情况”,形成新的参数区间。
这不是机器产生了“灵感”,而是系统把“提出有意义的候选”变成了一个可搜索的过程。它不一定总能提出让人眼前一亮的问题,但它的产出范围和覆盖面,已经超过了单人靠阅读和记忆能覆盖的规模。
2.3 但它没有挑战数学证明的严谨性
需要说清边界。多智能体系统可以挑战“发现过程只能靠人”的共识,它没有挑战“结论必须被严格证明”这个更底层的共识。
事实上,绝大多数多智能体数学发现系统,越是接近生产环境,越会把验证环节交给形式化工具或确定性算法。因为大模型的输出天然不稳定,如果让同一套模型既提出猜想又自我验证,那么系统只是在生成“合理文本”,并不是在生成数学知识。
所以准确的说法是:它挑战的是数学研究的“生产力模型”,而不是数学知识的“确定性标准”。它对“机器能提出有意义的反例”做了激进一点,但对“什么才算证明”反而变得更加保守。
3. 搭建一个最小可用系统,架构怎么设计
3.1 四个必要模块
如果你想自己验证这类系统,不需要一开始就做得很重。一个最小可用的系统至少需要四个模块,每个模块可以是一个独立脚本,也可以是一组提示词。
| 模块 | 职责 | 关键要求 |
|---|---|---|
| 探索器 | 生成候选猜想、类比、参数变化 | 输出格式尽量结构化,避免模糊自然语言 |
| 批评器 | 尝试构造反例、找出隐藏前提 | 独立于探索器,不能复用同一套上下文 |
| 验证器 | 用符号计算、穷举、证明助手检查 | 结果必须是确定性输出,不能是“看起来对” |
| 编排器 | 调度各模块、保存中间轨迹、控制迭代 | 记录每轮输入输出,便于复盘和重启 |
这里最容易踩的坑,是让探索器和批评器共用一个模型实例、甚至共用一个会话上下文。那样批评者会继承探索者的乐观假设,导致它很难发现真正的反例。更稳妥的做法是:批评者使用独立的上下文,只看候选命题本身,不看探索者中间还想过哪些方向。
3.2 一个概念性的运行流程
下面是一个极简的结构示例,用来展示协作流程,不是某个具体库的正式 API:
# 概念示例:自主多智能体数学发现的单轮迭代 candidates = explorer.propose(seed_question, k=20) surviving = [] for c in candidates: attack = critic.refute(c) if attack.is_empty(): check = validator.check(c) if check.confidence == "verified": surviving.append(c) else: log_failure(c, check.reason) else: explorer.record_refutation(c, attack) integrator.summarize(surviving)实际工程里,每一步都可能需要调用外部工具。比如验证器执行一组数值抽样,或者调用符号计算库做展开和化简;批评者可能需要运行一个小型的穷举脚本,来搜索特定范围内的反例;探索器则可能从一个固定的候选池出发,而不是完全自由生成。
3.3 环境准备和依赖选择
如果你只是想跑通一个最小系统,建议从以下组合开始:
- 大模型接口:至少支持两个独立会话角色,最好能自定义 temperature。
- 符号计算库:例如 SymPy,用于表达式化简、展开、求导、判定等式是否恒真。
- 穷举脚本:用 Python 写一个针对小范围参数空间的搜索器,速度会比 LLM 判断更可靠。
- 输出标准化:所有候选猜想都用一种结构描述,比如
{domain, assumptions, proposition},避免自然语言歧义。
我不建议一开始就引入重量级证明助手。不是因为它们不重要,而是因为它们的编写门槛和调试成本较高。先让整个流程能跑通,确认“探索—批评—验证”这个循环是真的有效的,再逐步把验证环节换成更严格的证明助手,会更容易定位问题。
4. 实操路径:从复现已知结果开始
4.1 先不要追求“新发现”,先复现一条已知定理
这是我给这类系统定的第一条铁律。第一次搭建时,目标不要设成“发现新数学”,而是选一个已知的重要定理或已知的边界反例,让系统自己走到同样的结论。
比如你可以选择一条带有明确前提条件的简单性质,然后让探索器生成候选命题,让批评器尝试反驳,看系统能否稳定识别出“前提 A 被去掉了”会导致命题不成立。能做对这一点,说明链路的逻辑是通的;做不到,说明某个环节仍然依赖隐含假设。
复现已知结果的好处是可验证、可对照。你可以把每一步产生的失败记录和人工分析结果对比,快速找到系统的薄弱环节。如果一上来就跑未知问题,你很难判断“系统没找到反例”究竟是问题真的不存在,还是探索器根本没走到正确区域。
4.2 参数和策略选择
在实际运行中,比改提示词更影响结果的是这些参数和策略:
- temperature:探索器可以设置在 0.7 到 1.0,让它更发散;批评器可以偏低,比如 0.2,让它更稳定。
- 候选数量:不要一次让探索器生成几百个候选。通常 20 到 50 个足够让批评器开始工作。量太大时,验证器会被无效候选淹没。
- 多轮迭代:一轮探索很难直接得到可靠结论。更常见的是“发现反例—回到探索器修正—再验证”的循环。
- 随机种子:如果要复现一次“发现”,固定随机种子和初始候选池非常关键。数学发现系统的输出天生不稳定,没有种子管理,失败后无法排查。
4.3 从单任务到批量的节奏
当一个已知问题复现成功之后,才考虑扩大任务范围。批量运行前,先确认三件事:
- 输出的候选猜想格式是否完全统一。
- 失败日志是否足够清晰,能定位到是探索阶段、批评阶段还是验证阶段出了问题。
- 验证器的结果是否能被二次复现。
如果这三件事都有明确答案,批量才有意义。否则你只是把一个不稳定的流程放大了很多倍,得到的结果很难追溯。
批量前先用一个样本跑通,确认输入、输出和日志都能对得上。数学发现系统里,错误不是来自某个环节单独出问题,而是来自环节之间的信息丢失。
5. 当一个“AI 发现”出现时,怎么排查它是不是真的
5.1 不要一开始就相信任何“反例”
多智能体系统产生的“反例”是最危险的输出。它看起来像数学反例,但很可能只是在自然语言层面像一个反例。
当一个反例出现时,至少按下面顺序排查:
- 检查定义域。候选命题里说的是整数、自然数还是实数?0 是否包含在内?负数是否允许?很多模型会默认“自然数”为正整数,但数学语境里各本书定义不同。
- 检查隐含前提。命题是不是默认了某些常见但未声明的性质,比如函数可导、集合有限、运算封闭?
- 检查反例是否越界。如果命题要求“对所有自然数成立”,批评者给出的反例是不是构造在自然数集合之外?
- 检查验证器是否用了确定性算法。如果验证者也是 LLM,那这不是验证,只是另一个人的意见。
- 检查符号化简是否可靠。比如变量替换、分母为 0、极限顺序交换,都可能导致误判。
- 多次独立运行。同一个反例如果只出现过一次,先标记为“可疑”;如果多次出现且形式一致,才进入人工检查。
- 对照已有文献。很多“新发现”只是某本教材里的常见反例或经典结论,只是系统没有训练到足够的区分度。
5.2 幻觉最容易隐藏的位置
在多智能体协作里,幻觉不一定出现在最终输出,更常出现在中间推理。批评者可能会说“因为当 x = 1 时,左边为 0,右边为 1”,但如果你复算一遍,可能两边相等。这种错误很难被下一个智能体识别,因为下一个智能体默认上一步是可信的。
这也是为什么验证环节必须使用确定性计算工具,而不是依赖模型自我检查。你可以让 LLM 完成探索和批评,但“左边等于右边”这种判断,必须落进符号计算或穷举脚本里。
5.3 构建一条证据链
一个真正能进入人工审查的“发现”,至少应该附带下面几条信息:
- 候选命题的完整形式化描述。
- 批评者尝试过的反例集合。
- 验证器执行的具体检查命令和结果。
- 每一次失败迭代的摘要。
- 系统运行时的版本、种子和参数。
没有这些信息,一个输出只能算“灵感片段”,不能算“发现”。多智能体系统真正比单个模型强的地方,不是它能生成正确结果,而是它能生成可供检查的轨迹。
6. 适用边界和长期价值
6.1 适合做什么,不适合做什么
需要承认,这类系统不是万能的。它更适合以下场景:
- 候选生成:在给定概念空间里枚举可能的性质、公式或结构关系。
- 反例搜索:在有限参数空间内寻找违反直觉的构造。
- 类比迁移:把一个结构里的已知性质,迁移到另一个相似结构里,生成新猜想。
- 教学辅助:帮助学生理解一个定义的边界条件,为什么需要这些前提。
它不适合的场景也很明显:
- 需要严格证明的困难猜想:系统可以提出候选方向,但很难独立完成长链条证明。
- 涉及大量未形式化概念的领域:如果命题里的概念无法被清晰编码,系统的“探索”很容易变成词语游戏。
- 没有确定性验证手段的领域:如果只能靠人工判断,那么多智能体只是提高了文本生成速度,没有提供知识增量。
6.2 长期来看,它改变的是数学研究的分工
把时间拉长看,自主多智能体系统真正可能改变的不是“机器会不会证明定理”,而是数学研究者在一天里把时间花在哪里。
过去,一个数学家可能要花大量时间搜索文献、验证某个方向是否已经有人做过、尝试小范围数值实验、排除直觉上不太可能的方向。这些工作正在逐渐被自动化。未来更合理的协作方式是:系统负责大规模探索和反例过滤,人类负责定义值得探索的方向、判断哪些候选有“数学味道”,最后用形式化验证和严格证明确认结果。
这个分工调整,会导致“做数学”这件事里的高价值技能发生变化。创造力仍然重要,但它是体现在选择问题和构建验证流程上,而不是体现在一个人能在草稿纸上坚持推演多久。
6.3 回到主判断
自主多智能体挑战现有共识的方式,不是宣称“AI 可以证明一切”,而是把“数学发现”从少数天才的灵感事件,改造成一个可以组织、可以并行、可以追溯、可以反复实验的工程流程。这个过程一定会产生大量噪声,也会有一些令人惊讶的候选,但真正决定它能不能进入数学主流的,不是生成能力,而是验证能力和人对证据链的把控能力。
如果你也想尝试搭建一套这样的系统,我建议你把第一个目标定为复现一条已知定理,而不是挑战某个著名猜想。理由很简单:你只有亲眼看过这个系统如何失败,如何被边界条件欺骗,如何在不该自信的地方自信,才知道在未知领域里该在哪个环节增加一层检查。数学发现这件事,最终不是靠模型一句话赢得信任,而是靠整条证据链的每个环节都经得起追问。