Documentazione interattiva
Ogni applicazione Agent-Lab espone automaticamente la specifica OpenAPI 3: per
l'implementazione di riferimento su http://localhost:18000/docs (o
ovunque venga eseguita la tua app). Il catalogo seguente documenta i router integrati
nel framework; i tuoi extra_routers compaiono nello stesso schema.
Autenticazione
Quando auth.enabled è true (vedi il Riferimento della configurazione),
le route richiedono un bearer token di Keycloak. Il router /auth viene montato solo
quando l'autenticazione è abilitata:
TOKEN=$(curl -s -X POST https://<host>/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "…", "password": "…"}' | jq -r '.access_token')
curl -s https://<host>/agents/list -H "Authorization: Bearer $TOKEN" | jq| Metodo | Endpoint | Descrizione |
|---|---|---|
| POST | /auth/login |
Crea un nuovo bearer token |
| POST | /auth/renew |
Rinnova un bearer token esistente |
| POST | /auth/exchange |
Scambia un authorization code di Microsoft Entra ID (PKCE) con un token dell'app |
| GET | /auth/profile |
Restituisce il profilo dell'utente autenticato |
| PUT | /auth/profile |
Aggiorna il profilo dell'utente autenticato |
La configurazione di realm e client è descritta in Autenticazione con Keycloak.
Path non autenticati: /status/*, /docs, /openapi.json, /mcp, /static,
gli endpoint OAuth well-known e il mount della SPA; tutto il resto richiede un token
valido.
Endpoint
Agenti
Crea istanze di qualsiasi tipo di agente registrato; agent_type viene validato
dinamicamente rispetto al registro.
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /agents/list |
Elenca tutte le istanze di agenti |
| GET | /agents/types |
Elenca i tipi di agente registrati (il registro) |
| GET | /agents/{agent_id} |
Restituisce un'istanza di agente tramite ID |
| POST | /agents/create |
Crea una nuova istanza di agente |
| POST | /agents/update |
Aggiorna le informazioni di base di un agente |
| POST | /agents/update_setting |
Aggiorna una singola impostazione di un agente |
| POST | /agents/{agent_id}/reset_settings |
Ripristina le impostazioni predefinite di un agente |
| DELETE | /agents/delete/{agent_id} |
Elimina un'istanza di agente |
| WS | /agents/ws/task_updates/{agent_id} |
Stream WebSocket degli aggiornamenti di avanzamento dei task per le operazioni lunghe |
Messaggi
| Metodo | Endpoint | Descrizione |
|---|---|---|
| POST | /messages/post |
Invia un messaggio a un agente e ottiene la risposta |
| POST | /messages/list |
Elenca i messaggi di un agente |
| GET | /messages/{message_id} |
Restituisce i dettagli estesi di un messaggio (risposte, allegato) |
| DELETE | /messages/delete/{message_id} |
Elimina un messaggio |
Modelli linguistici
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /llms/list |
Elenca i modelli linguistici configurati |
| GET | /llms/{language_model_id} |
Restituisce un modello linguistico e le sue impostazioni |
| POST | /llms/create |
Crea un nuovo modello linguistico |
| POST | /llms/update |
Aggiorna la configurazione di un modello linguistico |
| POST | /llms/update_setting |
Aggiorna una singola impostazione di un modello linguistico |
| DELETE | /llms/delete/{language_model_id} |
Elimina un modello linguistico |
Integrazioni
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /integrations/list |
Elenca le integrazioni esterne (fornitori di AI) |
| GET | /integrations/{integration_id} |
Restituisce i dettagli di un'integrazione |
| POST | /integrations/create |
Crea un'integrazione (credenziali archiviate in Vault) |
| DELETE | /integrations/delete/{integration_id} |
Elimina un'integrazione |
Allegati
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /attachments/list |
Elenca gli allegati |
| GET | /attachments/download/{attachment_id} |
Scarica un allegato |
| POST | /attachments/upload |
Carica un file come allegato |
| POST | /attachments/embeddings |
Genera gli embedding per un allegato |
Stato e MCP
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /status/liveness |
Probe di liveness |
| GET | /status/readiness |
Probe di readiness |
| GET | /status/metrics |
Metriche Prometheus |
| * | /mcp |
Il server MCP (Streamable HTTP) |
| GET | /.well-known/oauth-protected-resource/mcp |
Metadati OAuth per i client MCP |
Esempi di richiesta
Creare un'istanza di agente: agent_name accetta [a-zA-Z0-9_-];
agent_type deve essere un tipo registrato; language_model_id è facoltativo:
curl -s -X POST http://localhost:18000/agents/create \
-H "Content-Type: application/json" \
-d '{
"agent_name": "support-agent-1",
"agent_type": "coordinator_planner_supervisor",
"language_model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}' | jqInviare un messaggio: message_role è uno tra human, assistant, tool;
attachment_id è facoltativo:
curl -s -X POST http://localhost:18000/messages/post \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_role": "human",
"message_content": "Summarize the attached report.",
"attachment_id": null
}' | jqAggiornare un'impostazione di un agente: setting_key accetta [a-zA-Z_-];
setting_value contiene fino a 16.000 caratteri (qui risiedono i template dei prompt
e i payload JSON; vedi il Modello di dominio delle entità):
curl -s -X POST http://localhost:18000/agents/update_setting \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"setting_key": "system_prompt",
"setting_value": "You are a concise research assistant…"
}' | jqConvenzioni
- Gli ID sono UUID; tutti gli endpoint di elenco accettano body JSON, non query string.
- Le impostazioni sono coppie chiave-valore persistite insieme all'agente o al modello: è così che la stessa implementazione esegue molte istanze configurate in modo diverso.
- Il registro è la fonte di verità per i valori validi di
agent_type: eseguiGET /agents/typesper vedere cosa ha individuato l'app in esecuzione (inclusi i tuoi package tramitescan_packages).