Fig. 05 · Autonomous resort operations

ARIA

An always-on multi-agent system for a resort that watches operations, catches problems like late room service or an at-risk guest, and acts through WhatsApp, kitchen alerts and offers, with every action streamed to staff.

Finalist · 40 teams
Role
AI core owner
Team
3 engineers
When
Mar – Apr 2026
Stack
Laravel 13, Inertia + React, Laravel AI SDK, OpenAI, Twilio, Laravel Reverb, Redis, three.js

01The problem

Resort operations run on staff noticing problems. By the time someone sees that a room-service order went cold or a guest went quiet, the guest is already unhappy. Built for a Kuriftu Resort & Spa challenge.

02How it works

5 steps
  1. 01 · Rules decide

    Sentinel detects

    Plain SQL detectors, no LLM: room service undelivered after 35 minutes, a room stuck in cleaning, a guest gone silent, birthdays today.

  2. 02 · Rules decide

    Vera scores churn

    A deterministic 0–100 score built from open incidents, silence and recent bookings. Crossing 70 flags the guest.

  3. 03 · System moves data

    Context is built

    The event, a property snapshot, and the guest's recent incidents and actions, with the exact guest ID pinned in a tool contract.

  4. 04 · AI proposes

    The orchestrator acts

    Up to 15 tool steps across 10 tools: WhatsApp messages, kitchen pings, discounts, bookings, pricing, incident logs and escalation.

  5. 05 · Person approves

    Staff watch and step in

    Every tool call is logged and broadcast live to the ops dashboard, and the agent can hand a situation to a manager.

  • AI proposes
  • Rules decide
  • Person approves
  • System moves data

03Hard problems

3 of them
01

Multi-turn chat breaking on reasoning models

The SDK's conversation store dropped reasoning IDs, so the second turn failed with HTTP 400. I wrote a repairing store that restores them and safely collapses old rows.

02

Outages in background agents

A provider failover chain skips unconfigured providers, and when every provider is down the job is released with a random 45–180 s backoff instead of failing. Stress-tested.

03

The model inventing IDs

It passed guest IDs like “unknown”. The context now carries the exact UUID in a tool contract, tools validate their inputs, and a sanitizer keeps IDs and provider errors out of guest-facing text.

04By the numbers

teams; ARIA was a finalist
40
specialist agents, including an English/Amharic voice agent
6
tools the orchestrator can act with
10
automated tests
92

05What I'd do differently

Limits like a maximum price change or discount live in the prompt, not in the tools. I'd enforce them in code with a pending-approval state above a threshold, and give each event type its own small tool set, so a room-service delay can never touch pricing.
Next · Fig. 06AdmitMe-AIA council of admissions agents