# Examples — 真实 Mersenne 跑出来的 agent 样本

实战中 prompt → output 的具体例子。

> ⚠️ **版本注意**：除 `agent_prompts_verbatim.md` 已升级到 v1.3/1.4 外，
> `sample_*_output.md` 都是 **v1 时代**（2026-05-22/23）的 Mersenne / Sonnet 4.6
> 产出。它们对单 agent 输出格式仍有参考价值，但**不**反映 v1.3 新增的：
> - mode=A|B 标签
> - L3.numerical 多尺度 + OEIS / LMFDB 对照
> - L3.conjecture-generator（Mode A）
> - L3.formal-verifier（Mode A）
> - L5.summary §"实质贡献声明" + §Predictions
> - reviewer 独立复现 reproduction_note.md
>
> 第一次跑 v1.3 后，请把那次的输出归档到 `sample_v1_3_*.md` 替代下面的 v1 文件。
> 见末尾"v1.3 端到端 sanity test TODO"。

## 文件清单

| 文件 | 来自 | agent 类型 | 说明 |
|---|---|---|---|
| `agent_prompts_verbatim.md` | v1.3/1.4 | 全部 | 所有 agent 角色的 verbatim prompt 模板（含 Coordinator / Template 3 / 长任务 / 研究日记） |
| `sample_L1_angle_output.md` | prop1 角度 A（v1）| L1.angle | 单角度深探的样本 |
| `sample_L4_advocate_output.md` | prop2 L4（v1） | L4.advocate | 资深教授对手评议 |
| `sample_L5_summary_output.md` | prop2 L5（v1） | L5.summary | 4 问 4 答 + 决策（v1，无 §"实质贡献声明" / §Predictions） |

## 怎么用

1. 先读 `../RECIPE.md`（step-by-step 在新问题上跑）+ `../MODES.md`（A/B 模式）
2. 然后用 `agent_prompts_verbatim.md` 复制 prompt 模板，填占位符
3. 启动 Agent tool 时，输出格式参考 `sample_*_output.md`，但 **Mode A 必须**额外加 §"实质贡献声明" / §Predictions（v1 样本里没有）

## v1.3 端到端 sanity test TODO

新流程从未端到端跑过（无 `research_diary.jsonl`、`code/long_jobs/`、`reproduction_note.md` 实例）。建议下一个新 topic 之前先用 standard 档跑一遍小验证（如 Goldbach 一个简单命题，N=1，全程跑通看 research_diary、CSV、Lean stmt 是否真能产出），然后把结果归档进本目录作 v1.3 样本。

## 完整 Mersenne 运行轨迹（参考，v1 时代）

```
Mersenne 项目 (2026-05-22 至 23)：
├── §13 Template 1（开放问题头脑风暴）
│   ├── 18 agent: 10 phase-1 + 5 phase-2 + 2 phase-3 + 1 phase-4
│   └── 输出：5 个候选命题
├── 命题 1 v1（Template 2 v1）
│   ├── 17 agent，5 层全跑
│   └── verdict: trivial PASS, 加强版 FAIL
├── 命题 2 v2（Template 2 v2）⭐ v2 首次实战
│   ├── 22 agent (L1: 7, L2: 2, L3: 6, L4: 4, L5: 2 + 1 coord)
│   └── verdict: KILL（指数差距）
├── 命题 3 v2 简化（实质 trivial）
│   ├── 8 agent
│   └── verdict: weak-PASS（可作引理）
├── 命题 4 v2 简化（早期 KILL）
│   ├── 6 agent（kill switch 触发最早）
│   └── verdict: KILL（与 prop2 同病）
├── 命题 5 (position paper, 1 agent)
│   └── verdict: GO（修正测度后）
└── 命题 1 v2 重跑（验证 v2 能否早期 catch 错）
    ├── 5 agent（含 sentinel）
    └── 确认 v1 结论 + sentinel 在 L1 即 catch 量级错
```

总 ~75 agent，实战时间约 4 小时（含 arxiv 限速等待）。**这是 v1 数字**，v1.3 standard 档 Mode A 的同等 topic 大约 ~150 agent / \$60-150 / 半天。

## 关键经验

### 哪些 prompt 写法有效

✅ **背景包置顶**：每个 agent prompt 前 200-300 字给问题陈述 + 5-7 行已知现状。  
✅ **明确 status 输出**：要求每个 agent 报告 `status:ok|warn|fail` 一字。  
✅ **明确 decision_log 行追加**：要求 agent 在 decision_log.md 加一行格式 `[layer.role] timestamp status keys`。  
✅ **明确禁止**：写"不要使用任何工具"对纯思考 agent；"不要写 <style>"对 HTML 输出 agent。  
✅ **明确文件路径**：从不让 agent 自己挑 — 给精确 path。  
✅ **(v1.3)** **mode 标签置顶**：每个 prompt 第一行就写 `【研究模式】mode=[A|B]`，让 agent 据此选行为。

### 哪些 prompt 写法易出问题

❌ "≤ 500 字"常被超出 30-50% — 改"硬上限 500 字，超出会被截断"。  
❌ 不指定 CSS class — agent 会自带 `<style>` 块或 inline style，破坏整体设计。  
❌ "用现有的某 PDF" — agent 不会主动 Read PDF；要明确说"用 Read tool 读 [path]"。  
❌ 在 prompt 里说"参考 prior agent 输出" — agent 看不到，必须显式列出文件路径让它 Read。  
❌ **(v1.3)** Mode A 让 numerical 只跑 sanity 5-10 点 — 必须显式要求 4 个 log 尺度 + OEIS 对照。  
❌ **(v1.3)** Mode A 让 reviewer 跳过独立复现 — paper 复现率会大幅下降。

### 真实问题与解决

| 问题 | 解决 |
|---|---|
| arxiv API 限速 (Rate exceeded) | 必须 UA + 5 秒间隔；ban 后冷却 15 min |
| pypi files 屏蔽 (uv install 失败) | 用 curl + system python3，不用 uv add |
| sympy.factorint 大数超时 | factorint(n, limit=10^10) 或嵌入已知分解数据；超 5 min 转 long_jobs（v1.3）|
| agent 写 inline CSS 干扰主页 | prompt 里强制说"用 [DOC] 已有的 box, box.warn... class，不要 <style>" |
| agent 输出"自家"DOCTYPE | 同上，明确说"只写 <h2> 起的正文" |
| 量级错误（log log 漏成 log）| L1.sentinel 早期 catch；提示 prompt"sentinel 用数值验证主项量级" |
| 跨 agent 引用混乱 | decision_log 是唯一共享状态；每个 agent 都更新它 |
| **(v1.3)** 跨 session 状态丢失 | Coordinator 启动**必须**读 research_diary.jsonl 末 50 行 |
| **(v1.3)** writer over-claim 把笔记 sketch 写成 theorem | brief 里硬写"诚实大于野心"+§"实质贡献声明" (a)(b)(c)≥1 检查 |

## 决策日志真实样本（命题 2，v1 格式）

```
# Prop 2 Decision Log

[init] 2026-05-23T02:18 ok prop=2 template=v2 budget=25
[L1.angle.A] warn  elliptic-frobenius-cant-amplify-single-factor
[L1.angle.B] ok    chebotarev-density-no-direct-bridge
[L1.angle.C] ok    artin-actually-doesnt-apply (ord_q(2)=p≠q-1)
[L1.angle.D] warn  counterexample-p=29 ratio=0.374
[L1.angle.E] FAIL  stewart-baker-only-polynomial-not-exponential
[L1.ranker]   2026-05-23T02:35 ok    best=B-main top_score=15 verdict=continue
[L1.sentinel] 2026-05-23T02:38 warn  ratio_composite=0.571 (8/14) sample_too_small
[coord]       2026-05-23T02:40 ok    proceed_to_L2 with_warn_on_sample_size
[L2.search]   2026-05-23T03:15 ok    n_papers=7
[L2.reader]   2026-05-23T10:30 ok    verdict=d note=partial_coverage
[L3.numerical]    2026-05-23T11:30 warn   ratio_composite=0.679 ω=2:100% ω≥3:14%
[L3.prover.Bmain] 2026-05-23T11:30 gap    framework_ok_but_lemma_unprovable
[L3.prover.Dsemi] 2026-05-23T11:30 gap    presupposes_open_problem_ω=2_density
[L3.advocate]     2026-05-23T11:30 challenge  no_counterexample_but_GRH_Artin_insufficient
[L3.lit.Sgobba]   2026-05-23T11:30 ok     wrong_direction_density_vs_size
[L3.lit.Stewart]  2026-05-23T11:30 gap=exp  no_known_conditional_framework_gives_exp_bound
[L4.analyst]    2026-05-23T12:00 reject
[L4.algebraist] 2026-05-23T12:00 fixable  caveat=analytical_gap_unresolved
[L4.numerist]   2026-05-23T12:00 weak     CI=[0.493,0.821]_cant_distinguish_0.5_vs_0.7
[L4.advocate]   2026-05-23T12:00 reject   recommend=KILL  exp_gap_unbridgeable
[coord]         2026-05-23T12:00 KILL     3/4_reject_votes_triggers_kill_switch
[L5.summary]    2026-05-23T12:30 ok    KILL_with_revised_proposal
[L5.decision]   2026-05-23T12:30 ok    weak-GO  rec="P+(M_p)>p^A"  v2_revised
[FINAL]         2026-05-23T12:30 KILL  prop2_v1_killed  agent_count=22  outcome=v2_revision_proposed
```

这是**整个流水线的 audit trail**。任何中途 status 变化都能查到时间戳和触发原因。

v1.3 格式参见 `../template2_proposition_deepdive.md` §"决策日志（实时账本）"，含 `[mode]` / `[diary.resume]` / `[L3.prover→numerical]` / `[L3.conjecture]` / `[L3.formal]` / `[stage5.escalate]` / `[downgrade]` 等新事件。

---

## 引用

如果在自己的论文 / 报告里参考此模板，请引用：

```
Multi-agent research pipeline applied to Mersenne prime infinitude conjecture.
Templates documented at: /Users/l/Git/3_P/20260522_math/pipeline/
Generated 2026-05-22 to 2026-05-23 using Claude Sonnet 4.6.
```
