中国政策档案 Governance Archive HOLDINGS 234,771 · FONDS 122
Record · qbitai ACC. 900072561

GPT-5.6 Solves 50-Year-Old Math Conjecture in One Hour

GPT-5.6一小时解开50年数学猜想,700词Prompt驾驭64个子Agent

Issuer
Date
2026-07-11
Instrument
other
Cited by
0
This article reports that OpenAI's GPT-5.6 model solved the Cycle Double Cover Conjecture, a long-standing open problem in graph theory, in under an hour using 64 sub-agents and detailed prompt engineering.
Full text · 原文 4,135 字
henry 发自 凹非寺<br> 量子位 | 公众号 QbitAI<br> 我看呐,只要以后笔记本半开着,就没有人的事儿了。<br> 刚刚,OpenAI研究院Ethan Knight宣布:<br> 昨儿刚出的GPT-5.6,用不到一小时,就完成了一道存在了半个世纪的图论猜想证明。<br> 而这道题呢,来头也还真不小,就是大名鼎鼎的循环双覆盖猜想(Cycle Double Cover Conjecture)。<br> 为解决这道题,研究员把现在最顶的GPT-5.6 Sol蹬到Ultra;GPT呢,又自己蹬了64个子agent。<br> 最后,硬是写出了一份三页的pdf,证明完毕,Over。<br> 发布后,还在韩国开ICML的Noam Brown(o1核心贡献者)也隔着太平洋第一时间赶来捧场。<br> 他表示,这次和此前的Erdős单位距离问题不同,不靠什么内部特供模型,靠公开能用的GPT-5.6 Sol Ultra就把活儿干了。<br> 而且,GPT-5.6 Sol Ultra把测试时计算并行大幅铺开,原本可能要磨上一整天的证明,如今被64个子agent压进了一个小时。<br> 可以说,在数学这块,前沿模型的天花板还在拉高。而多agent,也能极快地加速任务的处理时间。<br> 当然,你可能会问,那咋了?AI不老证明数学题吗?<br> 但这次还真不太一样,OpenAI这次顺手放出了完整prompt,而这里面就有驾驭GPT-5.6这类神话级模型的保姆级技巧:<br> 不替模型规定解法,只把验收标准钉死。<br> 定义、范围、边界情况,提前一次说清,适当重复目标,防止上下文漂移。<br> 不只说要什么答案,还写清什么不算答案。<br> 复杂任务不要固定分工,而要动态搜索,并设置独立审查。<br> 接下来,我们一起来看。<br> 一小时秒杀的,究竟是什么题<br> 先说这个题本身。<br> 循环双覆盖猜想,通常被追溯到Tutte、Itai 与 Rodeh、George Szekeres、Paul Seymour等数学家在上世纪陆续提出,长期被视为图论中最重要的开放问题之一。<br> 它问的是:<br> 给你一张由点和线组成的图,能不能找出一批首尾相接的“圈”,让图上的每一条边,都刚好被这些圈经过两次?<br> 咱们以上图为例:白圈是路口,彩线是道路,A到J是十个顶点。<br> 最外面的绿色路线从A出发,依次经过B、C、D、E,最后重新回到A,这就是一个圈。<br> 但只有绿色这一圈还不够,因为它只经过了图最外侧的几条边,而且每条边目前只被覆盖了一次。<br> 要满足圈双覆盖,还需要继续加入更多能够绕回起点的路线。<br> 比如蓝色路线也经过了A到B,随后拐进图的内部,最后重新回到A。<br> 这样一来,A到B这条边就被覆盖了两次:绿色一次,蓝色一次。<br> 其他边也要用类似的方法补齐。最终,无论挑出图中的哪一条边,都应该恰好有两个圈经过它。<br> 这些圈可以互相重叠,也可以共享很多条边;它们不需要是图中最短、最外侧或最规整的圈。唯一的要求就是:<br> 每一条边,在所有圈中出现的总次数必须恰好等于二。<br> 此外,这里还要补充一个关键条件:这张图必须是无桥图。<br> 所谓“桥”,就是一条一旦被删除,整张图就会被断开的边。<br> 比如我们把上面的A—F删掉,路线仍然可以沿着A—B—G—I—F,从另一条路到达F,整张图不会因此断开。<br> 乍看之下,这个猜想似乎很自然。<br> 一张图只要没有桥,那么每一条边至少都属于某个圈。既然每条边都能塞进一个圈,把这些圈收集起来,不就完成了吗?<br> 可问题在于,圈双覆盖要求的不是“至少覆盖一次”,而是每一条边恰好覆盖两次。<br> 你为了补上一条只出现过一次的边,加入一个新圈,可能会顺便让其他边从两次变成三次;为了修复这些边,又可能继续影响更多边。<br> 因此,难点并不是单独为每条边寻找一个圈,而是让所有圈在整张图上同时协调:<br> 既不能漏掉任何边,也不能让任何边多出现一次。<br> 那GPT是怎么做的?<br> 它没有硬找圈,而是先给边贴标签<br> GPT-5.6在这份证明稿没有直接在图里寻找一堆圈,而是换了一种思路:<br> 先把“找圈”转化成一个有限域上的边标号问题,再用线性代数证明这些标号一定能够在整张图上拼起来。<br> 证明大致分成四步。<br> 第一步,先把一般图归约成三次图,也就是每个顶点都恰好连着三条边。只要三次图的情况被证明,原问题也就随之解决。<br> 第二步,利用无处为零的8流定理,给每条边贴上一个非零的“三位二进制标签”。这些标签还满足一个条件:在每个顶点处,相邻三条边的标签能够彼此抵消。<br> 第三步,再把每条边的一个标签,扩展成两个标签。目标是让同一个标签在每个顶点附近,要么完全不出现,要么恰好出现两次。<br> 这样一来,把所有带有同一个标签的边单独拿出来,它们自然会首尾相接,组成若干个圈。由于每条边恰好带两个标签,也就恰好属于两个圈。<br> 第四步,也是最关键的一步,是让这些局部标签在整张图上彼此一致。<br> 因为同一条边连接两个顶点,两端给出的标签必须完全相同。GPT-5.6把这个全局协调问题转化成一个线性方程组,再用对偶空间和奇偶性证明,这组方程一定有解。<br> 最终,所有局部标号都能拼成一个统一的全局方案,相同标签的边自动组成圈,每条边也恰好被两个圈覆盖。<br> 总的来说,这份证明最核心的思路是:<br> 它没有直接去找一批圈,而是先设计一种特殊的边标号,让圈自己从标号中“长出来”。<br> 原本复杂的图结构问题,也就被转化成了一个可以用线性代数解决的全局一致性问题。<br> 普通人能抄的prompt作业<br> 最后,就到了我们非数学专业人也能用到的环节。<br> 就像开头所说,OpenAI这次还公布了完整的prompt。<br> 先说这套提示词给人的第一印象,就是非常长,大约700个英文字符。<br> 它一方面说明,如今的模型已经能够消化相当复杂、相当具体的长指令;另一方面,也延续了最近炒得很好的loop engineering以及“神话级模型”一贯的prompt风格:<br> 不规定一套固定 SOP,而是定义最终结果与验收标准。<br> 换句话说,它不替模型规定“第一步做什么、第二步做什么”,而是把什么才算真正完成、哪些结果不算完成,全部写清楚。<br> 具体展开来看,这份prompt有四点尤其值得学习。<br> 第一,不写解题步骤,但要写清楚“什么叫解完”<br> 很多人写复杂任务的prompt,第一反应是给模型安排一套流程:<br> 先分析问题,再提出方案,再逐步验证,最后总结答案。<br> 但对于真正困难、路径未知的任务,SOP未必有用。<br> 因为你事先写下的步骤,很可能本身就是错的。模型一旦沿着错误路线执行得非常认真,最后只会得到一份结构完整的错误答案。<br> OpenAI这份prompt采取了相反的思路:<br> 它不规定模型必须使用归纳法、流理论还是极小反例,而是反复强调,最终结果必须满足什么条件。<br> 比如,它直接把验收标准锁定为:<br> 每一个有限、无桥、无自环的多重图,都必须被证明存在圈双覆盖。<br> 与此同时,它还还明确禁止模型通过添加额外假设来“绕道”解决问题。<br> 不能只证明三次图,不能只证明平面图,也不能假设图一定连通。<br> 这类写法最值得借鉴的地方是:<br> 对路径未知的任务,不要过度规定过程,而要把最终交付物定义清楚。<br> 第二,把定义、范围和边界情况一次性说清楚。<br> 模型出现错误,很多时候并不是不会推理,而是一开始理解的任务就和你想要的不一样。<br> 所以,OpenAI在正式提出问题前,先花了很大篇幅定义:<br> 什么是图,什么是桥,什么是圈,什么是圈双覆盖;平行边是否允许;两条平行边能不能组成一个圈;不连通图算不算;无边图应该如何处理。<br> 它甚至专门强调:<br> 覆盖中的圈不必是诱导圈,也不必彼此边不相交;唯一要求是,每条边总共恰好出现两次。<br> 这里的作用,是把所有可能产生歧义的地方提前消掉。而越是重要的任务,越不能依赖模型“应该知道我是什么意思”。<br> 值得一提的是,在这份长prompt里,研究员还多次在不同位置重复“最终目标是什么”。<br> 这种重复看似啰唆,实际是在帮助模型长时间推理时不偏离任务。<br> 第三,不只告诉模型什么是答案,还要列出什么不算答案。<br> 这是这份prompt里最值得直接抄走的技巧。<br> 它没有停留在“请给出完整证明”这种抽象要求上,而是专门列出了一批看起来已经很接近、实际上仍然没有完成任务的结果。<br> 比如,只证明某些特殊图类,不算,构造出覆盖,但部分边不是恰好出现两次也不算;<br> 这种提前预测模型偷懒的方式,就先天地排除了一些可能失败的方式。<br> 第四,复杂任务不要固定分工,而要动态搜索,并设置独立审查。<br> OpenAI还要求模型调用最多64个智能体,但它没有简单地规定:<br> 10个智能体研究路线A,10个智能体研究路线B。<br> 相反,它要求先建立多样化的方法组合,再根据每条路线的实际进展动态调整资源。<br> 如果大量智能体都挤到同一种方法上,就把一部分重新分配到尚未探索的方向;<br> 如果某条路线卡在一个和原问题同样困难的引理上,就将它标记为“受阻”,除非出现新的机制,否则不要继续堆算力。<br> 此外,它还专门设置了“对抗性智能体”,负责检查候选证明有没有偷换定义、漏掉边界情况,或者把一个闭合路径硬说成圈。<br> 与此同时,每个子agent回来时必须带具体引理、方程、构造或反例。不能只汇报“有进展”。<br> 这里包含两个很实用的prompt原则。<br> 一个是,复杂问题需要探索多条互相独立的路线,不能让所有模型一开始就知道“当前最被看好的答案”,否则很容易集体收敛到同一个错误上。<br> 另一个是,生成答案和检查答案最好分开。不要让提出方案的模型顺手给自己的方案打分,而要专门安排一个角色找漏洞。<br> 所以,OpenAI这份prompt真正值得学习的,并不是它写得足够长,而是它把一个复杂任务写成了一份可以验收、可以审查、也可以不断纠错的任务合同:<br> 不规定唯一道路,但把终点、边界、失败条件和审查机制全部写清楚。<br> 到这里,就是我们从这份prompt里总结出来的几个技巧。<br> 完整链接就下面,有兴趣的朋友可以进一步学习。<br> 参考链接<br> [1]https://cdn.openai.com/pdf/04d1d1e4-bc75-476a-97cf-49055cd98d31/cdc_prompt.pdf<br> [2]https://cdn.openai.com/pdf/04d1d1e4-bc75-476a-97cf-49055cd98d31/cdc_proof.pdf