办公文档
解竞赛数学题(IMO/Putnam/USAMO/AIME)时…
当你需要求解或验证奥林匹克/竞赛数学证明题、寻找反例、判断证明是否正确时,用多智能体对抗验证流程替代自验证。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
解竞赛数学题(IMO/Putnam/US通用
解决思路
- 先做解释检查(30秒):读题后列出2-3种可能的解读,判断哪种解读会让题目变得平凡;若一种解读使题目简单、另一种使题目困难,则困难的那种几乎肯定是出题意图。明确声明你按哪种解读求解及理由(Aletheia案例中63个“技术上正确”的解有50个解错了题意)。
- 并行启动8-12个尝试智能体(仅用思考,禁止计算):每个智能体内部迭代——求解→自我改进→自我验证→修正→重复,最多5轮,直到自我验证连续两次干净通过或方法根本错误。
- 在提示词中逐字写入工具限制:禁止使用Bash、Python、WebSearch、Read、Write或任何运行代码/获取数据的工具;数值验证不是证明步骤,“我算了n=1..10模式成立”不算证明。若框架需要StructuredOutput等返回机制工具,那是报告工具而非计算工具,允许调用。
- 为每个智能体分配不同的起始角度:小案例测试(超过n=3)、寻找不变量或单调量、考虑极端情形、尝试归纳、寻找对称性、倒推、去掉条件看何时变平凡、推广(发明者悖论——更多结构有时更简单)。
- 每个智能体返回最终状态:Verdict(完整解/部分结果/无进展)、Rounds(验证-修正轮数)、Method(核心思路一段)、Detailed Solution(完整逐步、每步有据)、Answer(如适用)、Self-verification notes(发现并修正了什么、剩余疑虑)。若智能体失败或超时,重试一次。
- 清洗解答(上下文隔离,最关键的一步):在验证前剥离所有思考块内容、所有“让我试试…”“等等…”等过程性文字、所有错误起点和回溯;只保留题面+干净的最终论证,即只提取Method+Proof+Answer部分,验证者永远看不到求解过程。
- 对每个清洗后的解答启动全新的对抗验证智能体(全新上下文,只看到题面+清洗后的解答,无工具)。验证者的任务是攻击而非评分,运行特定失败模式检查:#4 该定理是否特化到著名对象(ζ函数、二次互反律等)并证明了其未决问题→有漏洞;#18 把证明自身的中间恒等式代入任何“剩余缺口”,若还原出原命题→同义反复;#40 任何“一行引理”都提取其一般形式,找2×2反例,若一般形式为假则找出是什么特殊结构救了本实例;#5 对每个引用的定理从头重查假设(“在[0,1]上连续”≠“在ℝ上连续”);#6 任何用正则化值“有界”的无穷和都要检查边界——若有极点则发散。
- 验证者返回:Verdict(HOLDS/HOLE FOUND/UNCLEAR);若HOLE FOUND则给出Location(引用问题步骤)、Pattern(触发的检查或other)、Why it breaks(具体原因)、Fixable?(可用X修复/根本不可修)。
- 按(verdict, 验证者置信度)排序解答,取最优者,运行最多5个全新验证者。采用非对称阈值:4个HOLDS确认,2个HOLE FOUND反驳(一个不稳定的验证者不应杀死正确证明,但两个独立异议是真实信号)。
- 使用鸽笼提前退出:2个HOLE FOUND→反驳并停止;4个HOLDS→确认并停止;3个验证者后若2 HOLDS+1 HOLE则再启动2个;若3 HOLDS+0 HOLE则再启动1个。
- 双重上下文隔离:每个验证者既看不到求解者的思考痕迹(步骤3已剥离),也看不到其他验证者的结论——每个验证者都以为自己是第一个,避免“已有3个智能体确认”的社会证明偏差。求解者不能验证自己的解,必须换智能体、换上下文。
- 当一个分支卡住时先退一步:若证明分情况讨论且一个分支易证、另一个分支顽固,在硬啃之前先问是否存在让分情况消失的路径。检查:情况B的假设对f在其他输入上意味着什么?是否有另一对(a,b)可代入控制方程?是否证得太多(更干净的矛盾需要更少机器)?硬分支的假设往往蕴含某个中间对象的强性质,直接使用它。
- 若验证发现漏洞,启动修正智能体:它拿到(清洗后的解答+验证者的漏洞报告),仍无原始思考访问权。提示词要求修复证明;若漏洞是根本性的则返回Verdict: no confident solution并保留部分进展;对任何无法完全闭合的步骤在文中内联标记[GAP: 具体描述],便于grep和下一轮修正。最多3轮修正,然后对修正后的证明重跑投票。
- 若模式#40触发(一行证明太干净),修正者使用更强的对抗简报,强制二选一:“一般引理显然为假(这是2×2反例)——要么找出本实例的特殊之处,要么找出证明在哪里断裂”,不允许返回“看起来没问题”。
- 深度模式(当紧预算流程弃权时):启动单个专注智能体,不限时间,允许有界计算(模运算检查、小案例枚举n≤10、符号恒等式验证),不允许探索性暴力搜索或无界递归。以弃权原因作为起点。在深度模式提示词顶部写明:禁止网络访问,不得使用WebFetch/WebSearch或任何联网工具,不得查找本题或其解答;唯一允许的计算是本地Bash/Python。若调用网络工具则证明作废。
- 深度模式计算边界:绝不精确计算双指数级对象(如b_{n+1}=2b_n²+b_n+1,b_99有约10^{2^98}位数字),改用ℤ/2^m、只跟踪v_p(·)或按关心的量取模证明递推。若计算超过60秒则可能是无界的,杀掉并改用符号方法。
- 步骤6d(不可跳过):验证阶段任何ABSTAIN之后,在写入弃权输出前自动启动一个深度模式智能体,给它题面、紧预算求解者的最佳部分证明、验证者的缺口描述,以及指令:“禁止网络访问——不要查找本题或其解答。允许有界本地计算(模2^k、小案例n≤10、仅用Bash/Python做符号恒等式检查)。60秒计算上限。若n≤10暴力搜索揭示了紧预算求解者漏掉的模式,该模式就是证明结构。”若它也弃权,才写入弃权。
- 编排者自我克制:编排者本身不得为了“帮忙”而网络搜索题目。若你想Fetch一个AoPS帖子“只是核对答案”,不要——那会污染技能输出并虚报其能力。
- 校准弃权:若3轮修正全部失败,停止并承认。输出Verdict: no confident solution,附What was tried(尝试的方法)、What WAS proven(通过验证的引理或部分结果)、Where it breaks(未修复的漏洞)。不要猜测——错误而自信比诚实地说“解不出”更糟,关键指标是条件准确率。
- 展示优化(正确性确立后):启动全新的展示智能体,拿到已验证的证明,问:最简单的说法是什么?哪些引理应内联、哪些应独立?是否有过度杀伤(线性足够却构造双指数)?既然已知答案,是否有3行的事后证明?输出LaTeX格式证明;若pdflatex可用(scripts/check_latex.sh返回0),通过scripts/compile_pdf.sh编译为PDF。
- 整卷处理(如某竞赛全部6题):每题启动一个求解工作流(相同逐字提示词、不同题面),并行运行;全部返回后逐题做对抗验证;通过者证明进入PDF,弃权者写“No confident solution”加部分笔记。不要试图在一个智能体上下文中解所有N题——每题需要自己的思考预算和全新的验证者。
- 批量时在每个agent()调用上设置opts.label包含题号(如label: "P3:solver:2"),否则36个结果返回时无法关联题目。并行运行题目,label才是关键,顺序不重要。
- 按模型层级配置:Haiku用8个求解者、3轮验证、2次修正失败后弃权、跳过展示;Sonnet用4个求解者、5轮验证、3次修正失败后弃权、做展示;Opus用3个求解者、5轮验证+完整模式扫描、4次修正失败后弃权、2份展示草稿选更干净的。弱模型更多并行尝试、更快弃权;强模型更深验证、更多展示投入。
- 数值答案题(AIME风格):跳过证明机器,运行5-7个不同方法的求解者,对数值答案多数投票;若无多数,用代入法验证前2个候选。
适用边界 · 注意事项
- 纯数值答案题(AIME风格)不需要完整证明流程,用多数投票即可
- 需要文献检索、查找已知解答或多日研究的数学研究问题,应使用math-research工作流而非本技能
- 深度模式中禁止网络访问——查找AoPS或博客上的解答不算解题,且会污染技能能力评估