Le applicazioni Agent-Lab condividono un unico modello di dominio, definito in
agent_lab/domain/. Lo stesso modello alimenta gli schemi della REST API, il livello
di persistenza e il runtime degli agenti: imparalo una volta e saprai cosa legge e
scrive ogni endpoint.

Entità
| Entità | Cosa modella |
|---|---|
| Agent | Un'istanza di agente LLM: agent_name, agent_type (validato rispetto al registro), flag di attivazione e timestamp. Una sola implementazione, molte istanze configurate. |
| AgentSettings | Configurazione chiave-valore di un'istanza di agente: prompt (template Jinja2), nomi delle collection, temperatura, valori personalizzati. Fino a 16.000 caratteri per valore: è qui che si regola il comportamento dell'agente tramite POST /agents/update_setting. |
| LanguageModel | Un modello linguistico disponibile per gli agenti, con la connessione al relativo fornitore. |
| LanguageModelSettings | Parametri per singolo modello (temperatura, numero massimo di token, …), gestiti tramite gli endpoint /llms. |
| Integration | Un'integrazione esterna (ad es. un fornitore di AI) e la sua configurazione. I segreti sono archiviati in Vault, mai nel database. |
| Message | Un turno di conversazione: ruolo (human / assistant / tool), contenuto, response_data e collegamenti al thread (replies_to). Persistito insieme alla memoria dell'agente tramite i checkpoint LangGraph. |
| Attachment | Un file allegato a un messaggio: contenuto grezzo, contenuto elaborato e il riferimento alla collection di embedding usata per il retrieval. |
Un esempio di impostazioni di agente persistite (prompt e valori personalizzati per l'agente dei memo vocali), tratto da notebooks/08_test_agent_type-multiagent-voice-assistant.ipynb:

Dove risiedono i dati
Agent-Lab utilizza tre database PostgreSQL (più Redis), predisposti dalla
guida al deployment e configurati tramite db.url, db.vectors e
db.checkpoints (vedi il Riferimento della configurazione):
| Archivio | Contenuto |
|---|---|
db.url |
Dati relazionali: agenti, impostazioni, modelli, integrazioni, messaggi, allegati |
db.vectors |
Embedding pgvector: ricerca vettoriale e retrieval (/attachments/embeddings) |
db.checkpoints |
Dati dei checkpoint LangGraph: la memoria degli agenti tra un'interazione e l'altra |
Redis (broker.url) |
Broker pub/sub per gli aggiornamenti di stato sulle operazioni di lunga durata; anche archivio dei client OAuth di MCP |
Sicurezza e gestione dei segreti
I segreti (credenziali delle integrazioni, API key dei modelli, lo stesso payload di configurazione) sono gestiti con Vault. Il database archivia i riferimenti; i valori sensibili vengono recuperati da Vault all'avvio e su richiesta. Consulta Segreti con Vault e il Riferimento della configurazione.