← Multi-Agent Research

Template 3:论文写作 + 同行审稿流水线

把 Template 2 的研究笔记转化为多篇 ready-to-submit 论文,每篇带强制审稿与修订

研究模式(必读)

本模板默认 Mode A:实质研究 paper。Mode B(综述 / expository note)切换条件与具体行为见 MODES.md。模式从 Template 2 的 decision_log.md 第一行继承;如果 Template 3 单独使用,main thread 在 Stage 0 检测一次。

段落Mode AMode B
Writer §"实质贡献声明"必填且 (a)(b)(c) ≥ 1必填,可全是 (d)
Writer §Predictions必填 ≥ 2 条可选 / 跳过
Reviewer 独立复现必做(reproduction note)可选
目标期刊research article venueexpository venue

用途

Template 2 已输出带"关键发现"与"推荐期刊与理论延伸"小节的命题研究笔记时,本模板把笔记中每一个可发 paper 的方向自动转化为一篇 LaTeX 学术论文,并强制每篇通过一位"30 年经验终身教授"reviewer-agent 的就地修订。

输出物:项目目录下 paper_submission/ 子目录,按方向分子文件夹,每个子文件夹一份 self-contained main.tex(含 thebibliography)+ 一份审稿报告(≤300 字)写回到 stdout。

与 Template 1 / 2 的关系

Template 1 → 路线图 + 候选命题 Template 2 → 5 层研究 + GO/NO-GO 决策(含可发 paper 方向清单) Template 3 → 把每个可发方向写成 ready-to-submit 论文

Template 3 的唯一输入是 Template 2 的最终 HTML 笔记(或等价的 markdown 决策文档)。可独立使用,前提是手头有这样一份笔记。

已完成示例

2026-05-24/25:Legendre 命题 4 → 5 篇 paper
2026-05-25:Riemann deep-dive → 4 篇 paper

架构

┌──────────────────────────────────────────────────┐ │ Input: Template 2 HTML / md 研究笔记 │ │ 必含 "关键发现" + "推荐期刊与理论延伸" 小节 │ └────────────────┬─────────────────────────────────┘ │ ▼ ┌────────────────────────────────┐ │ Stage 0:方向识别(main thread)│ │ ‣ 读笔记,列出 N 个可发方向 │ N 通常 3–5 │ ‣ 给每方向起 slug + 目标期刊 │ └────────────────┬───────────────┘ │ ▼ ┌────────────────────────────────┐ │ Stage 1:数值哨兵(main thread)│ │ ‣ 验证笔记中的核心数值断言 │ 防止论文建立在错数据上 │ ‣ python 跑 3-5 个样本点 │ │ 对账笔记的表 │ └────────────────┬───────────────┘ │ ▼ ┌────────────────────────────────┐ │ Stage 2:N 个并行 writer-agent │ ★ 主体 │ 每个 = 数学 PhD 博士生 │ │ 输入:方向 brief + 笔记引用 │ │ 输出:paperK_<slug>/main.tex │ │ ‣ 必须 self-contained │ │ ‣ 必须诚实标注 conditional │ │ ‣ 必须含 Numerical 节 │ └────────────────┬───────────────┘ │ writer K 一完成 → 立即起 reviewer K │ (流式,不等其他 writer) ▼ ┌────────────────────────────────┐ │ Stage 3:N 个 reviewer-agent │ ★ 核心增量 │ (流式,与剩余 writer 并行) │ │ 每个 = 30 年终身教授 │ │ ‣ 读 main.tex 全文 │ │ ‣ 找逻辑漏洞、隐含假设、循环 │ │ ‣ 就地 Edit 修改文件 │ │ ‣ 出 ≤300 字 referee report │ │ ‣ 必要时降格 theorem→conj │ └────────────────┬───────────────┘ │ all reviewers complete ▼ ┌────────────────────────────────┐ │ Stage 4:汇总(main thread) │ │ ‣ 五色(绿/黄/红)状态表 │ │ ‣ 每篇 verdict + 推荐期刊 │ │ ‣ 实操建议(立即投/修一轮/弃)│ └────────────────┬───────────────┘ │ ▼ ┌────────────────────────────────┐ │ Stage 5:编译 PDF(main thread)│ │ ‣ 跑 tools/latex_compile_ │ │ papers.sh <paper_subdir> │ │ ‣ 报告每篇 size + 页数 │ │ ‣ 失败时贴 main.log 末 10 行 │ │ ‣ (b) 类失败 → 起 fixup agent │ │ (≤2 轮) → 重编译验证 │ └────────────────────────────────┘

总 agent 数:2N(writer + reviewer,N 个方向),加 main thread 协调,加 Stage 5 可能的 fixup agent(≤ 2N)。预算(关键角色 Opus 4.7):

Mode B(全 Sonnet 4.6 + 综述模式跳过 reviewer 独立复现):\$3–8 即可。之前 v1 的 "\$2–5" 是 v1 单轮、无独立复现、无 §Predictions 的下限值,适用 Mode A research paper 实战。

模型选择:writer 和 reviewer 都强烈推荐用 Opus 4.7。本模板下面专门吐槽过"writer 倾向 over-claim,Sonnet 默认乐观"——opus 4.7 在 conditional vs unconditional 的措辞克制上明显更好;reviewer 抓 over-claim 的能力直接决定 paper 质量。main thread 协调也用 Opus 4.7。预算紧张时才降到 Sonnet 4.6。

预算分配

阶段agent 数角色何时跳过
Stage 00main thread 列方向用户直接给清单时
Stage 10main thread 跑哨兵笔记数值已有第三方复核时
Stage 2Nwriter(数学 PhD)不可跳
Stage 3Nreviewer(终身教授)不可跳——核心增量
Stage 40main thread 汇总不可跳
Stage 50main thread 调脚本编译 PDF用户明确不需要 PDF 时(罕见)

典型 N = 3–5。N > 5 时 main thread 上下文吃紧,应分批跑(每批 ≤ 5)。

Stage 2 / 3 agent 的具体 prompt 模板

Writer agent(每方向一个,并行)

你是一个数学专业 PhD 博士生。任务:写一篇 ready-to-submit LaTeX 论文。

【输出路径】<project>/paper_submission/paper<K>_<slug>/main.tex
(创建目录;不写其他文件;不写 README)

【主题】<一句话主题 + 主定理候选陈述>

【证明路线】<从 Template 2 笔记 §3 / §5 抄入;明确每一步的依据>
1. ...
2. ...
3. ...

【必须包含的章节】
- §1 Introduction(含完整主定理陈述 + 与既有文献对比表)
- §2 Notation & preliminaries
- §3–§K 技术核心(每条引理 / 定理都要有完整证明,不能仅 cite)
- §K+1 Numerical verification(含已验证表格;标明 "every case passed")
- §K+2 Discussion(与最相关文献比较,列出本工作的精确增量)

【硬约束】
- LaTeX article, 11pt, amsmath/amsthm/amssymb/mathtools, self-contained
  thebibliography(不写 refs.bib)
- ~15–25 页编译长度
- 摘要 ~150 字、MSC2020 代码、keywords
- 每步严格;避免 hand-waving;显式状态每个引理
- 若某步骤无法严格证明 → 明确降格为 "Conjecture" 或 "Conditional Theorem"
  并标注假设。诚实大于野心。
- \author{} 留空

【目标期刊】<具体一个或两个>

【验证】可调用 python 验证数值断言:
  uv run --with sympy python -c "..."
(galois 包在很多代理后下载失败;优先 sympy + GF modulus)

写完后用 ≤150 字汇报:文件路径、页数估计、关键 judgment call。
不要回传整份 LaTeX。

Reviewer agent(每方向一个,并行)

你是一位 30 年经验的终身教授,常年为 <目标期刊> 审稿。任务:审稿这份手稿。

【手稿】<project>/paper_submission/paper<K>_<slug>/main.tex

【一句话主题】<同 writer brief>

【你的工作】通读 .tex 全文(一次性 Read 整文件)。实质性审稿:

1. 找 未论证步骤、隐含假设、hand-wave、循环论证。特别审视:
   - <列出 writer brief 里最容易出问题的 2-3 处>

2. 对每个问题,直接用 Edit 工具修改 .tex 文件。不要只挑毛病;修。
   - 引理需要前置 → 加引理
   - 常数错 → 改常数
   - 引用张冠李戴 → 修引用
   - 某步真的证不了 → 把 theorem 改成 conjecture / heuristic,
     摘要同步弱化

3. 改进 影响证明的 表述。不要为加而加新章节。

4. 必要时可调 python 验证小数值断言。

5. 出一份 ≤300 字 referee report:
   - 找到的 top 5 问题
   - 你做的修改
   - 你的修改后判定:是否 ready-to-submit?

对严谨极其苛刻,但建设性。 不能改进的正确证明不要瞎动。
若某证明确实站不住,承认它并降格——一份诚实的 conditional 论文
比一份藏 gap 的"定理"论文更可发表。

决策日志(可选)

如果跑超过 5 个方向,建议在 paper_submission/decision_log.md 同样保留实时账本:

[stage0]            2026-05-24 23:30   ok       n_directions=5
[stage1.sentinel]   2026-05-24 23:33   ok       7 (q,d) checked, all pass
[stage2.writer.1]   2026-05-24 23:37   ok       paper1_main, 765 lines
[stage2.writer.4]   2026-05-24 23:36   ok       paper4_ss_gap, 318 lines  ← 注意短
[stage3.reviewer.1] 2026-05-25 00:14   accept   minor revisions
[stage3.reviewer.4] 2026-05-25 00:17   reject   Lemma 3 vacuous on monics
[stage4.summary]    2026-05-25 00:18   ok       3 green, 1 yellow, 1 red

"三色"判定标准(Stage 4)

颜色标准操作建议
绿 reviewer 给 "accept after minor revisions" 走投稿流程
reviewer 给 "major revision",主要定理仍有效但需补强 修一轮 reviewer 提的问题后再投
reviewer 发现 fatal flaw(循环论证 / 主引理 vacuous / 主定理被降为依赖未证猜想的 conditional) 退回 Template 2 重做该方向,或大幅收窄 scope 改投副刊

Stage 5:编译 PDF(main thread)

Stage 4 汇总完成后,main thread 直接调 tools/latex_compile_papers.sh 把所有 paper_submission/paperN_*/main.tex 批量编译成 PDF:

# 首次:装齐 BasicTeX 上的 CTAN 包(一次性,约 200 MB)
bash /Users/l/Git/3_P/20260522_math/tools/latex_install_packages.sh

# 编译该 topic 的全部论文
bash /Users/l/Git/3_P/20260522_math/tools/latex_compile_papers.sh \
     <project>/paper_submission

脚本约定 / 行为:

main thread 在 Stage 5 的责任:

  1. 跑脚本,捕获输出。
  2. 把"成功 N 篇 / 失败 M 篇"和每篇页数追加到 Stage 4 的五色状态表(多一列 📄 pages)。
  3. 失败篇分流:读 main.log 末段,判断属于哪类:
    • (a) 缺 CTAN 包 → 提示用户跑一次 latex_install_packages.sh,再重跑 latex_compile_papers.sh。不起任何 agent。
    • (b) writer 写出真正的 LaTeX 错误(缺 \end{...}、未定义命令、math mode 错配等)→ main thread 新起一个 reviewer-fixup agent(见下方 prompt)。注意:原 reviewer agent 在 Stage 3 已 return 退出,无法 resume;这里是独立的新 agent,只拿 main.tex 路径 + log 末段作为输入,不继承 Stage 3 reviewer 的上下文。
  4. 不要让 writer/reviewer agent 自己编译——它们的 sandbox 里没有 TeX 引擎,只会浪费 token。编译一律由 main thread 调脚本完成。

Reviewer-fixup agent prompt(仅在 Stage 5 失败时启动)

你是一位 LaTeX 排版工程师。任务:修一份编译失败的手稿,使其能通过 pdflatex。

【手稿】<project>/paper_submission/paper<K>_<slug>/main.tex
【编译日志末段】
<贴入 main.log 末 30 行>

【你的工作】
1. Read 整份 main.tex
2. 根据 log 定位编译错误(缺 \end{...}、未定义环境、math mode 嵌套错、
   非法字符、未导入的宏包等)
3. 用 Edit 工具就地修 main.tex
4. **绝不**修改数学内容、定理陈述、证明逻辑、引用文献。只修排版 / 编译错误。
   若发现 log 显示的错误根源是数学内容(如错误的 \frac 嵌套且无法机械修复),
   写一行注释 "% [stage5 fixup] math content issue at L<NN>, escalating",
   不动那一段,由人工介入。
5. 用 ≤100 字汇报:改了哪几处(行号 + 错误类型),是否完全修好。

【硬约束】
- 不要重新组织段落、不要改章节标题、不要改 thebibliography 条目
- 不要碰 §Numerical 节的数值
- 不写 README,不写新文件

失败回灌循环的硬上限

注:脚本用的是 macOS BasicTeX 路径(/Library/TeX/texbin/),文档见 tools/latex_setup.md。Linux 上把 path_helper 那段删了 / 用 texlive-full 即可。

输出目录约定

<project>/paper_submission/
  paper1_<slug>/
    main.tex                    # writer + reviewer 双轮编辑
  paper2_<slug>/
    main.tex
  ...
  decision_log.md               # 可选实时账本
  REVIEW_REPORTS.md             # 可选:把 N 份 reviewer report 拼起来

不要写:README.md(项目已有顶层笔记);单独的 refs.bib(self-contained thebibliography 即可);编译产物(.pdf / .aux / .log)——这些是 Stage 5 main thread 调脚本生成的,writer/reviewer agent 不要碰。

实战 lessons(Legendre P4 → 5 papers 的复盘)

  1. 数值哨兵必须前置。Template 2 笔记里 §4 数值表的 $|I_f|$ 列其实有归一化不一致,但"every f passes"的核心结论是对的。Stage 1 跑一遍 sympy 直接确认了哪部分可信。
  2. writer agent 的"诚实"约束是关键。第一次跑时几乎所有 writer 都倾向把"研究笔记里的想法"写成"定理"。brief 里写死"诚实大于野心" 后,Paper 2、3 主动降为 conditional,Paper 4 也老实标了 heuristic。
  3. reviewer agent 必须 Edit in place。如果只让 reviewer 出 critique,writer agent 不会主动改。Edit 工具权限要先给好。
  4. 5 篇里"红"那一篇恰好是研究笔记里最具"启发性新发现"的方向。研究笔记的"亮点"往往是 sketch 而非证明,写成正式 paper 时细节会崩——这是预期内的,不是失败。
  5. 不要让 writer / reviewer agent 自己跑"compile and verify PDF"。它们的 sandbox 里没有 TeX 引擎,会浪费 token。Stage 5 由 main thread 直接调 tools/latex_compile_papers.sh 批量编译,失败再回灌给 reviewer 补 Edit。
  6. paper4_ss_gap 类的"短 paper"应单独走。318 行短稿和 800 行主稿用同一份 brief 不公平——短稿应有更紧的篇幅约束 + 更窄的主定理。

风险与局限

何时该用,何时不该用

不用

Stage 4 汇总表(Legendre P4 实例)

#方向审稿后 verdict目标期刊
1 函数域 Legendre 主定理(Weil + 切片,$q>2d$) accept after minor FFA
2 无条件扩展 $q\geq 2$ unconditional 仅至 $d\le 7$;切片估计降为猜想 Math. Comp. 数值短文 / 重写
3 函数域 Gowers $U^k$ 框架 major revision;Thm B 指数降为 $1/(4(d+1))$ JNT / Mathematika
4 S–S $q^\varepsilon$ gap 代数起源 Lemma 3 vacuous on monics 大幅收窄 → FFA note,或重做
5 整数 Legendre benchmark roadmap 适宜(综述定位) L'Enseign. Math. / Expo. Math.

3 绿 / 2 黄 / 1 红的混合结果是健康的。如果 5 篇全是绿,几乎一定是审稿 agent 偷懒。