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 · Operadores y desarrolladores

Referencia de configuración

Todas las claves de configuración y variables de entorno, y cómo se elige la fuente activa

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

Cómo se carga la configuración

La configuración es un diccionario simple que carga un ConfigSource (consulta agent_lab/core/config.py) y que se vincula al contenedor de DI. create_app() selecciona una fuente mediante default_config_source(), exactamente en este orden; gana la primera coincidencia:

# Condición (variable de entorno definida) Fuente activa
1 VAULT_K8S_ROLE KubernetesVaultConfigSource: Vault mediante el token proyectado de la ServiceAccount del pod
2 DOCKER YamlConfigSource("config-docker.yml")
3 TESTING YamlConfigSource("config-test.yml")
4 DEVELOPING YamlConfigSource("config-dev.yml")
5 (ninguna de las anteriores) VaultConfigSource: lee VAULT_URL / VAULT_TOKEN

Puedes sustituir la selección en cada aplicación:

app = create_app(config_source=YamlConfigSource("config.yml"))  # explicit

Claves de configuración

El diccionario que debe devolver la fuente activa. Los valores por defecto que se muestran proceden de config-dev.yml (desarrollo); la aplicación de referencia incluye config-dev.yml, config-test.yml y config-docker.yml con exactamente esta estructura.

Clave Finalidad Valor de ejemplo
api_base_url URL base pública de esta API (se usa para los enlaces de las respuestas) http://localhost:8000
cdp_url Endpoint de Chrome headless (CDP) para agentes web (WebAgentBase) http://localhost:9222
auth.enabled Monta el middleware de autenticación y las rutas /auth cuando vale true false
auth.url URL base de Keycloak https://auth.example.com
auth.realm Nombre del realm de Keycloak agent-lab
auth.client_id ID de cliente OIDC agent-lab-api
auth.client_secret Secreto de cliente OIDC …
broker.url URL de Redis para las actualizaciones de estado pub/sub de operaciones largas redis://localhost:6379/0
db.url PostgreSQL: datos relacionales postgresql://postgres:postgres@localhost:5432/agent_lab
db.vectors PostgreSQL: base de datos de embeddings de pgvector postgresql://postgres:postgres@localhost:5432/agent_lab_vectors
db.checkpoints PostgreSQL: base de datos de checkpoints de LangGraph (memoria del agente) postgresql://postgres:postgres@localhost:5432/agent_lab_checkpoints
vault.url Dirección de Vault (también se reescribe para que los servicios puedan leer secretos) http://localhost:8200
vault.token Token de Vault dev-only-token
static.enabled Sirve una compilación de SPA (false cuando no existe compilación del frontend) false
static.directory Directorio que contiene la compilación de la SPA static/frontend/browser
static.index_file Archivo de reserva de la SPA index.html
static.mount_path Punto de montaje de la SPA /

static es especial: las fuentes YAML lo configuran explícitamente, mientras que la fuente de Vault lo deriva de una convención en el código: se habilita cuando existe una compilación de SPA en STATIC_DIR.

Carga de secretos de Vault

VaultConfigSource lee un único secreto KV-v2 (motor secret, ruta app_secrets por defecto) y lo asigna a las claves anteriores:

Clave del secreto Se asigna a
api_base_url api_base_url
cdp_url cdp_url
auth_enabled → auth.enabled auth.enabled
auth_url → auth.url auth.url
auth_realm → auth.realm auth.realm
auth_client_id → auth.client_id auth.client_id
auth_client_secret → auth.client_id auth.client_secret
broker_url broker.url
db_url db.url
db_vectors db.vectors
db_checkpoints db.checkpoints

Cómo aprovisionar esa carga (Docker Compose de desarrollo, Kubernetes, Terraform) se explica en Secretos con Vault y en la Guía de despliegue.

Variables de entorno

Selección de la fuente de configuración

Variable Valor por defecto Finalidad
DEVELOPING (sin definir) Selecciona config-dev.yml (depuración en el IDE)
TESTING (sin definir) Selecciona config-test.yml (batería de pruebas)
DOCKER (sin definir) Selecciona config-docker.yml (Compose)
VAULT_URL (sin definir) Dirección de Vault para la fuente por defecto
VAULT_TOKEN (sin definir) Token de Vault para la fuente por defecto
VAULT_ENGINE_PATH secret Punto de montaje KV-v2
VAULT_SECRET_PATH app_secrets Ruta del secreto
VAULT_K8S_ROLE (sin definir) Rol de autenticación de Kubernetes en Vault; habilita la fuente de K8s y tiene prioridad
STATIC_DIR static/frontend/browser Dónde se busca la compilación de la SPA

Observabilidad

Variable Valor por defecto Finalidad
OTEL_EXPORTER_OTLP_ENDPOINT (sin definir: trazas desactivadas) URL base del colector OTLP/HTTP; trazas → /v1/traces, métricas → /v1/metrics, logs → /v1/logs
SERVICE_NAME Agent-Lab Nombre del recurso de OTel
SERVICE_VERSION snapshot Versión del recurso de OTel
LANGFUSE_HOST (sin definir) URL base de Langfuse; junto con las dos claves siguientes, habilita el backend de Langfuse
LANGFUSE_PUBLIC_KEY (sin definir) Clave pk-lf-… de Langfuse
LANGFUSE_SECRET_KEY (sin definir) Clave sk-lf-… de Langfuse
LANGWATCH_ENDPOINT (sin definir) Endpoint de LangWatch; junto con la clave siguiente, habilita el backend de LangWatch
LANGWATCH_API_KEY (sin definir) Clave de API de LangWatch

Si falta alguna variable de Langfuse, el backend de Langfuse se desactiva sin avisar y la aplicación arranca igualmente (lo mismo ocurre con LangWatch). Detalles y punto de extensión: Observabilidad.

Autenticación e integraciones

Variable Valor por defecto Finalidad
AZURE_CLIENT_ID / AZURE_CLIENT_SECRET / AZURE_TENANT_ID (sin definir) Credenciales de Microsoft Entra ID para /auth/exchange
EMBEDDINGS_ENDPOINT (sin definir) Servicio de embeddings que usan los agentes de recuperación
OPENAI_API_KEY (sin definir) OpenAI (entrada de audio de las notas de voz; juez por defecto de las simulaciones)

Simulaciones (solo en la batería de pruebas)

Variable Valor por defecto Finalidad
SIMULATION_LLM_MODEL (obligatoria) Etiqueta del modelo que ejecuta los agentes sometidos a prueba (p. ej., qwen3:30b)
SIMULATION_LLM_API_BASE (obligatoria) Endpoint compatible con OpenAI que sirve ese modelo
SIMULATION_LLM_API_KEY dummy-key Clave de API del endpoint, si es necesaria
SIMULATION_JUDGE_MODEL openai/gpt-5-nano ID de modelo de litellm que usa el LLM como juez
SIMULATION_JUDGE_API_BASE valor por defecto del proveedor Endpoint personalizado compatible con OpenAI para el juez
SIMULATION_JUDGE_API_KEY valor por defecto del proveedor Clave de API del endpoint personalizado del juez

Consulta Pruebas y simulaciones para ver cómo se utilizan.

Fuentes de configuración personalizadas

Implementa la ABC ConfigSource y pásala a create_app(config_source=...); resulta útil para AWS Secrets Manager, despliegues basados solo en variables de entorno o para envolver otra fuente:

from agent_lab import ConfigSource, create_app


class MyConfigSource(ConfigSource):
    def load(self) -> dict:
        return {
            "api_base_url": "https://api.example.com",
            "db": {"url": "postgresql://…", "vectors": "…", "checkpoints": "…"},
            "auth": {"enabled": True, "url": "…", "realm": "…", "client_id": "…", "client_secret": "…"},
            "broker": {"url": "redis://…"},
            # … remaining keys as in the table above
        }


app = create_app(config_source=MyConfigSource())

Las fuentes incluidas (YamlConfigSource, VaultConfigSource, KubernetesVaultConfigSource) y default_config_source() se exportan todas desde el paquete de nivel superior agent_lab.