← Multi-Agent Research

Recipe:在新数学问题上运行多 agent 流水线

把 "Mersenne 套路" 应用到任何新数学问题的 step-by-step 指南

本文档的位置

完整 markdown 源文件:RECIPE.md。本 HTML 是渲染版,含 KaTeX 公式。如果要 copy-paste 给其他 LLM,建议用 .md 源。

本文档以 Goldbach 强猜想(每个 $> 2$ 偶数都是两素数之和)为示例,演示如何完整跑完 Template 1 + Template 2 v2。

Step 0:决定用哪个模板

状态用模板预算
命题模糊,想生成"路线图 + 候选命题"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 对每个验证。

Step 1:写问题陈述 + 背景包

不论哪个模板,每个 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。

Step 2 (Template 1):生成 N 个发散角度

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: 单角度深探"段。

Step 3 (Template 1):Phase 2-3-4 协同综合

# 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 章节

Step 4:选 1-3 个最有意义的候选命题

从 Phase 4 输出的"高优先级可攻命题"清单中选。选择标准

Step 5 (Template 2 v2):5 层流水线

目录结构:

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并行关键
L175 角度 → 1 ranker → 1 sentinelsentinel 是 v2 关键创新
L22search → reader 串行arxiv 限速注意
L36全并行1 numerical + 2 prover + 1 advocate + 2 lit-integrator
L44全并行解析 / 代数 / 数值 / 对手 4 票
L52summary → decision 串行GO / NO-GO 决策

每层完成后更新 decision_log + 检查 kill switch。规则见 Template 2 文档 "Kill Switch 规则"段。

Step 6:填 HTML 5 节

模板见 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>。

Step 7:git commit + 整合到主笔记

git add work/
git commit -m "Run multi-agent pipeline on <project> proposition <N>"

Step 8:发布到 public/research/explore/ + 主索引添加 "Our explore paper" 入口

让全项目研究索引(如 public/research/problems_summary.html 的子页面)能跳转到本次研究产物。

8.1 目录重组:把 topic 相关全部归到 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/                       (可选)

8.2 修复内部链接

cd work/<topic>/
for f in *.html; do
  sed -i '' 's|href="multi-agent-research/|href="../multi-agent-research/|g' "$f"
done

8.3 写 index.html landing page

templates/topic_index.html 作骨架,替换占位符 {{TOPIC}}{{TOPIC_SLUG}} 等。Landing page 是用户最先看到的页面,应含:

8.4 复制到 public/research/explore/

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/

8.5 主索引添加 "Our explore paper" 链接

找到 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.6 一键 publish 脚本

把 8.1-8.5 部分自动化(除 8.5 主索引修改需人工):

cd pipeline
./scripts/publish_topic.sh <topic_slug> public/research/<area>.html

脚本:scripts/publish_topic.sh。它做:

  1. 修复 multi-agent-research 链接(8.2)
  2. 复制到 public/research/explore/<topic>/(8.4)
  3. 同步 multi-agent-research/(8.4)
  4. 验证副本结构
  5. 提示手动编辑主索引(8.5)

8.7 git commit

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"

Step 9(可选):录到 agent_talks

/agent-talks:update

会自动把所有对话轮归类到 research / issues / plan-changes / milestones 并生成 HTML。agent-talks/ 文件夹和 index.html 已包含在 Step 8.1 的归档里,所以不需要单独搬运。

实施细节(避坑)

arXiv API 限速

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 秒间隔
禁止
应用

sympy.factorint 超时

from sympy import factorint
# ❌ factorint(2**127 - 1)  # 超时
# ✅ factorint(2**127 - 1, limit=10**10)
# ✅ 嵌入已知分解(GIMPS / factordb)作为 dict

PEP 723 头

# /// script
# dependencies = ["sympy"]
# ///

import sympy
...

运行:uv run --with sympy script.py(不是 uv add

Decision log 格式

[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 强猜想

对 Goldbach 跑这个流程的预期结果:

命题候选预期 verdict原因(猜测)
r₂(n) > 0 对几乎所有偶数(密度 1)weak-PASSSchnirelmann + 圆法已给出,但"几乎所有" vs "所有"是巨大差距
r₂(n) ≥ c·n/(log n)² 对 n 足够大(GRH)KILL(量级太强)圆法给主项 ~ C₂·n/(log n)²,但严格下界即 strong Goldbach
存在常数 K ≤ 3 使每偶数 = ≤ K 个素和weak-PASSSchnirelmann 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

FAQ

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 定位 + 修订建议,而不是模糊的"还需努力"。