ECG-Scroll: A Long-Horizon, Streaming Benchmark and Agent Environment for Interpretation of Ambulatory Electrocardiograms
Organizations: Zhejiang University · Shanghai Innovation Institute
Abstract
Multimodal large language models (MLLMs) can now interpret a standard ten-second, twelve-lead electrocardiogram (ECG) with clinically grounded, reward-verified reasoning. Real cardiac monitoring is different. Ambulatory (Holter) and telemetry recordings span hours to days and are read as they stream in, and their clinically decisive findings are paroxysmal, brief episodes buried in an otherwise unremarkable trace. Such a recording cannot be held in one context at diagnostic resolution, and its future has not yet happened, so a reader must work online, deciding what to measure now, committing evidence to memory as it passes, and reporting events as they occur. We recast long-duration ECG interpretation as a long-horizon, online (streaming, causal) sequential decision process and introduce ECG-Scroll. As a benchmark, long ambulatory recordings are streamed to an agent chunk by chunk, and it must localize, quantify, and promptly flag paroxysmal events without access to future signal; because the underlying signal is retained, every answer is checkable against objective ground truth, giving rule-based rather than judge-based rewards, and the streaming formulation adds a metric batch evaluation cannot express, the detection latency between an event's onset and the moment the agent records it. As an agent environment, it is a fixed, gym-style interaction layer that exercises three competencies single-glance ECG models never touch: Memory, Tool use through signal-grounded measurement rather than reading pixels, and Planning of what to measure now and when to commit. We release 390 whole-recording instances spanning 2,536 hours of two-lead ambulatory ECG and evaluate a signal-threshold rule agent alongside off-the-shelf LLM agents online, characterizing how they use memory, tools, and planning and where the benchmark's head-room lies.
Figures & tables
| Task | Source | Answer | Verifier / Metric ( ) | Mean dur. | |
|---|---|---|---|---|---|
| Episode detection | afdb, ltafdb | interval set | temporal (IoU ) | 107 | 20.5 h |
| AF burden | afdb, ltafdb | scalar | rel. error score | 107 | 20.5 h |
| Change detection | afdb | change-point | hit@ s ( ) | 23 | 10.2 h |
| Ischemia detection | edb | interval set | temporal (IoU ) | 85 | 2.0 h |
| PVC burden | mitdb, ltdb | scalar | rel. error score | 55 | 3.1 h |
| Rare-event search | mitdb, ltdb | interval | hit@ s (midpoint tol.) | 13 | 0.5 h |
| Action / tool | Target | Output / effect |
| Control actions (drive the causal stream) | ||
| skim(duration) | cover / plan | advance the cursor by duration s; return the newly-elapsed span’s lossy profile (peak feature + coarse sub-bins) |
| measure(tool,t0,t1) | localize | run one tool the model chooses over an elapsed sub-window without advancing time; picks among the signal (and, under +dx , diagnostic) tools below |
| write(entry) | commit | append a cursor-timestamped finding to memory; the answer is assembled from these when the stream ends |
| Signal tools (numbers only, no label; clinician’s reading order) | ||
| get_rate_rhythm | rate, AF, pauses | hr_bpm, rr_mean/sd_ms, rr_irregularity (CV), rr_min/max ( per-beat: rr_intervals_ms) |
| Episode | AF burden | Change | Ischemia | PVC burden | Rare-event | ||
|---|---|---|---|---|---|---|---|
| Agent | Tier | ( ) | (score ) | (hit@ 10s ) | ( ) | (score ) | (hit@ 15s ) |
| Rule Agent | –dx | 0.02 | 0.26 | 0.17 | 0.07 | 0.34 | 0.00 |
| +dx | 0.52 | 0.83 | 0.39 | 0.80 | 0.25 | 0.85 | |
| Qwen3-8B | –dx | 0.03 | 0.17 | 0.13 | 0.00 | 0.47 | 0.00 |
| +dx | 0.03 | 0.24 | 0.17 | 0.00 | 0.58 | 0.46 | |
| Qwen3-30B | –dx | 0.03 | 0.17 | 0.17 | 0.00 | 0.47 | 0.00 |
| Episode | AF burden | Change | Ischemia | PVC burden | Rare-event | ||
|---|---|---|---|---|---|---|---|
| Agent | Tier | ( ) | (score ) | (hit@ 10s ) | ( ) | (score ) | (hit@ 15s ) |
| Rule Agent | –dx | 0.02 | 0.26 | 0.17 | 0.07 | 0.34 | 0.00 |
| +dx | 0.52 | 0.83 | 0.39 | 0.80 | 0.25 | 0.85 | |
| Qwen3-8B | –dx | 0.02 | 0.30 | 0.09 | 0.04 | 0.23 | 0.00 |
| +dx | 0.50 | 0.96 | 0.35 | 0.80 | 0.45 | 0.77 | |
| Qwen3-30B | –dx | 0.01 | 0.31 | 0.04 | 0.05 | 0.41 | 0.00 |
Appendix figures & tables1 asset
Supplementary material from the paper’s appendix.