Project Info

CrisisRoom

Devpost

This project did not submit a demo video on Devpost.

Inspiration

I served in the Navy. One of my roles was damage control: keeping the ship alive when fire and flooding hit at the same time. Let me tell you what that actually feels like. You are in a steel passageway. The lights are strobing. Smoke is filling the space faster than you can breathe through it, water is rising past your boots, and a general alarm is screaming so loud you cannot hear the person next to you. Somewhere on that ship is a sailor's son, a sister, somebody's whole world, and the only thing standing between them and the sea is whether the people on the bridge can understand what is happening fast enough to act. And here is the brutal truth I lived: the enemy was never a lack of information. It was the flood of it. Bilge alarms, thermal sensors, smoke detectors, and frantic radio reports all screaming at once, while we tracked the fight for a billion-dollar warship and the lives aboard it on a grease pencil and a plexiglass board. One shared board. One fragile source of truth. Every update erased the last one. On a calm day with a clean log, roughly 1% of hand-entered data is wrong. Now add smoke, heat, and adrenaline. The studies are blunt about where this leads: $$P(\text{accident} \mid \text{human error}) \approx 0.75\text{ to }0.96 \quad \text{(Allianz AGCS Safety & Shipping Review)}$$ Three out of four marine disasters trace back not to broken steel, but to a human being who was handed too much noise and too little time. I left the Navy. I never left that feeling. CrisisRoom is the second brain I wish we'd had on the deck.

What it does

CrisisRoom turns crisis chaos into one clear, verified plan by running a live incident through a swarm of specialist AI agents that think together, the way a trained damage-control team does: Hazard Intelligence: ranks flood, fire, and smoke severity and localizes each threat to a specific compartment. Damage Control: assesses watertight integrity, bilge pumping capacity, fire suppression readiness, and structural risk, then recommends containment actions. Response Coordination: turns confirmed hazards and containment status into prioritized, sequenced response tasks with owner roles. Orchestrator: threads each agent's output into the next and synthesizes a single bridge brief a human can act on in seconds. Integrations Fetch AI: Four collaborating uAgents (Orchestrator, Hazard, Response, Advisory) run in a Bureau with real agent-to-agent messaging, powered by ASI:One and registered on Agentverse. The agent fleet + ASI:One LLM drive the entire crisis pipeline. Redis: Hits all three pillars: Redis for agent long-term memory, vector search (RediSearch KNN), and context retrieval (Streams + hybrid search). Redis is the agents' brain, not a cache. Arize: OpenInference tracing on every LLM call plus an LLM-as-judge scoring safety_policy/groundedness that surfaced and let us fix unsafe outputs. Observability that measurably improved the app. (https://app.arize.com/organizations/QWNjb3VudE9yZ2FuaXphdGlvbjo0NDc0NTptcFpJ/spaces/U3BhY2U6NDcyOTg6MVJjRg==/projects/TW9kZWw6ODQ3Mjg4MDQwMzo3bU1F?traceViewId=__arize_default&timeZoneA=America%2FLos_Angeles&selectedTab=llmTracing&startA=1781420400000&endA=1782039599999&envA=tracing&timeRangeKeyA=custom&modelType=generative_llm) Deepgram: Nova-3 STT + Aura-2 TTS as a bidirectional, hands-free crisis voice dispatcher. Voice is the core hands-free command interface, not tacked on. Orkes: AgentSpan durably generates the brief's top_risks and recommended_actions via two chained agent executions. Durable risk/action planning inside the live pipeline. The Token Company: Built CRISP, a reversible, query-aware context-compression framework plus an agentic compressor, with research docs and benchmarks. Novel research cutting LLM context cost. (https://github.com/uc-berkeley-ai-hackathon-2026/crisis-room/blob/main/docs/crisp-technical-deck.html) Sentry: Live sentry_sdk with PII scrubbing and incident-tagged error capture across the FastAPI backend and Next.js frontend. Error monitoring from day one. (https://carnegie-mellon-university-d3.sentry.io/issues/?project=4511600565420032) Anthropic: Built the whole project with Claude Code, tackling emergency response β€” a high-stakes "shift what's possible for people" domain. Claude Code as one of the primary development tool. Midjourney: 8 cinematic deck backgrounds plus the in-app vessel hazard schematic (HazardMap.tsx, labeled "Midjourney render"). Generated imagery for both product UI and pitch. (https://github.com/uc-berkeley-ai-hackathon-2026/crisis-room/blob/main/apps/web/public/vessel-schematic.png) Cognition (Devin): Used Devin as an AI coding agent during the build, especially via the cloud. AI-assisted coding combined with Claude Code.

How we built it

Frontend and backend: a Next.js dashboard and a typed FastAPI service over REST and WebSocket. It runs mock-first with zero API keys, then lights up as each integration connects. A judge can clone it and watch it work in one command. Agents: four Fetch.ai uAgents in a single Bureau, discoverable on Agentverse and collaborating in-process, with ASI:One as the reasoning LLM behind every one of them. Memory: Redis as the primary store, not a cache, in three tiers: Redis Iris for long-term semantic memory, RedisVL vector search (HNSW, cosine) for the live session, and a lexical fallback. Streams carry real-time coordination events. Durable planning: Orkes AgentSpan runs risk_assessor then action_planner as chained, durable executions, so the highest-stakes part of the brief is orchestrated and observable. Observability and safety: every LLM call is traced to Arize, and an LLM-as-judge scores each output on safety_policy and groundedness, writing the verdict back onto the exact span. CRISP: a reversible, query-aware compression framework we built and benchmarked to shrink crisis context while protecting the numbers and entities that decide whether someone lives.

Challenges we ran into

Cross-process uAgent messaging needs the Fetch.ai Almanac network, which was unreachable for us. We solved it with an in-process Bureau that still registers on Agentverse for discoverability. Early prompts occasionally implied an alert "had been sent." In a real crisis, that single false sentence kills people. Our Arize safety evaluator caught it, and we drove the failure rate down until it was gone. Failed durable executions leaked raw error text into the brief. We fixed the parser to fail safe and fall back cleanly, because a wrong answer dressed as a confident one is the most dangerous output a crisis tool can produce. We made Redis, ASI:One, RediSearch, and voice all optional with deterministic fallbacks, because the moment you need this system most is the moment the network is on fire too.

Accomplishments we're proud of

A genuinely collaborating agent swarm, not four disconnected prompts wearing a trench coat. Redis used as an AI-native brain, with Streams and vector search, holding sub-20ms latency at scale. Safety we can actually measure, through an LLM-as-judge wired onto live traces, instead of hoping the model behaved. A system that runs anywhere, with zero keys, in one command, so the people who need it are never blocked by a missing credential. Most of all: we took the worst day of my old job and built something so the next damage controlman has a fighting chance the rest of us did not.

What we learned

Observability is a safety feature, not an afterthought. If you cannot measure whether your AI is safe, it is not. Redis is an AI-native database, not just a cache. Human-in-the-loop is not a limitation. It is the product. Trust is the feature people are actually buying. Build the fallbacks first. In a real crisis, the happy path is the first thing to burn.

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • CSSIn code
  • FastAPIIn code
  • HTMLIn code
  • JavaScriptIn code
  • Next.jsIn code
  • OpenAIIn code
  • PythonIn code
  • ReactIn code
  • RedisIn code
  • Tailwind CSSIn code
  • TypeScriptIn code
  • AnthropicClaimed
  • DockerClaimed

11 of 13 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.

AI coding agents

  • Claude CodeCommits
  • CursorCommits

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

1.0 MB

Source files

138

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars