Skip to content

AgentCaster: Reasoning-Guided Tornado Forecasting

Status: completed

Author: Michael Chen

Venue / Year: arXiv v1, 2025-10-02;使用 NeurIPS 2025 preprint 模板,但未查到正式接收信息

Affiliation: Department of Computing + Mathematical Sciences, California Institute of Technology

Links: arXiv · PDF · Code · Dataset

Analysis date: 2026-07-31

Tags: [[LLM-agent]] [[multimodal-LLM]] [[weather-forecasting]] [[tornado]] [[geospatial-reasoning]] [[tool-use]] [[benchmark]] [[HRRR]] [[AI-for-science]]

One-Sentence Summary

AgentCaster 把多模态 LLM 放入一个可交互的龙卷风预报环境:模型按需查看 HRRR 预报图和探空图,最终提交嵌套的概率风险多边形;40 天实验显示最强 LLM 的 TornadoBench 为 8.51%,低于 SPC 业务预报的 18.31%,但论文关于地面真值和统计显著性的关键数学描述与公开实现并不完全一致。

先给结论

这篇论文最有价值的部分不是提出新的天气预测网络,而是把一个真实、高风险、长时程、空间输出明确的专家任务做成可执行 benchmark。它同时提供真实 HRRR 数值预报输入、地图与垂直探空两种模态、多轮工具调用、GeoJSON 风险区输出、观测驱动几何评价、SPC 业务预报基线,以及公开代码和约 244 GB 数据。

论文的核心负结果也很重要:当前通用多模态 LLM 不仅分数低,而且常常高估风险,定位偏差达到数百公里,也无法稳定地产生有效 GeoJSON。更多 reasoning effort 没有稳定帮助;GPT-5 系列从 minimal 到 high 的分数反而单调下降。

不过,严格审阅后不能直接接受论文的全部定量结论。最高优先级问题有三个:

  1. 地面真值公式与代码不一致。 论文写

    Ptruth(x,y)=1exp[λ(x,y)], P_{\mathrm{truth}}(x,y) = 1-\exp\left[-\lambda(x,y)\right],

    公开代码实际使用

    Pcode(x,y)=1exp[0.25λ(x,y)]. P_{\mathrm{code}}(x,y) = 1-\exp\left[-0.25\lambda(x,y)\right].

    这会改变风险多边形、最大风险等级、天级权重以及所有模型分数。

  2. “SPC 显著优于 LLM”缺少正确的配对检验。 论文只给各模型独立 bootstrap 区间;公开置信区间脚本的分母与主分数不一致,并在重采样后继续使用固定原始分母。

  3. 这不是受控的人机对照。 SPC 业务预报员没有被限制在与 AgentCaster 相同的 00 UTC HRRR、图像接口、50 次探空配额和上下文条件下。SPC 是合理的业务参考线,但不能精确量化相同信息条件下的人机推理差距。

总体判断:benchmark 构想强,公开资产与负结果有价值,但当前版本需要 Major Revision 才能让数学定义、实现和统计结论完全对齐。

1. 问题与贡献

1.1 论文真正问什么

论文不是问“LLM 能否替代数值天气预报”,而是问:

当底层数值预报已经由 HRRR 给出后,通用多模态 LLM 能否像业务预报员一样主动选择证据、整合空间地图与垂直廓线,并输出未来 12--36 小时的龙卷风概率风险区?

目标期为目标日 12:00 UTC 到次日 12:00 UTC。风险等级表示未来 24 小时内、任一点 25 英里(约 40 km)范围内发生龙卷风的概率。

1.2 为什么适合评估 agent

任务同时要求:

  • 从 145 类地图、25 个时效中主动选择证据;
  • 读取二维气象场与 Skew-T log-P 探空;
  • 整合不稳定度、风切变、水汽、触发条件及其时间演变;
  • 在每天最多 50 次探空的预算下分配资源;
  • 生成合法、嵌套且空间位置精确的 GeoJSON;
  • 在 2%、5%、10%、15%、30%、45%、60% 之间做概率判断。

观察到的最终失败应理解为多个因素的合成:

ObservedFailure=MeteorologicalReasoning+VisualParsing+ToolPlanning+ContextManagement+GeometryGeneration+APIIntegration. \begin{aligned} \mathrm{ObservedFailure} &=\mathrm{MeteorologicalReasoning}+\mathrm{VisualParsing}\\ &\quad+\mathrm{ToolPlanning}+\mathrm{ContextManagement}\\ &\quad+\mathrm{GeometryGeneration}+\mathrm{APIIntegration}. \end{aligned}

论文没有通过消融完全拆开这些因素,因此最终分数不能只归因于“气象推理”。

1.3 贡献类型

  • 概念贡献:把长时程龙卷风 outlook 定义为多模态 agent benchmark;
  • 数据贡献:40 天、145,000 张地图、1,605,000 个可选探空槽位;
  • 指标贡献:TornadoBench 与两个 TornadoHallucination 指标;
  • 经验贡献:比较 12 个前沿 LLM 配置与 SPC,呈现过报、错位和格式失败;
  • 工程贡献:公开约 244 GB 数据、预测 GeoJSON 和评分代码。

没有新的神经网络层、训练目标或可学习参数。AgentCaster 是 environment + benchmark + evaluation pipeline,不是训练出来的新预测模型。

2. 系统架构与完整流程

text
00 UTC HRRRv4
  ├─ 145 类变量 × F12...F36
  │    └─ 每日 3,625 张 CONUS 地图
  └─ 1,605 个 BUFKIT 站点 × F12...F36
       └─ 每日 40,125 个可按需生成的探空组合

LLM agent
  ├─ list_available_map_types
  ├─ request_hrrr_map
  ├─ request_sounding(每日最多 50 次)
  └─ submit_tornado_prediction

GeoJSON 风险多边形
  └─ 2% ⊇ 5% ⊇ 10% ⊇ 15% ⊇ 30% ⊇ 45% ⊇ 60%

SPC 龙卷风报告
  └─ KDE → 插值 → 40 km 邻域积分 → Poisson 映射 → 风险带

几何评价
  ├─ TornadoBench
  ├─ TornadoHallucinationSimple / Hard
  └─ 总风险与最大风险质心距离

2.1 数据规模

F12 到 F36 含端点,共 25 个时效。每天地图数:

145×25=3,625. 145\times 25=3{,}625.

40 天:

3,625×40=145,000. 3{,}625\times 40=145{,}000.

每天可选探空:

1,605×25=40,125. 1{,}605\times 25=40{,}125.

40 天:

40,125×40=1,605,000. 40{,}125\times 40=1{,}605{,}000.

2.2 四个工具

工具输入输出作用
list_available_map_types当天日期由环境固定地图目录列表建立变量空间
request_hrrr_map地图类型、F12--F36预生成 PNG查看 CAPE、CIN、风切变、反射率等
request_sounding纬度、经度、时效最近站点的 Skew-T 图查看垂直温湿廓线、风羽与诊断量
submit_tornado_predictionGeoJSON 字符串保存或错误信息结束当天交互

请求探空时用 Haversine 距离寻找最近站点。标准形式是:

a=sin2(ϕ2ϕ12)+cosϕ1cosϕ2sin2(212),d=2Rarcsina. \begin{aligned} a &=\sin^2\left(\frac{\phi_2-\phi_1}{2}\right)\\ &\quad+\cos\phi_1\cos\phi_2\sin^2\left(\frac{\ell_2-\ell_1}{2}\right),\\ d &= 2R_{\oplus}\arcsin\sqrt{a}. \end{aligned}

论文只说明使用 Haversine 距离,没有显式写出这组公式。

2.3 输出与互斥风险带

输出是 GeoJSON FeatureCollection,每个 Feature 对应一个风险等级。高风险区必须包含于低风险区:

P60P45P30P15P10P5P2. \mathcal P_{60} \subseteq \mathcal P_{45} \subseteq \mathcal P_{30} \subseteq \mathcal P_{15} \subseteq \mathcal P_{10} \subseteq \mathcal P_{5} \subseteq \mathcal P_{2}.

评分代码从高风险到低风险做差集,得到互不重叠的带:

Bc=Pcc>cPc. \mathcal B_c = \mathcal P_c \setminus \bigcup_{c'>c}\mathcal P_{c'}.

实际 IoU 比较的是这些 disjoint bands,不是原始嵌套多边形。

3. 地面真值:全部核心数学

3.1 从离散报告到连续强度场

设当天有 NN 个龙卷风报告。论文在 NCEP Grid 211 的 Lambert Conformal 投影坐标 (x,y)(x,y) 上定义:

f(x,y)=n=1N12πσ2exp[12(dn(x,y)σ)2], f(x,y) = \sum_{n=1}^{N} \frac{1}{2\pi\sigma^2} \exp\left[ {}-\frac{1}{2} \left( \frac{d_n(x,y)}{\sigma} \right)^2 \right],

其中 dn(x,y)d_n(x,y) 是到第 nn 个报告的投影平面欧氏距离,σ120 km\sigma\approx120\ \mathrm{km};代码使用 σ=121,906 m\sigma=121{,}906\ \mathrm m

每个高斯核积分为 1,因此:

R2f(x,y)dxdy=N. \int_{\mathbb R^2}f(x,y)\,\mathrm dx\,\mathrm dy=N.

所以 ff 的量纲为 m2\mathrm m^{-2},更准确地说是事件强度场。论文的 “normalized probability density field” 表述可能误导:归一化的是每个报告对应的高斯核,不是所有报告之和。

3.2 插值与邻域积分

先在约 80 km 网格计算 f80f_{80},再双线性插值:

f5=Ibilinear(f80). f_5 = \mathcal I_{\mathrm{bilinear}}(f_{80}).

公开代码的细网格间距:

Δx=Δy=40,6358 m=5,079.375 m, \Delta x=\Delta y=\frac{40{,}635}{8}\ \mathrm m=5{,}079.375\ \mathrm m,

尺寸:

Nx=185×8=1,480,Ny=129×8=1,032, N_x=185\times8=1{,}480, \qquad N_y=129\times8=1{,}032,

单元面积:

Acell=ΔxΔy2.57999×107 m2. A_{\mathrm{cell}} = \Delta x\Delta y \approx2.57999\times10^7\ \mathrm m^2.

定义 40 km 圆盘核:

KR(i,j)=1[(iΔx)2+(jΔy)2R2],R=40 km. K_R(i,j) = \mathbf 1 \left[ (i\Delta x)^2+(j\Delta y)^2 \leq R^2 \right], \qquad R=40\ \mathrm{km}.

论文的期望事件数为:

λ(x,y)=AcellConv(f5,KR)(x,y). \lambda(x,y) = A_{\mathrm{cell}} \operatorname{Conv}(f_5,K_R)(x,y).

离散展开:

λpqAcell(i,j)DRf5(pi,qj). \lambda_{pq} \approx A_{\mathrm{cell}} \sum_{(i,j)\in\mathcal D_R} f_5(p-i,q-j).

它近似:

λ(x,y)u(x,y)2Rf(u)du, \lambda(x,y) \approx \int_{\lVert u-(x,y)\rVert_2\leq R} f(u)\,\mathrm du,

(x,y)(x,y) 周围 40 km 内的期望龙卷风报告数。

3.3 Poisson 映射

若邻域事件数:

KPoisson(λ), K\sim\operatorname{Poisson}(\lambda),

则至少一次事件的概率:

P(K1)=1P(K=0)=1exp(λ). \begin{aligned} P(K\geq1) &= 1-P(K=0)\\ &= 1-\exp(-\lambda). \end{aligned}

论文据此给出:

Ptruth(x,y)=1exp[λ(x,y)]. P_{\mathrm{truth}}(x,y) = 1-\exp\left[-\lambda(x,y)\right].

3.4 最关键的不一致:代码多出 α=0.25\alpha=0.25

公开 calculate_ppf.py 定义:

α=0.25 \alpha=0.25

并计算:

Pcode(x,y)=1exp[αλ(x,y)]. P_{\mathrm{code}}(x,y) = 1-\exp\left[-\alpha\lambda(x,y)\right].

对小 λ\lambda

Pcode0.25λ,Ppaperλ. P_{\mathrm{code}}\approx0.25\lambda, \qquad P_{\mathrm{paper}}\approx\lambda.

风险阈值 pp 所需的期望事件数为:

λp(α)=ln(1p)α. \lambda_p(\alpha) = \frac{-\ln(1-p)}{\alpha}.
风险阈值 pp论文 α=1\alpha=1代码 α=0.25\alpha=0.25
2%0.020200.08081
5%0.051290.20517
10%0.105360.42144
15%0.162520.65008
30%0.356671.42670
45%0.597842.39135
60%0.916293.66516

该差异会改变风险带、每日类别集合、最大风险、天级权重、quiet/risk day 划分、TornadoBench、Hallucination 和质心。论文附录给 agent 的系统提示也写成 P=1exp(λ)P=1-\exp(-\lambda),所以模型被告知的目标与当前代码不同。

在作者澄清前,存在三种可能:

  1. 表格由 α=0.25\alpha=0.25 产生,正文漏写;
  2. 表格使用 α=1\alpha=1,公开代码后来改变;
  3. 表格、数据与代码来自不同版本。

当前仓库没有将论文表格绑定到明确 release tag,无法仅凭公开材料判定。

3.5 风险离散化

C={0,2,5,10,15,30,45,60}%. \mathcal C = \{0,2,5,10,15,30,45,60\}\%.

完整映射:

C(p)={0%,0p<0.02,2%,0.02p<0.05,5%,0.05p<0.10,10%,0.10p<0.15,15%,0.15p<0.30,30%,0.30p<0.45,45%,0.45p<0.60,60%,0.60p. C(p) = \begin{cases} 0\%, & 0\leq p\lt0.02,\\ 2\%, & 0.02\leq p\lt0.05,\\ 5\%, & 0.05\leq p\lt0.10,\\ 10\%, & 0.10\leq p\lt0.15,\\ 15\%, & 0.15\leq p\lt0.30,\\ 30\%, & 0.30\leq p\lt0.45,\\ 45\%, & 0.45\leq p\lt0.60,\\ 60\%, & 0.60\leq p. \end{cases}

分类栅格随后矢量化并重投影到 WGS84。

4. TornadoBench

4.1 类别 IoU

对日期 dd、风险带 cc,令 Gd,cG_{d,c} 为真值几何,Pd,cP_{d,c} 为预测几何:

IoUd,c=Area(Gd,cPd,c)Area(Gd,cPd,c). \operatorname{IoU}_{d,c} = \frac{ \operatorname{Area}(G_{d,c}\cap P_{d,c}) }{ \operatorname{Area}(G_{d,c}\cup P_{d,c}) }.

面积在 Lambert Conformal 投影坐标中计算,避免经纬度面积畸变。

4.2 0% 区域

Ω\Omega 为 CONUS 评价域:

Gd,+=c2%Gd,c,Pd,+=c2%Pd,c, G_{d,+} = \bigcup_{c\geq2\%}G_{d,c}, \qquad P_{d,+} = \bigcup_{c\geq2\%}P_{d,c},
Gd,0=ΩGd,+,Pd,0=ΩPd,+. G_{d,0} = \Omega\setminus G_{d,+}, \qquad P_{d,0} = \Omega\setminus P_{d,+}.

代码计算:

IoUd,0=Area(Gd,0Pd,0)Area(Gd,0Pd,0). \operatorname{IoU}_{d,0} = \frac{ \operatorname{Area}(G_{d,0}\cap P_{d,0}) }{ \operatorname{Area}(G_{d,0}\cup P_{d,0}) }.

但当前 daily_scores 在风险日只平均非零类别,没有把 IoUd,0\operatorname{IoU}_{d,0} 纳入 TornadoBench。论文介绍了 0% IoU,却没有清楚说明它是否进入 SdS_d

4.3 每日分数

TBd={1,MaxRiskG,d=0% and MaxRiskP,d=0%,0,MaxRiskG,d=0% and MaxRiskP,d>0%,1SdcSdIoUd,c,MaxRiskG,d>0%. \mathrm{TB}_d = \begin{cases} 1, & \operatorname{MaxRisk}_{G,d}=0\% \ \mathrm{and}\ \operatorname{MaxRisk}_{P,d}=0\%,\\ 0, & \operatorname{MaxRisk}_{G,d}=0\% \ \mathrm{and}\ \operatorname{MaxRisk}_{P,d}\gt0\%,\\ \dfrac{1}{|S_d|} \displaystyle\sum_{c\in S_d}\operatorname{IoU}_{d,c}, & \operatorname{MaxRisk}_{G,d}\gt0\%. \end{cases}

正文未定义 SdS_d。代码实际对应:

Sd={c{2,5,10,15,30,45,60}% | Area(Gd,cPd,c)>109}. S_d = \left\{ c\in\{2,5,10,15,30,45,60\}\% \ \middle|\ \operatorname{Area}(G_{d,c}\cup P_{d,c})\gt10^{-9} \right\}.

所以每天各出现等级等权,而不是按风险或面积加权。

4.4 跨日权重

Wd=w(MaxRiskG,d), W_d = w(\operatorname{MaxRisk}_{G,d}),

其中:

w(0%)=1,w(2%)=2,w(5%)=5,w(10%)=10,w(15%)=15,w(30%)=30,w(45%)=45,w(60%)=60. \begin{aligned} w(0\%)&=1, & w(2\%)&=2, & w(5\%)&=5, & w(10\%)&=10,\\ w(15\%)&=15, & w(30\%)&=30, & w(45\%)&=45, & w(60\%)&=60. \end{aligned}

总分:

TornadoBench=d=1DWdTBdd=1DWd. \mathrm{TornadoBench} = \frac{ \sum_{d=1}^{D}W_d\mathrm{TB}_d }{ \sum_{d=1}^{D}W_d }.

本数据分母:

dWd=22×1+6×2+4×5+3×10+2×15+3×30=204. \begin{aligned} \sum_dW_d &=22\times1+6\times2+4\times5+3\times10\\ &\quad+2\times15+3\times30\\ &=204. \end{aligned}

三个 30% 日贡献:

9020444.1% \frac{90}{204}\approx44.1\%

总权重;15% 与 30% 日合计贡献:

12020458.8%. \frac{120}{204}\approx58.8\%.

22 个 0% 日占样本 55%,权重只占:

2220410.8%. \frac{22}{204}\approx10.8\%.

所以该指标明确偏向高影响日。

4.5 无效 GeoJSON

主评分使用所有 40 天共同分母 204。模型没有有效预测的日期不进入分子,等价于该日 TBd=0\mathrm{TB}_d=0。因此 TornadoBench 确实惩罚无效输出。

但 Hallucination、最大风险匹配率和质心距离只在有效预测行上计算。辅助指标的样本量不相同,必须与 Prediction Days 一起解释。

5. TornadoHallucination

论文只给文字定义。根据正文与代码可写成:

qd=1[MaxRiskG,d=0%], q_d = \mathbf1[ \operatorname{MaxRisk}_{G,d}=0\%],
rd=1[MaxRiskP,d2%]. r_d = \mathbf1[ \operatorname{MaxRisk}_{P,d}\geq2\%].

对模型有效日期集合 Vm\mathcal V_m

THSimple(m)=1VmdVmqdrd. \mathrm{TH}_{\mathrm{Simple}}(m) = \frac{1}{|\mathcal V_m|} \sum_{d\in\mathcal V_m}q_dr_d.

“0% 真值”不等于当天没有龙卷风。22 个 0% 日仍有 5 份报告,只是平滑概率场没有达到 2% 阈值。因此它更准确地描述“低于 benchmark 最低风险阈值的日期”。

定义非零风险区无交集:

zd=1[Area(Gd,+Pd,+)<109]. z_d = \mathbf1[ \operatorname{Area}(G_{d,+}\cap P_{d,+})\lt10^{-9}].

hard hallucination 事件:

hd=1[(qd=1rd=1)(qd=0rd=1zd=1)]. h_d = \mathbf1[ (q_d=1\land r_d=1) \lor (q_d=0\land r_d=1\land z_d=1)].

每日损失:

Ldhard=hdw(MaxRiskP,d), L_d^{\mathrm{hard}} = h_d\,w(\operatorname{MaxRisk}_{P,d}),

总分:

THHard(m)=1VmdVmLdhard. \mathrm{TH}_{\mathrm{Hard}}(m) = \frac{1}{|\mathcal V_m|} \sum_{d\in\mathcal V_m}L_d^{\mathrm{hard}}.

该定义不对称:风险日预测非零风险但位置完全错会被惩罚;风险日直接预测 0% 虽然是完全漏报,却不计 hallucination。漏报仍由 TornadoBench 和 underforecast 指标惩罚。因此低 hallucination 不等于整体更安全。

6. 质心距离

总风险质心:

cdG=centroid(Gd,+),cdP=centroid(Pd,+), \mathbf c_d^G = \operatorname{centroid}(G_{d,+}), \qquad \mathbf c_d^P = \operatorname{centroid}(P_{d,+}),
Δdoverall=cdGcdP2. \Delta_d^{\mathrm{overall}} = \lVert\mathbf c_d^G-\mathbf c_d^P\rVert_2.

令真值与预测各自最大等级为 cmax,dGc_{\max,d}^Gcmax,dPc_{\max,d}^P

cdG,max=centroid(Gd,cmax,dG), \mathbf c_d^{G,\max} = \operatorname{centroid}(G_{d,c_{\max,d}^G}),
cdP,max=centroid(Pd,cmax,dP), \mathbf c_d^{P,\max} = \operatorname{centroid}(P_{d,c_{\max,d}^P}),
Δdmax=cdG,maxcdP,max2. \Delta_d^{\max} = \lVert \mathbf c_d^{G,\max} {}-\mathbf c_d^{P,\max} \rVert_2.

距离在共同投影中计算,单位由米转为千米。局限是:多块区域的质心可能落在风险区外;不同形状可有相近质心;双方最大风险等级不同时,距离不表达强度差异。

7. 数据集

窗口为 2025-03-01 到 2025-04-09,共 522 份报告。

最大真值风险天数报告数
0%225
2%621
5%444
10%3102
15%245
30%3305
45% / 60%00
总计40522

三个 30% 日是 2025-03-14(104 份)、03-15(87 份)、04-02(114 份),合计:

104+87+114=305,30552258.4%. 104+87+114=305, \qquad \frac{305}{522}\approx58.4\%.

窗口虽连续,但作者明确说它为 benchmark composition 优化选择。结论可支持这个包含多个 outbreak 的 40 天窗口,不能直接外推到所有季节、年份与气候区。

8. 实验与主要结果

8.1 设置

比较 Claude 3.7 Sonnet、Claude thinking、Gemini 2.5 Pro / Flash thinking、GPT-4.1、o3、o4-mini-high、GPT-5 minimal / low / medium / high 和 Grok 4。作者称知识截止日期均早于 2025-03-01。

人类基线是每天首个官方 SPC Day 1 Convective Outlook。它是业务机构产品,不是单个人在 AgentCaster 相同界面下的受控实验;SPC 可能综合更多 NWP、观测、雷达、卫星和团队经验。

公开 API 封装没有显式传 temperature、top-pp、seed 或 provider snapshot。每个模型-日期似乎只有一次主运行,因此差异包含采样波动和模型版本因素。

8.2 主表

模型TornadoBench (%)TH Simple \downarrowTH Hard \downarrowUnder / Match / Over (%)
SPC18.310.2750.705.0 / 55.0 / 40.0
GPT-5 minimal8.510.3852.5612.8 / 20.5 / 66.7
GPT-5 low7.230.4441.9211.1 / 27.8 / 61.1
Claude 3.7 Sonnet6.790.4003.3010.0 / 22.5 / 67.5
Claude 3.7 Sonnet thinking6.640.3593.1017.9 / 23.1 / 59.0
GPT-5 medium6.280.4842.659.7 / 22.6 / 67.7
GPT-4.15.630.4443.6411.1 / 19.4 / 69.4
Gemini 2.5 Pro4.260.4064.5015.6 / 21.9 / 62.5
Grok 43.850.5388.852.6 / 7.7 / 89.7
GPT-5 high3.540.5002.3016.7 / 0.0 / 83.3
o4-mini-high3.370.5285.3911.1 / 13.9 / 75.0
o33.270.5505.5010.0 / 7.5 / 82.5
Gemini 2.5 Flash thinking1.570.6254.506.3 / 6.3 / 87.5

最强 LLM 与 SPC 差:

18.318.51=9.80 18.31-8.51=9.80

个百分点,最强 LLM 约达到 SPC 的:

8.5118.3146.5%. \frac{8.51}{18.31}\approx46.5\%.

8.3 reasoning 越多反而越差

GPT-5:

8.51>7.23>6.28>3.54 8.51\gt7.23\gt6.28\gt3.54

对应 minimal \to low \to medium \to high。Claude 非 thinking 与 thinking 为 6.79% 对 6.64%。

这是值得跟进的现象,但不能证明推理计算本身有害。可能原因包括上下文拥塞、工具状态管理、长输出格式失败、风险过度解释、API token 限制和单次采样噪声。

8.4 交互与位置误差

模型有效天数质心距离:总体 / 最大风险 (km)平均 tool calls探空:平均 / 最大
SPC40182 / 236N/AN/A
GPT-5 minimal39358 / 35418.320.12 / 3
GPT-5 low36417 / 46935.580.05 / 1
Claude 3.7 Sonnet40405 / 44121.804.83 / 8
Claude thinking39474 / 49321.574.97 / 11
GPT-5 medium31398 / 44741.270.05 / 1
GPT-4.136361 / 37723.074.47 / 13
Gemini 2.5 Pro32494 / 56118.382.23 / 5
Grok 439450 / 48724.234.00 / 8
GPT-5 high30449 / 52539.250.40 / 4
o4-mini-high36583 / 6236.550.12 / 1
o340478 / 56413.700.62 / 5
Gemini Flash thinking16601 / 59532.382.70 / 50

最强 LLM 的总体质心误差 358 km,接近 SPC 182 km 的两倍。多数模型远未使用 50 次探空配额,说明 benchmark 提供了垂直廓线能力,但模型没有有效利用。

公开 agent 代码在模型调用 submit_tornado_prediction 后,无论 GeoJSON 是否解析成功都会结束当天交互,不允许自动修复。因此无效天数同时测量预报能力、序列化能力和一次性提交策略。

8.5 高影响案例

论文展示 2025-03-14,当天最佳 LLM 为 9.45%,SPC 为 9.51%。作者明确选择三个 30% 日中人机分数最接近的一天,因此这是正面案例,不代表平均表现。

9. 统计严谨性

论文用 1,000 次非参数 bootstrap,报告 95.45% percentile interval。关键区间:

模型TornadoBench CI
SPC[10.23, 28.34]
GPT-5 minimal[4.80, 12.55]
GPT-5 low[4.44, 12.32]
Claude 3.7 Sonnet[3.51, 10.78]
Gemini Flash thinking[0.34, 14.45]

9.1 应检验配对差

正确的主要对象是同一天差值:

Δd=TBdSPCTBdmodel, \Delta_d = \mathrm{TB}_d^{\mathrm{SPC}} {}-\mathrm{TB}_d^{\mathrm{model}},

并以日期为单位配对重采样:

Δ=dWdΔddWd. \Delta = \frac{\sum_dW_d\Delta_d}{\sum_dW_d}.

分别计算 SPC 和模型区间不能替代配对差值检验,区间是否重叠也不是正式显著性检验。

9.2 CI 与主分数分母不一致

主汇总代码对所有模型使用共同分母:

d=140Wd=204. \sum_{d=1}^{40}W_d=204.

CI 脚本却只取有效日期,用:

dVmWd \sum_{d\in\mathcal V_m}W_d

作模型特定分母,所以 CI 与表中点估计不对应同一个 estimand。

9.3 bootstrap 固定了错误分母

bb 次抽样索引为 IbI_b,代码计算:

T^bcode=iIbWiTiiVmWi. \widehat T_b^{\mathrm{code}} = \frac{\sum_{i\in I_b}W_iT_i} {\sum_{i\in\mathcal V_m}W_i}.

标准 weighted-mean bootstrap 应为:

T^bcorrect=iIbWiTiiIbWi. \widehat T_b^{\mathrm{correct}} = \frac{\sum_{i\in I_b}W_iT_i} {\sum_{i\in I_b}W_i}.

由于权重从 1 到 30 高度不均匀,固定原分母会扭曲区间。默认 RNG 又没有 seed,表中末位也不完全可复现。

按日期 bootstrap 还不覆盖相同日期重复 API 采样、模型漂移、工具失败和格式随机性。需要每个模型-日期多次运行,再做两层 bootstrap。

10. Claims \to Evidence

Claim证据强度风险
真实、交互、无污染 benchmarkHRRR 档案、工具循环、公开数据中强固定测试集发布后不再天然无污染
当前 LLM 落后于 SPC18.31% 对 8.51%信息条件不一致,缺少正确配对检验
LLM 易过报与 hallucinateTH 与 59%--90% overforecast中强辅助指标只在有效输出日计算
LLM 定位能力差多数误差 400--600 km单一 40 天窗口;质心不能表达完整形状
reasoning 不一定有帮助GPT-5 单调下降,Claude thinking 略差中弱单次运行与格式失败混杂
TornadoBench 是风险加权 IoU类别 IoU + 天级最大风险权重风险加权只在天级,SdS_d 未定义
PPF + Poisson 构造真值公式 (1)--(3)弱到中代码多出 α=0.25\alpha=0.25
可复现代码、预测、数据公开商业 API、无快照、CI 与 GT 问题

11. 数学与实验风险

合理之处

  • 在投影坐标中做几何面积;
  • KDE + 40 km 邻域积分有明确业务解释;
  • Poisson 至少一次事件映射有理论来源;
  • 嵌套区转成互斥带可避免重复面积;
  • 高风险日加权避免大量 quiet days 支配总分。

主要风险

  1. Poisson 假设。 同一龙卷风可能对应多份报告,爆发事件也有空间相关性。Poisson 隐含:

    Var(K)=E[K]=λ, \operatorname{Var}(K)=\mathbb E[K]=\lambda,

    真实报告可能满足:

    Var(K)>E[K]. \operatorname{Var}(K)\gt\mathbb E[K].
  2. σ\sigmaα\alpha 缺少敏感性分析。 特别是新增 α=0.25\alpha=0.25 没有论文依据。应报告分数对 (σ,α)(\sigma,\alpha) 的稳定性。

  3. 类别等权平均。 小面积 30% 带与大面积 2% 带在当天平均中权重相同;类别数会改变分母,TornadoBench 不是 proper scoring rule。

  4. 天级权重阈值跳变。 地面真值只要跨过 15% 到 30% 阈值,整天权重翻倍。

  5. 缺少简单 baseline。 应加入总是 0%、气候态、前一周期持续性、经典参数规则和轻量监督模型。

  6. 缺少同信息人类。 应同时报告 Human_same_interfaceSPC_operational

  7. 缺少工具消融。 至少比较 maps-only、maps+soundings、oracle map selection 和允许格式修复。

  8. 缺少重复运行。 6.79% 对 6.64% 这类小差异目前没有解释力。

12. Code Verification

12.1 核验范围

2026-07-31 对公开 GitHub 主分支做只读核验,重点读取:

  • agent_interaction.py
  • openrouter_api.py
  • calculate_ppf.py
  • calculate_iou_centroid.py
  • calculate_cis.py
  • process_daily_scores.py
  • config.json
  • requirements.txt
  • 公开汇总 CSV

没有下载 244 GB 全量数据,也没有重新调用商业 API;这是 paper-to-code audit,不是性能复现。

12.2 论文—代码映射

论文描述实现状态
F12--F36 HRRR 地图按日期和时效读取 PNG一致
每天最多 50 次探空配置与运行时计数均为 50一致
嵌套风险转 disjoint bands从高到低减去更高风险并集一致
P=1exp(λ)P=1-\exp(-\lambda)P=1exp(0.25λ)P=1-\exp(-0.25\lambda)不一致
TornadoBench 用 40 天共同权重主汇总共同分母 204一致
CI 对应主分数CI 用有效日分母且固定 bootstrap 分母不一致
“显著”人机差异无配对差值检验证据不足
可复现模型调用未固定温度、seed、provider snapshot不完整

12.3 实现优点与风险

优点:面积投影正确;风险带处理清楚;保存日级 JSON / CSV;依赖版本固定;数据与预测公开。

风险:

  • requirements.txt 约 250 个包,大量与核心流程无关;
  • submit_tornado_prediction 失败后不允许修复;
  • CI 默认无 seed;
  • 缺少对应论文结果的 release tag;
  • 核心 PPF、几何和 bootstrap 函数缺少单元测试;
  • Hugging Face 数据卡缺少结构化 metadata,Dataset Viewer 不可用;
  • GitHub 首页未显示明确软件许可证。

最需要的性质测试:

N=1f(x,y)dxdy1, N=1 \quad\Longrightarrow\quad \int f(x,y)\,\mathrm dx\,\mathrm dy\approx1,
λ=0P=0, \lambda=0 \quad\Longrightarrow\quad P=0,
G=PIoU=1, G=P \quad\Longrightarrow\quad \operatorname{IoU}=1,
GP=IoU=0, G\cap P=\varnothing \quad\Longrightarrow\quad \operatorname{IoU}=0,
Ti=c iT^b=c b. T_i=c\ \forall i \quad\Longrightarrow\quad \widehat T_b=c\ \forall b.

最后一个测试可暴露 bootstrap 固定分母问题。

13. 与同期工作的定位

工作任务AgentCaster 优势AgentCaster 劣势
Zephyrus广义天气科学工具问答输出真实风险图,有 SPC 基线,评价几何化覆盖窄;工具消融和统计更弱
EWE极端天气事后诊断做前瞻预报,hallucination 有显式指标缺少诊断链与物理解释评价
RadarQA雷达预报质量分析直接生成预报,有客观几何 GT没有训练领域专用模型
GraphCast / Pangu / FourCastNet端到端网格预报模仿人类交互流程,输出可解释风险区不直接学习大气动力学,受 HRRR 上限约束

一句话定位:

AgentCaster 是“高影响、窄任务、真实业务输出”的天气 agent benchmark;比通用天气问答更贴近决策,但尚未把气象推理、工具策略、几何格式和信息条件拆开。

14. 优点与缺陷

Strengths

  1. 问题选择有品味,能真实暴露时空推理与可靠性问题;
  2. GeoJSON 是可执行、可审计的真实业务输出;
  3. 核心指标不依赖 LLM-as-judge;
  4. 数据链条来自 HRRR、BUFKIT 与 SPC;
  5. 有 SPC 业务参考线;
  6. 诚实报告无效输出、虚警、过报和位置偏差;
  7. 公开数据、代码与预测;
  8. reasoning 与性能负相关、探空使用不足等负结果值得研究。

Major Issues

  • 近致命: 地面真值公式与实现的 α\alpha 不一致;
  • 近致命: CI 实现不对应主估计量,无法支撑正式显著性措辞;
  • SPC 与 agent 信息条件不一致;
  • 缺少简单气象 baseline、同信息人类和工具消融;
  • 单次 API 运行、模型快照与采样参数不完整;
  • benchmark 为 composition-optimized 40 天窗口;
  • 辅助指标对无效预测日处理不一致;
  • “0% day” 仍可包含实际报告;
  • 固定 benchmark 公开后不再天然 contamination-free。

Reviewer Feedback

截至分析日,只确认到 arXiv v1 和公开代码 / 数据,没有查到可验证的 OpenReview official reviews、rebuttal、meta review 或正式会议决定,因此不虚构外部评审。

我的建议:

Recommendation: Major Revision

改变 decision 的最低修复集合:

  1. 公开生成论文表格的准确 commit;
  2. 澄清 α\alpha,重算真值和全部结果;
  3. 用日期配对 bootstrap 重算人机差;
  4. 每模型-日期至少重复 3 次;
  5. 加入同信息人类、规则系统、climatology 与 persistence;
  6. 报告 maps-only、soundings、格式修复和工具预算消融。

15. 创新、复现与前景

Innovation Score: 6/10

创新主要来自问题定义、benchmark 与数据工程,不是模型算法。将真实龙卷风 outlook 做成可交互 agent 评测是清晰贡献;ReAct 工具循环本身标准,TornadoBench 也建立在 KDE、PPF 和 IoU 上。

Reproducibility: 中等

正面因素:TeX、代码、预测、日级分数、数据、提示词和依赖版本公开。

负面因素:244 GB 数据、商业 API 漂移、无 provider snapshot / temperature / seed、无结果 release tag、地面真值公式不一致、CI 有问题、全量 API 成本约 500 美元。

最值得跟进的方向

  1. 将任务拆成:

    FieldSelectionMapInterpretationSoundingInterpretationSpatiotemporalSynthesisRiskCalibrationGeometryGeneration. \mathrm{FieldSelection} \to \mathrm{MapInterpretation} \to \mathrm{SoundingInterpretation} \to \mathrm{SpatiotemporalSynthesis} \to \mathrm{RiskCalibration} \to \mathrm{GeometryGeneration}.
  2. 除 IoU 外增加 spatial Brier score、fractions skill score、reliability diagram 与 neighborhood PR;

  3. 学习预算受限的工具策略:

    maxπE[TornadoBench ⁣βCtool], \max_{\pi} \mathbb E[ \mathrm{TornadoBench} {}\!-\beta C_{\mathrm{tool}}],

    其中 π\pi 是工具策略,CtoolC_{\mathrm{tool}} 是调用成本;

  4. 扩展到多年、不同季节、热带气旋龙卷风、高剪切低 CAPE 和 45% / 60% 极端日;

  5. 比较:

    Human+Agent ⁣HumanOnly \mathrm{Human+Agent} {}\!-\mathrm{HumanOnly}

    在准确率、时间、认知负担和校准上的差值。

16. 可复用思想

  • 高风险 agent benchmark 应评价多边形、程序等可执行对象;
  • 同时报告 end-to-end 分数与“有效输出条件下”的科学能力;
  • 地理面积必须在合适投影坐标中计算;
  • 嵌套概率区应先转成互斥带;
  • 高影响样本可加权,但必须报告权重集中度;
  • hallucination 与 miss 应分开;
  • 工具 availability 不等于工具 usage;
  • reasoning budget 需要受控消融;
  • 数据版本、代码 commit、模型 snapshot 与评价脚本必须绑定;
  • 同案例模型比较应使用配对重采样。

与现有多源数据的具体组合方案见 多尺度多模态气象智能体数据集蓝图

17. 科研品味评分

text
创新性 (Novelty):        ★★★☆☆ (3.5/5)
  - 真实龙卷风 outlook 作为 agent benchmark 很有辨识度
  - 主要是任务与系统创新,不是算法创新

严谨性 (Rigor):         ★★☆☆☆ (2.0/5)
  - 数据、日级结果和代码公开是优点
  - alpha 公式不一致与 CI 实现问题影响定量结论

影响力 (Impact):        ★★★☆☆ (3.5/5)
  - 高风险真实任务和公开数据可能成为重要测试床
  - 影响取决于能否修正版本并建立长期隐藏测试集

18. 最终判断

AgentCaster 在多模态天气 agent 评测方向上,通过HRRR 地图 / 探空交互与风险多边形几何验证构建了一个难度高、业务意义强、失败模式清楚的龙卷风 benchmark。相比通用天气问答,它的优势是输出真实、评价客观并有 SPC 参考;劣势是地面真值公式与代码不一致、统计显著性实现有缺陷、同条件人机与工具消融缺失。以顶级会议标准看,这是一个值得认真修改的 Major Revision 工作,而不是当前形式下可无保留接受的定量结论。

个人跟进决策:值得参考,但在作者澄清 α\alpha 和重算 CI 前,不直接复用当前真值与统计实现。

来源与核验记录

Static research notes built with VitePress and KaTeX.