Documentación interactiva
Cada aplicación Agent-Lab sirve OpenAPI 3 automáticamente: la implementación
de referencia en http://localhost:18000/docs (o tu
propia aplicación, dondequiera que se ejecute). El catálogo siguiente documenta los routers
integrados del framework; tus extra_routers aparecen en el mismo esquema.
Autenticación
Cuando auth.enabled es true (consulta la Referencia de configuración),
las rutas requieren un token bearer de Keycloak. El router /auth solo se monta cuando la autenticación
está habilitada:
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| Método | Endpoint | Descripción |
|---|---|---|
| POST | /auth/login |
Crea un nuevo token bearer |
| POST | /auth/renew |
Renueva un token bearer existente |
| POST | /auth/exchange |
Intercambia un código de autorización de Microsoft Entra ID (PKCE) por un token de la aplicación |
| GET | /auth/profile |
Obtiene el perfil del usuario autenticado |
| PUT | /auth/profile |
Actualiza el perfil del usuario autenticado |
La configuración del realm y del cliente se explica en Autenticación con Keycloak.
Rutas sin autenticación: /status/*, /docs, /openapi.json, /mcp, /static,
los endpoints well-known de OAuth y el montaje de la SPA; todo lo demás requiere un
token válido.
Endpoints
Agentes
Crea instancias de cualquier tipo de agente registrado; agent_type se valida de forma dinámica
contra el registro.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /agents/list |
Lista todas las instancias de agentes |
| GET | /agents/types |
Lista los tipos de agentes registrados (el registro) |
| GET | /agents/{agent_id} |
Obtiene una instancia de agente por ID |
| POST | /agents/create |
Crea una nueva instancia de agente |
| POST | /agents/update |
Actualiza la información básica de un agente |
| POST | /agents/update_setting |
Actualiza un único ajuste de un agente |
| POST | /agents/{agent_id}/reset_settings |
Restablece los ajustes de un agente a sus valores predeterminados |
| DELETE | /agents/delete/{agent_id} |
Elimina una instancia de agente |
| WS | /agents/ws/task_updates/{agent_id} |
Flujo WebSocket de actualizaciones del progreso de tareas para operaciones largas |
Mensajes
| Método | Endpoint | Descripción |
|---|---|---|
| POST | /messages/post |
Envía un mensaje a un agente y obtiene la respuesta |
| POST | /messages/list |
Lista los mensajes de un agente |
| GET | /messages/{message_id} |
Obtiene los detalles ampliados de un mensaje (respuestas, archivo adjunto) |
| DELETE | /messages/delete/{message_id} |
Elimina un mensaje |
Modelos de lenguaje
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /llms/list |
Lista los modelos de lenguaje configurados |
| GET | /llms/{language_model_id} |
Obtiene un modelo de lenguaje y sus ajustes |
| POST | /llms/create |
Crea un nuevo modelo de lenguaje |
| POST | /llms/update |
Actualiza la configuración de un modelo de lenguaje |
| POST | /llms/update_setting |
Actualiza un único ajuste de un modelo de lenguaje |
| DELETE | /llms/delete/{language_model_id} |
Elimina un modelo de lenguaje |
Integraciones
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /integrations/list |
Lista las integraciones externas (proveedores de IA) |
| GET | /integrations/{integration_id} |
Obtiene los detalles de una integración |
| POST | /integrations/create |
Crea una integración (las credenciales se almacenan en Vault) |
| DELETE | /integrations/delete/{integration_id} |
Elimina una integración |
Archivos adjuntos
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /attachments/list |
Lista los archivos adjuntos |
| GET | /attachments/download/{attachment_id} |
Descarga un archivo adjunto |
| POST | /attachments/upload |
Sube un archivo adjunto |
| POST | /attachments/embeddings |
Genera embeddings para un archivo adjunto |
Estado y MCP
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /status/liveness |
Sonda de actividad (liveness) |
| GET | /status/readiness |
Sonda de disponibilidad (readiness) |
| GET | /status/metrics |
Métricas de Prometheus |
| * | /mcp |
El servidor MCP (Streamable HTTP) |
| GET | /.well-known/oauth-protected-resource/mcp |
Metadatos de OAuth para clientes MCP |
Ejemplos de solicitudes
Crear una instancia de agente: agent_name acepta [a-zA-Z0-9_-];
agent_type debe ser un tipo registrado; language_model_id es opcional:
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"
}' | jqEnviar un mensaje: message_role es uno de human, assistant, tool;
attachment_id es opcional:
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
}' | jqActualizar un ajuste de un agente: setting_key acepta [a-zA-Z_-];
setting_value admite hasta 16,000 caracteres (aquí se guardan las plantillas de prompts y los contenidos
JSON; consulta el Modelo de dominio de entidades):
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…"
}' | jqConvenciones
- Los ID son UUID; todos los endpoints de listado aceptan cuerpos JSON, no query strings.
- Los ajustes son pares clave-valor que se persisten con el agente o el modelo; así es como la misma implementación ejecuta muchas instancias configuradas de forma diferente.
- El registro es la fuente de verdad de los valores válidos de
agent_type: ejecutaGET /agents/typespara ver lo que descubrió la aplicación en ejecución (incluidos tus propios paquetes mediantescan_packages).