HADR means Humanitarian Assistance and Disaster Response. In this workshop, you will build an agent that dispatches limited fire trucks through a (simulated!) disaster. If HADR usually means High Availability and Disaster Recovery in your work, this is the other HADR.
First learn the problem as an operator. On the next page, you will connect Claude to the simulator and play two episodes before you inspect or automate the agent code.
Your mission
You are building an agent that dispatches fire trucks in a disaster scenario. It receives human reports that can be late, incomplete, duplicated, inaccurate, or false. It must form a persistent picture of suspected incidents, decide what to trust, and dispatch trucks before buildings collapse and people are hurt.

Think like the operator
Before you look at the code, ask:
- What information is public?
- What does the agent only believe?
- What remains hidden?
- Which dispatch mistake causes the most harm?
- What evidence would make you change a decision?
Keep these questions open while you play. Do not design from the diagram alone.
System shape
You will build this pipeline:
flowchart LR
subgraph Intake["Intake (model extraction)"]
i1["'smoke near the<br/>school on 5th'"]
i2["'building fire on Elm St,<br/>people inside'"]
i3["'fire is out at<br/>the school now'"]
end
r{"Reconciliation (Code)<br/>match to known incidents"}
subgraph Incidents["Incidents (Memory)"]
n1["1: School, 5th Ave"]
n2["2: Elm St"]
end
subgraph Dispatch["Dispatch loop (Agent)"]
plan["plan"] --> act["act"]
act --> plan
end
subgraph Trucks["Fire trucks"]
t1["truck A"]
t2["truck B"]
end
i1 --> r
i2 --> r
i3 --> r
r -- "update" --> n1
r -- "new" --> n2
n1 --> plan
n2 --> plan
act <--> t1
act <--> t2
| Stage | What it does | Kind |
|---|---|---|
| Intake | Normalize each contact into a typed report | Model call |
| Reconciliation | Decide whether a report opens a new incident or updates an existing one | Code |
| Incidents | Hold the persistent picture of suspected incidents | Memory |
| Dispatch | Plan against the incidents and act on the trucks | Agent |
Measures
The game reports casualties, buildings lost, and runtime tokens separately. There is no single composite score: a cheap agent that misses people is not good, and an accurate agent that spends without bound is not finished.
This is a difficult simulation. It is not always possible to solve every map without losses.
Use the game guide for the full rules and the API guide for the typed control surface. You do not need to read either guide end to end before you start.