Home /Case study /Hospitality Agent Platform

Hospitality Agent Platform — messaggistica ospiti ad autonomia limitata

Un progetto interno: messaggistica ospiti omnicanale in cui il modello classifica e propone, e un policy gate deterministico — non il modello — autorizza tutto ciò che tocca denaro o una serratura.

13 × 8
intenti × lingue coperti dal classificatore
Fail-closed
policy gate — il modello propone, il codice autorizza
39 test
policy, RBAC, idempotenza — verdi in ~2,5s
Zero-PII
audit sink — nessun codice porta o dato di carta nei trace

La sfida

I gruppi alberghieri multi-struttura gestiscono la comunicazione con gli ospiti 24/7 su sei caselle e in più lingue, e il turno di notte risponde alle stesse domande ricorrenti in tutte — risposte lente, ricavi persi. I canali sono WhatsApp, SMS, webchat, Airbnb e Booking.com, e l'ostacolo all'automazione non è la comprensione linguistica ma l'autorità: nessun direttore lascia un modello generativo vicino a rimborsi, cancellazioni, link di pagamento o codici PIN delle porte, perché lì un'allucinazione è una responsabilità finanziaria e di sicurezza, non una frase sbagliata. Un sistema credibile deve essere rapido sul 70% facile e dimostrabilmente incapace di agire da solo sul resto.

La soluzione

Abbiamo costruito una piattaforma in cui l'autorità del modello è una scelta di progettazione esplicita. Ogni webhook dei provider viene normalizzato in un'unica event envelope canonica con event ID UUIDv5 deterministico, verificata con firma HMAC-SHA256 e una finestra di replay sullo scarto temporale. Un classificatore multilingue pluggable copre 13 intenti dell'ospitalità in otto lingue e produce metadati strutturati — intento, confidenza calibrata, codice di motivazione — così nessun componente a valle deve mai interpretare prosa libera del modello. Un policy gate fail-closed decide poi: le letture (FAQ, disponibilità camere) sono approvate in automatico; le scritture (blocchi di inventario, rimborsi, cancellazioni, codici porta) finiscono in una coda umana. Il checkpointing LangGraph mantiene durevole la storia della conversazione tra i riavvii; un outbox transazionale pubblica at-least-once con backoff esponenziale e classificazione dead-letter, e il worker di esecuzione degli strumenti è protetto da chiavi di idempotenza SHA-256, così un retry di rete non può addebitare o prenotare due volte. Lo stato vive in sette tabelle PostgreSQL dietro un audit sink zero-PII — codici porta e dati delle carte non finiscono mai in trace o log. La console operativa aggiunge RBAC (operator / manager / admin, con i rimborsi riservati ai manager) e un instradamento di emergency takeover che estrae del tutto dall'automazione gli eventi di fumo, incendio, gas e sicurezza.

L'impatto

Le domande a basso rischio ricevono risposta in pochi secondi senza intervento umano; ogni azione ad alto rischio si ferma in una coda di approvazione con l'intera catena di correlazione e causalità allegata, così l'operatore approva una decisione invece di ricostruirla. Poiché l'autorità sta nel codice di policy e non in un prompt, il comportamento di sicurezza è testabile: 39 test automatici su policy gate, confini RBAC, idempotenza e percorsi di retry dell'outbox girano in circa 2,5 secondi. È un progetto interno che gira su un adattatore PMS sandbox — un'implementazione di riferimento e una demo percorribile end-to-end, non un sistema cliente in produzione.

Tecnologie utilizzate

PythonLangGraphPostgreSQLOutbox transazionaleWebhook HMAC-SHA256pytest

Parliamone

Hai qualcosa da costruire?

Raccontaci a cosa stai lavorando. Entro 24 ore ti risponderà un ingegnere — con domande e una prima bozza di piano, non con un pitch commerciale.