Ir al contenido

Buscar en la documentación

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

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

Referencia de la API REST

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

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

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"
      }' | 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 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…"
      }' | 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 diferente.
  • El registro es la fuente de verdad de los valores válidos de agent_type: ejecuta GET /agents/types para ver lo que descubrió la aplicación en ejecución (incluidos tus propios paquetes mediante scan_packages).