5 层 + feedback 循环 + kill switch 的命题验证管线(v2 修订版)
本模板默认 Mode A:实质研究。Mode B(综述)切换条件与具体行为见 MODES.md。
模式标记必须在 decision_log.md 第一行写明。模式影响 L3.numerical(多尺度/OEIS/failure search)、L3.conjecture-generator(仅 A)、L3.formal-verifier(仅 A)、L5 §"实质贡献声明" / §Predictions 等 agent 行为。
当你有一个具体可陈述的命题且想确定是否可证 / 缺口在哪 / 下一步怎么走时,本模板调度多 agent 在 5 个层级 × 4 类角色中协作。
输出是一份完整的 HTML 研究笔记,含 5 章对应 5 层,外加完整的代码、PDF、决策日志。
可单独使用 Template 2(命题已知时)。
../mersenne-proposition1_primitive_factor_density.html(17 agent)— 暴露了 v1 的若干痛点,反馈进 v2。
| v1 痛点 | v2 修复 |
|---|---|
| 单向流水线,错误传到下游 | Feedback loop:L4 / L3 可触发 L1 重排 |
| 错命题浪费 12 agent 才被发现 | Kill switch:每层显式终止条件 |
| L1 占预算最大但只是 scaffold | 预算重分配:L3 占 12/25 |
| 量级错误最晚才发现 | 数值 sanity 哨兵前置于 L2 |
| 缺乏对手机制 | Devil's Advocate 实时穿插 L3 |
| 没有统一裁决 | Coordinator 中央调度 + 实时账本 |
单命题总 agent 数(含 prover↔numerical reactive loop):
之前 v1 的 "~25 agent / \$1.5–3" 是 sanity-check 时代的数字,不适用真正的 Mode A 研究。
不在乎成本时按下表分配。RECIPE.md 已注明:sonnet 4.6+ 在严苛角色的"诚实性"上是已知弱点,opus 4.7 在该点上明显更稳。
| 角色 | 推荐模型 | 理由 |
|---|---|---|
| Coordinator(主线程) | Opus 4.7 | 调度判断需要全局把握 |
| L1 ranker / sentinel | Opus 4.7 | 找反例、量级把关,诚实性关键 |
| L2 search / reader | Sonnet 4.6 | 文献抓取与摘要,体力活 |
| L3 numerical | Sonnet 4.6 | 跑代码、报告数值结果,opus 反而慢 |
| L3 prover | Opus 4.7 | 证明草稿,结构能力差异大 |
| L3 advocate(找反例) | Opus 4.7 | 对抗角色,诚实性 + 反例敏锐度关键 |
| L3 lit-integrator | Sonnet 4.6 | 文献整合 |
| L3 conjecture-generator(Mode A) | Opus 4.7 | 数据→公式的符号推理质量差异大 |
| L3 formal-verifier(Mode A) | Opus 4.7 | Lean / mathlib 类型推理需要强模型 |
| L4 4 类专家审稿 | Opus 4.7 | 终审把关 over-claim |
| L5 summary / decision | Opus 4.7 | 最终决策措辞克制度关键 |
预算紧张时可全部降级 Sonnet 4.6;纯 IO(PDF 解析、长 log 抓取)的子任务可用 Haiku 4.5。
Mode A 真正做研究时 默认值是下限,不要被它锁死。需要时按下面"扩展档位"加 agent。
| 层 | 默认 agent 数 | 角色 | 何时跳过 |
|---|---|---|---|
| Coordinator | 1 | 调度 + 账本 | — |
| L1 | 7 | 5 角度 + 1 ranker + 1 sentinel(量级哨兵) | 角度数 ≤ 3 时合并到 3-4 |
| L2 | 2 | 1 search + 1 reader | 命题非数学时 |
| L3 ★ | 14 | 3 numerical + 3 prover + 3 advocate + 3 lit-integrator + 1 conjecture-gen + 1 formal-verifier | 不可跳;研究主体(mode=B 时 −2) |
| L4 | 4 | 4 类专家审稿 | 命题已被 L3 自杀时 |
| L5 | 2 | 1 summary + 1 decision | 不可跳 |
| 档 | L1 角度 | L3 numerical | L3 prover | L3 advocate | L3 conjecture-gen | L3 formal-verifier | L3 reactive | 单命题总 agent | 单命题 \$ |
|---|---|---|---|---|---|---|---|---|---|
| standard | 5 | 3 | 3 | 3 | 1 | 1 | ~10 | ~40 | \$15–30 |
| deep | 7 | 5 | 5 | 5 | 2 | 2 | ~20 | ~70 | \$35–70 |
| marathon | 10 | 7 | 7 | 5 | 3 | 3 | ~40+ | ~120+ | \$80–200+ |
何时升档:
不要节省的角色(这些档位间始终满配):sentinel、advocate、formal-verifier、4 类专家、L5 decision。
每个 agent 完成后追加一行到 decision_log.md:
[mode] 2026-05-26 10:00 ok mode=A reason=default # 第一行必须由 Coordinator 写
[diary.resume] 2026-05-26 10:00 ok open_count=0 # 启动时检查跨 session 状态
[L1.ranker] 2026-05-26 12:34 ok score=18 best=Turán-variance
[L1.sentinel] 2026-05-26 12:36 warn ratio_loglog=1.83 at x=50
[L2.search] 2026-05-26 12:42 ok papers_found=8
[L2.reader] 2026-05-26 12:55 ok no-direct-proof in lit
[L3.numerical] 2026-05-26 13:05 ok ratio_at_10^6=0.987 oeis=A001620
[L3.prover] 2026-05-26 13:20 ok rounds=3 verified_lemmas=2
[L3.prover→numerical] 2026-05-26 13:25 ok lemma=L3 range=[10^4,10^6] result=ok # v1.3 双向循环 hook
[L3.advocate] 2026-05-26 13:35 accept no_circular keys="..."
[L3.lit.smith] 2026-05-26 13:40 ok paper=Smith2018
[L3.conjecture] 2026-05-26 13:50 ok n_generated=2 top_R2=0.9997 # v1.3 仅 Mode A
[L3.formal] 2026-05-26 14:00 ok build=ok stmt=MainTheorem.lean # v1.3 仅 Mode A
[L4.analyst] 2026-05-26 14:20 pass
[L4.advocate] 2026-05-26 14:25 reproduction-fail ratio=1.34 # T3 reviewer 独立复现差异 > 1%
[L5.summary] 2026-05-26 14:40 ok mode=A contributions={a:0,b:1,c:1,d:1} predictions=2
[L5.decision] 2026-05-26 14:45 GO-revision rec="restrict to q ≡ 1 (mod 4)"
# 失败 / 升级路径示例
[L3.numerical] 2026-05-26 15:00 FAIL target_order=loglog rejected; observed=log
[L3.→L1] 2026-05-26 15:01 rerank trigger: numerical contradiction
[stage5.escalate] 2026-05-26 16:00 warn paper=2 fixup_rounds=2 reason="math_content_issue"
[downgrade] 2026-05-26 16:30 warn mode_was=A reason=no_substantive_contribution
格式:[layer.role] timestamp status [keys]。Coordinator 实时读这个文件做决策。
| 层 | 触发条件 | 动作 |
|---|---|---|
| L1 ranker | 最高分 < 14 | kill;写"无可攻候选"备忘 |
| L1 sentinel | 数值 vs 目标 ratio < 0.2 或 > 5 | rerank L1(量级修正后再来) |
| L2 reader | 找到"已证此命题的论文" | kill;写"已被证明"备忘 |
| L2 reader | 找到"已被反驳"的论文 | kill;写"已被反驳"备忘 |
| L3 numerical | 实测 vs 理论偏离 > 1 数量级 | feedback → L1 重排 |
| L3 prover | 出现循环论证 | 标记,让 advocate 确认 |
| L3 advocate | 找到反例 | kill;写"反例"备忘 |
| L3 advocate | 确认循环论证 | feedback → L1 重定义目标 |
| L4 多专家 | ≥ 3 票"重大缺陷不可修复" | kill |
| L4 reviewer(T3) | 独立复现差异 > 1%(Mode A) | [reproducibility-fail],verdict 降到 major-revision |
| L5.summary | §"实质贡献声明" (a)(b)(c) 全空(Mode A) | 触发 [downgrade];提示用户切 Mode B 或重做 |
| L5.summary | §Predictions < 2(Mode A) | 退回 L5.summary 重写,不进 GO 决策 |
| L5 | 任意 layer kill 后 | 写早期否决备忘 + 总结 |
| Coordinator 启动 | research_diary.jsonl 末 50 行有 status=open | [diary.resume],让用户决定继续 / 重测 / 归档 |
| Stage 5(T3) | pdflatex 失败且属"writer 错误"类 | 起独立 reviewer-fixup agent(≤ 2 轮) |
| Stage 5(T3) | 第 2 轮 fixup 仍失败 | [stage5.escalate],停 loop,人工介入 |
work/
<project>-proposition<N>_<slug>.html # 主文档
reference_<project>_research/
research_diary.jsonl # ⭐ v1.3 跨 session 持久化
prop<N>/
papers/ # arXiv PDF
data/ # ⭐ v1.3 numerical CSV / OEIS 命中
L3num_<id>.csv
L3num_<id>_oeis.json
code/ # PEP 723 Python
L1_sentinel.py
L3num_<id>.py
long_jobs/ # ⭐ v1.3 长任务(> 5 min)
<job_id>.{py,out,err,pid,status}
lean/ # ⭐ v1.3 formal-verifier
MainTheorem.lean
logs/
decision_log.md # 含 [mode] / [diary.resume]
paper_submission/ # T3 输出
paper<K>_<slug>/
main.tex
reproduction_note.md # ⭐ v1.3 Mode A reviewer 独立复现
main.pdf # Stage 5 编译产出
decision_log.md # 含 [stage5.escalate]
/tmp/<project>_brainstorm/prop<N>/
L1_section1.html, L1P1_*.md, L1_sentinel.md, L1P3_synthesis.md
L2_arxiv_list.md, L2_pdf_analysis.md
L3_numerical_*.md, L3_prover_*.md
L3_prover_requests_*.md # ⭐ v1.3 [REQUEST_NUMERICAL] hook
L3_advocate_*.md, L3_litintegr_*.md
L3_conjectures.md # ⭐ v1.3(仅 Mode A)
L3_formal.md # ⭐ v1.3(仅 Mode A)
L4_analyst.md, L4_algebraist.md, L4_numerist.md, L4_advocate.md
L5_summary.md # 含 §"实质贡献声明" + §Predictions
L5_decision.md
long_jobs_pending.md # ⭐ v1.3 待启动长任务清单
详见 .md 源文件 中"各层 agent 提示模板"段。下面只列各角色的关键职责:
| 角色 | 关键职责 | 触发条件 |
|---|---|---|
| Coordinator | 读 decision_log,决定下一步 | 每个 agent 完成后 |
| L1.angle (×5) | 单角度深探,写 markdown | 启动时 |
| L1.ranker | 读 5 份单角度,打分排名,输出 HTML 表 | L1.angle 完成后 |
| L1.sentinel ★ | 数值小测,验证最优候选量级合理 | L1.ranker 完成后;fail 时触发 rerank |
| L2.search | arXiv API + curl,下载 PDF | L1 通过后 |
| L2.reader | 读 PDF,提取主定理 + 假设;判定文献中地位 | L2.search 完成后 |
| L3.numerical (×3) ★ | 跑 sympy / numpy 数值实验,验证目标量级 | L2 通过后 |
| L3.prover (×3) ★ | 写形式化证明,逐步严格 | L3.numerical 通过后 |
| L3.advocate (×3) ★ | 反方角色,主动找循环 / 反例 / 隐含假设 | 实时与 prover 交错 |
| L3.lit-integrator (×3) | 每条引理回查 PDF,确认精确陈述 | L3.prover 引用文献后 |
| L4.analyst | 解析专家审稿 | L3 全部完成后 |
| L4.algebraist | 代数专家审稿 | 同上 |
| L4.numerist | 数值专家审稿(程序、统计) | 同上 |
| L4.advocate | 对手专家最终评议 | 同上 |
| L5.summary | 4 问 4 答(解决/gap/新发现/下一步) | L4 全部完成后 |
| L5.decision | GO / NO-GO 建议 | L5.summary 后 |
<h2>1. 发散层:思路探索与排名</h2> <h3>1.1 思路全景</h3> <h3>1.2 候选思路打分排名</h3> <h3>1.3 推荐攻克目标(前 3 名)</h3> <h3>1.4 数值哨兵警告</h3> ← 新增 <h2>2. 分析层:arXiv 文献调研</h2> <h3>2.1 关键论文逐篇分析</h3> <h3>2.2 次要论文简评</h3> <h3>2.3 命题在文献中的现状判定</h3> <h3>2.4 缺口与实际增量</h3> <h3>2.5 关键非 arXiv 文献</h3> <h2>3. 执行层:研究主体</h2> ← 占据最多页面 <h3>3.1 数值实验(多尺度 / OEIS / LMFDB / failure search)</h3> <h3>3.2 形式化证明草稿(含 prover↔numerical 双向循环记录)</h3> <h3>3.3 对手反驳记录</h3> ← 新增 <h3>3.4 文献核实记录</h3> ← 新增 <h3>3.5 程序与 run log(含 long_jobs/)</h3> <h3>3.6 数据驱动猜想(Mode A:conjecture-generator 输出)</h3> ← v1.3 新增 <h3>3.7 形式化验证(Mode A:Lean 4 statement)</h3> ← v1.3 新增 <h2>4. 审核层:4 类专家评议</h2> <h3>4.1 解析数论评议</h3> <h3>4.2 代数数论评议</h3> <h3>4.3 数值与代码评议</h3> <h3>4.4 对手最终评议</h3> <h3>4.5 综合判定</h3> <h2>5. 总结层:4 问 4 答 + 决策</h2> <h3>5.1 是否解决了更宏大目标</h3> <h3>5.2 Gap 在哪一步</h3> <h3>5.3 发现的新东西</h3> <h3>5.4 下一步建议</h3> <h3>5.5 决策:GO / NO-GO</h3> ← 新增 <h3>5.6 实质贡献声明((a)/(b)/(c)/(d) 四档)</h3> ← v1.3 新增(Mode A 必填) <h3>5.7 Predictions(≥ 2 条可证伪陈述)</h3> ← v1.3 新增(Mode A 必填) <h3>5.5 决策:GO / NO-GO</h3> ← 新增
L5.decision 给出 GO / GO-revision / GO-strong 时,说明该命题的研究笔记里已经有"主定理 + 证明草稿 + 数值验证 + 文献定位",到了写成可投稿 paper 的阶段。把这条命题(或多条 GO 命题打包)作为 Template 3 的输入:
tools/latex_compile_papers.sh)<project>/paper_submission/paperK_<slug>/main.tex + main.pdf + ≤300 字 referee report何时不要升级:
详见 Template 3 文档。