IMPERIAL AI HACKATHON · 2026
So we built agents that catch them as they happen, check each other's work, and write the report to the regulator. A person signs off.
Live run, 14 Nov 2026
↓§0 · Demo
§1 · Observations
Nine water companies publish live overflow status. We pull all of them and keep the 157 that started spilling in the last 48 hours.
For each spill we look at the three nearest Environment Agency rain gauges within 10 km. Blue ones had rain nearby, so they're probably allowed.
73 spills started when every nearby gauge had less than 0.25 mm of rain on each of the two days before. If even one gauge was wet, we let the spill go, so we're erring on the side of caution.
We'll take one of these dry-day spills and follow it all the way through the agents.
§2 · Methods
A Databricks job runs on a schedule and hands anything suspicious to a team of five agents. Every step is traced in MLflow, so you can see exactly what each one did.
Out [2]:
The skeptic runs on a different model on purpose, so the agents can't all just agree with each other. Anything the evidence agent claims comes with a link to its source. And every verdict gets saved, so the sites that keep doing it start to show up.
§3 · Results
Spills that started in the 48 hours before the run, with no real rain at any gauge nearby.
Out [3]:
§4 · Case study
Out [4]:
Wettest 24 hours of the two days before the spill, per gauge. The dashed line is the 0.25 mm dry-day threshold.
Fig. 4 — Rainfall at the nearest EA gauges
The agent outputs for this case will appear here from a real traced run. We don't show made-up agent output.
§5 · Limitations
§6 · Materials
Databricks (Delta Lake, Unity Catalog, Jobs, MLflow Tracing, model serving) · Anthropic Claude · Linkup Search API · water company ArcGIS feeds · EA flood-monitoring API · deck.gl
Built at the Imperial AI Hackathon, 14 to 15 November 2026 · Source on GitHub · Overflow data CC BY 4.0 from each water company via Stream Water Data · Rainfall © Environment Agency, Open Government Licence