Vai al contenuto

Cerca nella documentazione

Digita per cercare in tutte le pagine della documentazione.

Menu della documentazione
RiferimentoPubblico · Utilizzatori dell'API

Riferimento della REST API

Il catalogo completo degli endpoint, con esempi di richiesta

Questa pagina è stata tradotta automaticamente dall'inglese. In caso di differenze, fa fede l'originale.Leggi l'originale in inglese

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"
      }' | jq

Inviare 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
      }' | jq

Aggiornare 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…"
      }' | jq

Convenzioni

  • 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: esegui GET /agents/types per vedere cosa ha individuato l'app in esecuzione (inclusi i tuoi package tramite scan_packages).