Saltar al contenido

Buscar en la documentación

Escribe para buscar en todas las páginas de la documentación.

Menú de documentación
ReferenciaPúblico · Consumidores de la API

Referencia de la API REST

El catálogo completo de endpoints, con ejemplos de peticiones

Esta página se ha traducido automáticamente del inglés. Si hay alguna diferencia, prevalece el original.Leer el original en inglés

Documentación interactiva

Toda 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 vale 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 dinámicamente contra el registro.

Método Endpoint Descripción
GET /agents/list Lista todas las instancias de agentes
GET /agents/types Lista los tipos de agente registrados (el registro)
GET /agents/{agent_id} Obtiene una instancia de agente por su 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 por defecto
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 en 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, 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 (credenciales almacenadas en Vault)
DELETE /integrations/delete/{integration_id} Elimina una integración

Adjuntos

Método Endpoint Descripción
GET /attachments/list Lista los adjuntos
GET /attachments/download/{attachment_id} Descarga un adjunto
POST /attachments/upload Sube un archivo adjunto
POST /attachments/embeddings Genera embeddings para un adjunto

Estado y MCP

Método Endpoint Descripción
GET /status/liveness Sonda de liveness
GET /status/readiness Sonda de readiness
GET /status/metrics Métricas de Prometheus
* /mcp El servidor MCP (Streamable HTTP)
GET /.well-known/oauth-protected-resource/mcp Metadatos OAuth para clientes MCP

Ejemplos de peticiones

Crear una instancia de agente: agent_name admite [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"
      }' | jq

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

Actualizar un ajuste de agente: setting_key admite [a-zA-Z_-]; setting_value admite hasta 16.000 caracteres (aquí residen las plantillas de prompts y las cargas 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…"
      }' | jq

Convenciones

  • 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 distinta.
  • El registro es la fuente de verdad de los valores válidos de agent_type: ejecuta GET /agents/types para ver qué ha descubierto la aplicación en ejecución (incluidos tus propios paquetes mediante scan_packages).