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.

The HADR field display mid-episode: a fire truck en route to a burning building while human calls stream into the reports feed

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.