把 "Mersenne 套路" 应用到任何新数学问题的 step-by-step 指南
完整 markdown 源文件:RECIPE.md。本 HTML 是渲染版,含 KaTeX 公式。如果要 copy-paste 给其他 LLM,建议用 .md 源。
本文档以 Goldbach 强猜想(每个 $> 2$ 偶数都是两素数之和)为示例,演示如何完整跑完 Template 1 + Template 2 v2。
| 状态 | 用模板 | 预算 |
|---|---|---|
| 命题模糊,想生成"路线图 + 候选命题" | Template 1 | ~18 agent / 10 分钟 / \$0.5–1 |
| 已有具体命题想严格验证 | Template 2 v2 | ~25 agent / 30-60 分钟 / \$1.5–3 |
| 完整研究:从开放问题到验证 | 先 1 → 选候选 → 2 | ~60 agent / 1.5-2 小时 / \$3-5 |
Mersenne 走的是路径 3:先用 Template 1 生成 5 候选,再用 Template 2 v2 对每个验证。
不论哪个模板,每个 agent 都需要这 2 个块(这是最重要的准备工作):
【问题】[完整数学陈述,含定义、变量、声明] 【已知现状】 - [关键已证事实 1] - [关键已证事实 2] - [失效的工具] - [已有周边结果,含人名 + 年份] - [启发式预测,如有]
Goldbach 示例:
【问题】Goldbach 强猜想:每个 > 2 的偶数都是两个素数之和。
即 ∀ n ∈ 2ℤ_{>1}, ∃ p, q prime, n = p + q。
【已知现状】
- 验证至 n ≤ 4×10^18(Oliveira e Silva 2014)
- Chen 1966("1+2"):每足够大偶数 = p + q 或 p + q1 q2
- Helfgott 2013:弱 Goldbach 已严格证
- 圆法(Hardy-Littlewood)启发式:r2(n) ~ C2 · n / (log n)^2
- 解析手段:大筛、外尔和、Vaughan 恒等式
- Maynard-Tao bounded gaps 不直接攻 Goldbach
- Schnirelmann 1939 + 大筛:每偶 = ≤ K 个素和(K 已 ≤ 4)
背景包通常 200-300 字。把它存为单独文件(如 /tmp/goldbach_brainstorm/_background.md),便于复制到每个 agent prompt。
Mersenne 用的 10 角度模板对 Goldbach 直接套用:
| # | 角度类型 | Goldbach 对应 |
|---|---|---|
| Q1 | 历史方法重用 | Hardy-Littlewood 圆法、Vinogradov 三素数定理、Chen "1+2"、Schnirelmann — 哪些可改造攻强 Goldbach? |
| Q2 | 跨学科类比 | 加性组合学(Plünnecke、Cauchy-Davenport)、信号处理(卷积)、随机图(Erdős-Renyi)— 有结构同形吗? |
| Q3 | 算法迁移 | SAT/SMT 证伪、ML 模型逼近 r₂(n)、量子放大估计 — 能给"算法式证明"吗? |
| Q4 | 经典启示 | Vinogradov 三素 ⟹ 弱 Goldbach;圆法主项扇区估计;改造给二素数? |
| Q5 | 等价重述 | r₂(n) > 0 ↔ Möbius 函数性质;指数和零点 ↔ Goldbach |
| Q6 | 拆分逼近 | Chen "1+2" → "1+1.5"?或限定到稀疏偶数子集? |
| Q7 | 新框架 | additive combinatorics 高阶 Fourier(Gowers 范数)能否给 Goldbach? |
| Q8 | 信息论 | 偶数 n 的 Goldbach 解集复杂度;PRF 假设下能证? |
| Q9 | 跨猜想杠杆 | GRH、Bombieri-Vinogradov、EH、Sarnak 哪个最弱蕴含 Goldbach? |
| Q10 | 反证 | 假设某偶数无 Goldbach 表示 → 与什么已证事实矛盾? |
用 Agent tool 并行启动 10 个 agent。完整 prompt 模板见 verbatim prompts 中"Phase 1: 单角度深探"段。
# Phase 2:5 个 pair agent 并行 对 (Q1+Q4) (Q2+Q3) (Q5+Q6) (Q7+Q8) (Q9+Q10),每对 1 个 agent # Phase 3:2 个大综合 agent 并行 agent A: Q1, Q3, Q4, Q5, Q9 → "体系内整合" agent B: Q2, Q6, Q7, Q8, Q10 → "跨界整合" # Phase 4:1 个最终综合 agent 读全部 17 份输出,写 HTML 章节
从 Phase 4 输出的"高优先级可攻命题"清单中选。选择标准:
目录结构:
mkdir -p ./reference_<project>_research/prop1/{papers,code,logs}
mkdir -p /tmp/<project>_brainstorm/prop1
echo "# Prop 1 Decision Log
[init] $(date -Iseconds) ok prop=1 template=v2 budget=25" \
> ./reference_<project>_research/prop1/decision_log.md
| 层 | agent | 并行 | 关键 |
|---|---|---|---|
| L1 | 7 | 5 角度 → 1 ranker → 1 sentinel | sentinel 是 v2 关键创新 |
| L2 | 2 | search → reader 串行 | arxiv 限速注意 |
| L3 | 6 | 全并行 | 1 numerical + 2 prover + 1 advocate + 2 lit-integrator |
| L4 | 4 | 全并行 | 解析 / 代数 / 数值 / 对手 4 票 |
| L5 | 2 | summary → decision 串行 | GO / NO-GO 决策 |
每层完成后更新 decision_log + 检查 kill switch。规则见 Template 2 文档 "Kill Switch 规则"段。
模板见 Template 2 "输出 HTML 章节结构"段。
很多 sub-agent 会自带 <style> 块和 inline styles,干扰你已有的项目 CSS。在 prompt 里显式说:
用 [DOC_NAME] 已有的 CSS class(box, box.warn, box.info, box.good 等)。 不要写 <style> 或 inline style 属性。表格用 <thead>/<tbody>。
git add work/ git commit -m "Run multi-agent pipeline on <project> proposition <N>"
让全项目研究索引(如 public/research/problems_summary.html 的子页面)能跳转到本次研究产物。
work/<topic>/cd /Users/l/Git/<project_root>/work/ mkdir -p <topic>/ # 移动所有 topic 相关文件 mv <topic>.html <topic>-proposition*.html <topic>/ mv reference_<topic> reference_<topic>_research <topic>/ # 如有 agent-talks(来自 /agent-talks:init) mv agent-talks-<topic> <topic>/agent-talks 2>/dev/null
最终 work/<topic>/ 结构:
work/<topic>/ ├── <topic>.html 主笔记 ├── <topic>-proposition[1..N]_*.html 各命题深入笔记 ├── reference_<topic>/ 文献 PDF ├── reference_<topic>_research/ 各命题资产 └── agent-talks/ (可选)
cd work/<topic>/ for f in *.html; do sed -i '' 's|href="multi-agent-research/|href="../multi-agent-research/|g' "$f" done
用 templates/topic_index.html 作骨架,替换占位符 {{TOPIC}}、{{TOPIC_SLUG}} 等。Landing page 是用户最先看到的页面,应含:
mkdir -p /Users/l/Git/<project_root>/public/research/explore
cp -R /Users/l/Git/<project_root>/work/<topic> /Users/l/Git/<project_root>/public/research/explore/
# 重要:让 ../multi-agent-research/ 链接在副本中也工作
cp -R /Users/l/Git/<project_root>/pipeline \
/Users/l/Git/<project_root>/public/research/explore/
多 topic 共享一份 multi-agent-research/。
找到 topic 在主索引(如 public/research/<area>.html)中的 <tr class="summary"> 行 + <tr class="detail"> 行,加 2 处链接。
(a) summary 行的标题旁加绿色徽章按钮:
<a href="explore/<topic>/index.html"
style="display:inline-block;margin-left:8px;padding:2px 10px;
background:#27ae60;color:white;border-radius:4px;
font-size:0.78em;font-weight:600;text-decoration:none;"
onclick="event.stopPropagation();">📖 Our explore paper</a>
onclick="event.stopPropagation();" 阻止行点击事件导致的展开/折叠 — 否则点击按钮会同时触发行展开。
(b) detail-body 内加高亮 panel:
<p style="margin-top:1em;padding:10px 14px;
background:#eaf4e8;border-left:4px solid #27ae60;
border-radius:4px;">
<strong>📖 Our explore paper</strong>:
<a href="explore/<topic>/index.html"
style="color:#27ae60;font-weight:600;">查看完整研究项目</a> —
<Topic 一句话摘要>。
关键发现:<最重要发现一行>。
</p>
完整模板:templates/explore_paper_link.html
把 8.1-8.5 部分自动化(除 8.5 主索引修改需人工):
cd pipeline ./scripts/publish_topic.sh <topic_slug> public/research/<area>.html
脚本:scripts/publish_topic.sh。它做:
cd /Users/l/Git/<project_root> git add work/<topic>/ public/research/explore/<topic>/ public/research/explore/multi-agent-research/ public/research/<area>.html git commit -m "Publish <topic> research to explore/ + add 'Our explore paper' link"
/agent-talks:update
会自动把所有对话轮归类到 research / issues / plan-changes / milestones 并生成 HTML。agent-talks/ 文件夹和 index.html 已包含在 Step 8.1 的归档里,所以不需要单独搬运。
curl -sG "https://export.arxiv.org/api/query" \ -H 'User-Agent: research-<project>/1.0 (mailto:user@example.com)' \ --data-urlencode 'search_query=ti:"<keyword>"' \ --data-urlencode 'max_results=20' sleep 5 # 至少 4-5 秒间隔
uv add arxiv-mcp-server(pypi files 在 Apple sandbox 下被屏蔽)pip install arxiv 然后 import(同 pypi 屏蔽)from sympy import factorint # ❌ factorint(2**127 - 1) # 超时 # ✅ factorint(2**127 - 1, limit=10**10) # ✅ 嵌入已知分解(GIMPS / factordb)作为 dict
# /// script # dependencies = ["sympy"] # /// import sympy ...
运行:uv run --with sympy script.py(不是 uv add)
[layer.role] timestamp status keys/notes
例:
[L1.sentinel] 2026-05-23T11:30 warn ratio=0.571 sample_too_small [L3.prover] 2026-05-23T13:00 gap framework_ok_but_lemma_X_unprovable
对 Goldbach 跑这个流程的预期结果:
| 命题候选 | 预期 verdict | 原因(猜测) |
|---|---|---|
| r₂(n) > 0 对几乎所有偶数(密度 1) | weak-PASS | Schnirelmann + 圆法已给出,但"几乎所有" vs "所有"是巨大差距 |
| r₂(n) ≥ c·n/(log n)² 对 n 足够大(GRH) | KILL(量级太强) | 圆法给主项 ~ C₂·n/(log n)²,但严格下界即 strong Goldbach |
| 存在常数 K ≤ 3 使每偶数 = ≤ K 个素和 | weak-PASS | Schnirelmann K = 6 (Ramaré 1995),未推到 K = 2 |
| 假设某偶数无 Goldbach → BV 矛盾 | KILL | 与 Mersenne 命题 4 同病 |
| Goldbach 序列 (r₂(2n))_n 是 ML 随机 | GO(position paper) | 与 Sarnak/Cramér 平行 |
只有命题 5 是真可写的。这与 Mersenne 几乎相同 — 提示这种类型的猜想在 LLM 流水线下,大多数候选会被严格化暴露 gap。
Q:为什么不全自动?
A:每层完成后人类 + coordinator 决定下一步。kill switch 触发时不自动 KILL,要你看一眼。这是 v2 的核心 — 自动化 + 人类介入点。
Q:可以跳过 Template 1 直接用 2 吗?
A:可以。但要确保命题陈述精确。如果不确定,先 Template 1。
Q:v2 vs v1 真有那么大差吗?
A:Mersenne 实测:v1 命题 1 跑了 17 agent 才发现量级错误;v2 命题 4 仅 6 agent 就 KILL。早期 catch 错误的价值随问题难度上升。
Template 2 v2 = 把"用 LLM 找数学突破"压成"用 LLM 系统性证伪乐观候选" — 大多数候选会被 KILL,但你会得到精确的 gap 定位 + 修订建议,而不是模糊的"还需努力"。