Technical Workflow Retrospective · 技术工作流复盘(内行向)

这项暗物质理论研究,具体是怎么算出来、推出来、查出来的

一份给同行看的工程化复盘:agent 编排与失败恢复、文献检索的查询设计与去伪、每块物理的方程/数值方法/算法、三轮机制证伪与修复、以及全程的可复现实践。物理量按 measuredderiveddecision 标注。

Lu Jiang(电子科技大学)· Peng Qi(上海科技大学)· Zhiwei Wang(电子科技大学,通讯) |  输出:PRD 5pp + PRL 3pp + 13 个 Python 模块(2310 行)+ 14 份 markdown |  AI:Claude Opus 4.8 · ~84 子代理 · ~1M output token · ~1861 工具调用
目录
  1. 总体编排:主控 + 子代理(含 AI 用量统计)
  2. 文献检索:查询设计与去伪
  3. Block 1:模型与对称性(含 N_f 判定)
  4. Block 2:box loop 与有效算符
  5. Block 3:σ/m(v) 数值方法(核心)
  6. Block 4:玻尔兹曼求解与 ADM
  7. 三轮证伪与修复
  8. 拟合算法与诚实性检验
  9. 工程实践:git、记忆、构建

1总体编排:主控当「项目经理」,重活全部下放子代理

整个研究遵循一条编排纪律:主上下文只做协调、决策、综合,不做重读写检索的重活。所有实现、检索、文件写入都交给并行子代理(Task agent),保持主上下文窗口干净、可长程推进。

主控 Orchestrator 协调 · 判断 · 综合 · 写 git/记忆 文献检索 ×4 路 → 各自递归再分裂 WebSearch + WebFetch 核验 理论推导 ×3 块 Block 2/3/4 并行 各写 .md + 可运行代码 深读 ×3 篇 2602.18753 / 2105.03429 / N_f=1 危险论文 数值复核 in-line 主控亲自跑核心拟合 (子代理死掉后接管) 关键工程教训:子代理会「递归再分裂 + 偶发空转」 ① 首批 agent 把 WebSearch 当成「deferred 工具」没加载 → 空转不写文件 ② 修复:prompt 里强制「第 0 步 ToolSearch 加载 WebSearch/WebFetch + 必须写文件」 ③ 子代理死在半路时,主控亲自接管核心计算(如 Block 3 拟合),绝不丢任务
编排拓扑与真实发生的失败-恢复。子代理的最终消息回传给主控(用户看不到),主控负责落盘与综合。
真实踩坑:第一批 4 个检索子代理因 WebSearch/WebFetch 是「延迟加载工具」(deferred),没先用 ToolSearch 把 schema 载入就直接调用,结果空转、不写文件。诊断后在每个子代理 prompt 顶部加了强制的「STEP 0:ToolSearch query="select:WebSearch,WebFetch"」+「文件必须写盘才算完成」两条硬约束,重新派发即恢复。这类失败全部如实记进了 CHANGELOG。

1.1 AI 侧用量统计(本会话真实数据)

下列数字均从本会话的子代理 transcript(93 个后台任务文件)中实测汇总 measured。说明:这些是子代理侧合计,且包含「子代理递归再分裂」出的 helper;主控自身 token 未计入。cache_read 巨大是因为每个 agent 启动时会重读被缓存的上下文(这是正常的,且大部分走缓存、单价低)。

模型 & 规模

主模型Claude Opus 4.8
后台任务文件93 个
子代理运行~84(含递归 helper)
后台 bash 任务9(拟合/编译等)

Token 合计(子代理侧)

output~1.01M
input(新)~4.45M
cache 读取~157M
cache 写入~17M

工具调用

子代理工具调用~1,861 次
其中 Web 检索/精读数百次 WebSearch+WebFetch
主控 git 提交20+ 次(研究日志)
产出代码13 模块 / 2310 行

口径说明:output ~1M token 是子代理「真正生成」的内容量;input 的「新 token」~4.4M 与 cache 读取 ~157M 不应简单相加当成本——缓存读取单价远低于新 input。把 cache 读取计入是因为多代理并行时每个 agent 都要把共享上下文读进来,这正是「多代理换上下文窗口」策略的代价与收益所在。

2文献检索:不是「搜一下」,而是查询设计 + 逐条去伪

novelty 是论文的生死线,所以 Phase 0 是硬门槛:动任何推导前先把先验工作查穷尽。策略是四路正交分解——把"可能撞车"的空间切成互不重叠的子域并行扫,再交叉三角验证。

2.1 查询设计

2.2 去伪:搜索引擎的归属经常是错的

核验纪律:每个要进参考文献的 arXiv 号,都用 WebFetch 打开摘要页核对「标题+作者+年份+期刊」四项一致才采纳;否则标 [arXiv unverified]。检索中剔除了多条张冠李戴,例如:把 2412.19371 误归给 Yang Bai(实为 Rosenlyst)、把不存在的"Mohapatra-Nussinov box-diagram"当先例、把 1503.07874(其实是对撞机 EFT)误当 loop-DD。这些假归属若进了 bib,审稿人一眼能看穿。

2.3 最终 novelty 判定 + 引用树终查

四路报告综合成一页判定 lit/00-novelty-synthesis.md:核心新意(单旋钮统一)真新;box portal 与 σ/m(v) 是支撑、部分被预占,逐条技术区分。最后做 INSPIRE 引用树终查确认优先权:

最近邻论文INSPIRE recid被引结论
2602.18753(box portal 最像;第一作者本人前作31228020无后续,改为自引扩展
2410.23631(confining+loop DD)284426077 篇全为相邻但不同主题,未预占

→ 单旋钮 glueball↔暗π SIDM + SM-色 box portal + ADM 的组合未被占据decision

3Block 1:模型定义——一个被对称性逼出来的判定

定模型时第一个岔路是「几种暗夸克 N_f」。最初想 N_f=1(最简),但用 Goldstone 计数自检后否决了——这是个纯对称性论证,我现场用 sympy 算了一遍。

手征破缺与 Goldstone 计数(code/verify_block1.py)

SU(N≥3) 复表示: SU(N_f)L×SU(N_f)R → SU(N_f)V ⟹ N_f²−1 个 Goldstone N_f=2 → 3 个暗π ✓
SU(2) 赝实表示: SU(2N_f) → Sp(2N_f) ⟹ 2N_f²−N_f−1 个 N_f=2 → 5 个(含双夸克)
判定 N_f=2 decision:N_f=1 时上式给 0 个 Goldstone——唯一的赝 Goldstone 是 η′,被 U(1)A 反常顶到 ~Λ_d,没有任何参数级别轻的介子当 mediator。先验佐证:Francis-Hudspith-Lewis-Tulin (1809.09117) 的 N_f=1 暗物质正是无暗π、DM 是自旋-1 的 ρ。所以取 N_f=2、选 N≥3(复表示,干净的 3 暗π 同位旋三重态)。

谱随旋钮 r 的标度(QCD/格点标定)

m0++/√σ = 3.405(21) [SU(3)], 3.072(14) [SU(∞)] Athenodorou-Teper 2007.06422 measured
GMOR: mπ² = 2B·mq ∝ r ; MB ≈ kB·N·Λd, kB≈0.71 QCD 标定 derived

三项现场自检全过:Goldstone 计数、谱走向、SIDM 尺度自洽(取 Λ_d≈0.5 GeV → M_B≈1 GeV、m_π≈几十 MeV,落在标准 SIDM 窗口)。

4Block 2:box loop 积分 → 有效算符与标度

连接子 {ψ,Φ}(带 SM 色 × 暗色)在一圈 box 图里跑。M_ψ,M_Φ ≫ Λ_d 做重质量展开;box 是紫外有限的,手征性禁止质量插入,匹配到维度-6 矢量算符:

Obox = Cbox (q̄γμq)(Q̄γμQ), Cbox ~ yq²yQ² / (16π² M²) M=max(M_ψ,M_Φ)
⟹ σSI ∝ y⁸ / Mψ对比 2602.18753:γγ 维度-8,∝ M_ψ⁻⁸

数值(code/box_calc.py,主控复跑):M_ψ=1.5 TeV、y=1 → σ_SI ≈ 4.66×10⁻⁴⁵ cm² derived解耦论证:SIDM 强度由 (Λ_d, r) 定,核子耦合由 (y, M_ψ) 定——参数上正交。
⚠️ 第三轮审查修正:拟合把 M_B 推到 38 GeV(氙实验灵敏度峰值)后,该基准点被 LZ(σ_SI<9.2×10⁻⁴⁸ cm² @36 GeV measured,arXiv:2207.03764)排除 ~500×;y⁸ 陡标度下 y≲0.46 或 M_ψ≳7 TeV 即恢复可行。叙事从「躲开直接探测」翻转为「LZ 正在扫描 portal 参数空间」——更可证伪。

5Block 3:σ/m(v) 数值方法(科学核心)

这块是整个工作的心脏,也是前两轮证伪的发生地。任务:从介子交换势出发,解出转移截面随速度的变化,做麦克斯韦平均,χ² 拟合矮星系→星系团真实数据。

5.1 为什么是「转移截面」而非总截面

约定对齐:观测端(KTY16、Sagunski21)对各向异性散射用的是动量转移加权的转移截面 σ_T = ∫(1−cosθ)(dσ/dΩ)dΩ,并以 ⟨v⟩=(4/√π)σ1D 的麦克斯韦平均给出有效 σ/m。模型曲线必须用同一种平均才能和数据比——这点从文献里逐字核出并写进 lit/02

5.2 三区制求解(CLASSICS 移植)

Yukawa 势的转移截面没有统一闭式,需按 (κ, β) 分区。我们把 Tulin-Yu-Zurek (1302.3898) 的 Born/经典拟合式 + Hulthén s-波(共振/量子区)逐式移植自同行评审的 CLASSICS 代码 (2011.04679),并对齐其匹配常数:

# code/sigma_v.py — 区制分类(节选自真实实现)
# kappa = m_phi/(M_B * v_rel) ;  beta = 2*alpha_d*m_phi/(M_B*v_rel^2)
def _sigma_combined(kappa, beta, sign):
    if kappa > 1.0:          # 经典 / Born 区
        return _sigma_classical(kappa, beta, sign)
    elif kappa < 0.4:        # Hulthén s-波(共振/量子)
        return _sigma_hulthen(kappa, beta, sign, eps=1.6)
    else:                     # 0.4≤κ≤1 线性插值过渡
        return _interp(kappa, beta, sign)

5.3 麦克斯韦速度平均

96 点 Gauss-Legendre 求积(np.polynomial.legendre.leggauss(96))在麦克斯韦相对速率分布上算 ⟨σ_T v⟩/⟨v⟩,与数据论文约定一致;扫 v=10–3000 km/s。快速版供参数扫描、自适应 quad 版供单点高精度。

6Block 4:玻尔兹曼数值求解 → 暗物质必须非对称

对称冻结用标准 Boltzmann ODE,变量 Y=n/s、x=M_B/T_SM,scipy.solve_ivp(BDF)求解,Gondolo-Gelmini 约定,并用 Steigman 2012 热遗迹基准校准(在 100 GeV 复现 Ωh²=0.121,误差 ~1%)。

dY/dx = −(1/2)·λ·(Y²−Yeq²), λ = ⟨σv⟩·s/(H·x) Kolb & Turner 5.26
关键结果(诚实) derived:在 SIDM 尺度 ⟨σv⟩~π/Λ_d²≈12.6 GeV⁻²(几何值),比热遗迹值大 ~10⁹。对称冻结欠丰 ~10⁹;要对称给对需 Λ_d≈27 TeV(偏离 SIDM 尺度 5×10⁴)。⟹ 强相互作用逼出非对称暗物质(ADM):精确 U(1)B 支持暗重子不对称,不对称度与可见重子同量级即自动给出 Ω_DM≈5Ω_b(38 GeV 基准下 Y_DM≈1.1×10⁻¹¹≈0.13 Y_b derived)。(初版的 ξ<0.46 冷暗扇区 N_eff 论证在第三轮审查后被取代:暗π 经轻子标量衰变后 ΔN_eff≈0,见下方时间轴。)

7三轮证伪与修复(最能体现方法论)

证伪一 · 解析

赝标量单π交换的中心力被压低 ~3×10⁻⁷

暗π 是赝标量,单π交换给自旋-自旋/张量势,自旋无关中心 Yukawa 被 (m_π/2M_B)² 压低。code/ope_mediator_check.py 现场算出该因子 ≈3.4×10⁻⁷ derived ⟹ 轻暗π 单独不能当中心 mediator。

证伪二 · 数值拟合

共振 SIDM 拟合后否决:曲线太陡

改试 s-道近阈共振(CGCM 1810.04709,sigma_v_resonant.py 实现并核验 BW 峰值到机器精度)。诚实拟合结果:单共振给 σ_T∝v⁻⁴,矮星系/星系团比 ~10³,而数据斜率仅 d ln(σ/m)/d ln v ≈ −0.70(~10 倍);最优 χ²/dof≈8、E_R 顶到网格边界。否决

修复 · 物理洞察

正解:双π交换(核力 σ-道的暗版)

真正对的中心力是各向同性-标量道的双π交换——核力中程吸引的暗版,自旋无关、不被压低、射程 ~1/(2m_π)。我现场验证:m_π~14 MeV → 有效介子 ~28 MeV,正是 Yukawa 拟合想要的;Yukawa 形状斜率 −0.75 对上数据 −0.70。r 旋钮故事完整保留,有效 α_d 现在从暗π 耦合经 TPE 导出。

证伪三 · 全局敌意审查(2026-07-02)

审查抓出机制级漏洞:稳定暗π会「过闭合」宇宙

成稿后以敌意审稿人标准全局复审,发现:N_f=2 精确同位旋让 3 个暗π绝对稳定,而 box 是矢量流、不能让它衰变;WZW 3→2 在 N_f=2 恰好为零 ⟹ 28 MeV 稳定遗迹过闭合宇宙 ~10⁵ 倍(ξ=0.4)derived。同轮还发现 38 GeV 基准被 LZ 排除 ~500×、论文内部数字未随基准迁移同步。

修复 · 最小新场(code/pion_decay.py)

一个带电标量 Φ_ℓ~(1,N̄)Y=−1 让全部暗π在 BBN 前衰变

Yukawa y_i ē_R q_L^i Φ_ℓ 积掉后诱导螺旋度压低的 π_d→e⁺e⁻:y=1、M=1 TeV 时 τ≈2.5 msderived,窗口 M/y≲4.5 TeV;暗π 与电子热接触到 T~m_π 后干净退场 ⟹ ΔN_eff≈0。DD 叙事同步翻转为「LZ 正在探测」;所有数字对 38 GeV 基准重新同步;暗核束缚态(αμ/m_φ≈116)作为显式 caveat 引 Wise-Zhang。深读 Cline-Perron 后在论文中如实让位其「非对称暗重子拟合同一数据」的先行地位,区分点收窄为:无调谐 TPE 势 vs 他们百分级调谐的 ERE 极点、有色 box vs 暗光子、r-dial+glueball 端点。

方法论要点:三轮「难看的中间结果」全部留在仓库(含被否决的共振代码、过闭合估算与对比表)。一个会自我证伪、把弯路如实记录的工作流,比一路顺风的更可信。

8拟合算法与诚实性检验

最终 TPE 拟合(code/fit_tpe.py):对有效参数 (α_d, 2m_π, M_B) 用 scipy.differential_evolution 全局优化,χ² 含 5 个双边数据点 + 星系团单边上限罚项。结果:

α_d ≈ 0.34, 2m_π ≈ 56 MeV, M_B ≈ 38 GeV, χ²/dof ≈ 2.8 derived

内建诚实性检验(写在 fit_resonant_fast.py 里):

9工程实践:让研究可追溯、可复现

Git 作为研究日志

每完成一个 block/判定就提交,commit message 记录物理结论与转折(含「resonant rejected」这种)。17 个提交串起完整路线。

跨会话记忆 + 续航文件

TODO/CHANGELOG/ARCHITECTURE + memory 文件,保证上下文压缩或换会话后不丢线索;子代理产出由主控落盘。

可复现 + 来源标注

13 个 Python 模块全部主控复跑验证;每个带单位的物理量标 measured/derived/estimate;格点/实验输入带 arXiv。

一句话总结技术工作流:正交分解的并行检索 + 逐条 arXiv 去伪 → 对称性逼出 N_f=2 → 三块物理并行(box 重质量展开 / CLASSICS 三区制 σ_T + GL96 速度平均 / solve_ivp 玻尔兹曼)→ 在核心处两次数值证伪、用核物理 TPE 洞察修复 → differential_evolution 拟合 + 内建造假检测 → 成稿后第三轮敌意审查抓出暗π过闭合与 LZ 排除、以最小新场修复 → 全程 git/记忆/复跑闭环。