Pular para o conteúdo

Pesquisar na documentação

Digite para pesquisar em todas as páginas da documentação.

Menu da documentação
ReferênciaPúblico · Operadores e desenvolvedores

Referência de configuração

Todas as chaves de configuração e variáveis de ambiente, e como a fonte ativa é escolhida

Esta página foi traduzida automaticamente do inglês. Em caso de divergência, prevalece o original.Ler o original em inglês

Como a configuração é carregada

A configuração é um dicionário simples carregado por um ConfigSource (consulte agent_lab/core/config.py) e vinculado ao container de DI. create_app() seleciona uma fonte por meio de default_config_source(), exatamente nesta ordem — a primeira correspondência vence:

# Condição (variável de ambiente definida) Fonte ativa
1 VAULT_K8S_ROLE KubernetesVaultConfigSource — Vault via o token projetado da ServiceAccount do pod
2 DOCKER YamlConfigSource("config-docker.yml")
3 TESTING YamlConfigSource("config-test.yml")
4 DEVELOPING YamlConfigSource("config-dev.yml")
5 (nenhuma das anteriores) VaultConfigSource — lê VAULT_URL / VAULT_TOKEN

Você pode sobrescrever a seleção por aplicação:

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

Chaves de configuração

O dicionário que a fonte ativa deve retornar. Os valores padrão mostrados vêm de config-dev.yml (desenvolvimento); a aplicação de referência inclui config-dev.yml, config-test.yml e config-docker.yml exatamente com este formato.

Chave Finalidade Valor de exemplo
api_base_url URL base pública desta API (usada em links nas respostas) http://localhost:8000
cdp_url Endpoint do Chrome headless (CDP) para agentes web (WebAgentBase) http://localhost:9222
auth.enabled Monta o middleware de autenticação e as rotas /auth quando true false
auth.url URL base do Keycloak https://auth.example.com
auth.realm Nome do realm do Keycloak agent-lab
auth.client_id Client id OIDC agent-lab-api
auth.client_secret Client secret OIDC …
broker.url URL do Redis para atualizações de status via pub/sub em operações longas redis://localhost:6379/0
db.url PostgreSQL — dados relacionais postgresql://postgres:postgres@localhost:5432/agent_lab
db.vectors PostgreSQL — banco de dados de embeddings pgvector postgresql://postgres:postgres@localhost:5432/agent_lab_vectors
db.checkpoints PostgreSQL — banco de dados de checkpoints do LangGraph (memória dos agentes) postgresql://postgres:postgres@localhost:5432/agent_lab_checkpoints
vault.url Endereço do Vault (também gravado de volta para que os serviços possam ler segredos) http://localhost:8200
vault.token Token do Vault dev-only-token
static.enabled Serve um build de SPA (false quando não existe build de frontend) false
static.directory Diretório que contém o build da SPA static/frontend/browser
static.index_file Arquivo de fallback da SPA index.html
static.mount_path Ponto de montagem da SPA /

static é um caso especial: as fontes YAML o configuram explicitamente, enquanto a fonte Vault o deriva de uma convenção de código — ativado quando existe um build de SPA em STATIC_DIR.

Payload de segredos do Vault

O VaultConfigSource lê um único segredo KV-v2 (engine secret, caminho app_secrets por padrão) e o mapeia para as chaves acima:

Chave do segredo Mapeada para
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

Como provisionar esse payload (Docker Compose de desenvolvimento, Kubernetes, Terraform) é explicado em Segredos com Vault e no guia de implantação.

Variáveis de ambiente

Seleção da fonte de configuração

Variável Padrão Finalidade
DEVELOPING (não definida) Seleciona config-dev.yml (depuração na IDE)
TESTING (não definida) Seleciona config-test.yml (suíte de testes)
DOCKER (não definida) Seleciona config-docker.yml (Compose)
VAULT_URL (não definida) Endereço do Vault para a fonte padrão
VAULT_TOKEN (não definida) Token do Vault para a fonte padrão
VAULT_ENGINE_PATH secret Ponto de montagem do KV-v2
VAULT_SECRET_PATH app_secrets Caminho do segredo
VAULT_K8S_ROLE (não definida) Role de autenticação Kubernetes do Vault; ativa a fonte K8s e tem precedência
STATIC_DIR static/frontend/browser Onde o build da SPA é procurado

Observabilidade

Variável Padrão Finalidade
OTEL_EXPORTER_OTLP_ENDPOINT (não definida — tracing desativado) URL base do collector OTLP/HTTP; traces → /v1/traces, métricas → /v1/metrics, logs → /v1/logs
SERVICE_NAME Agent-Lab Nome do recurso OTel
SERVICE_VERSION snapshot Versão do recurso OTel
LANGFUSE_HOST (não definida) URL base do Langfuse; junto com as duas chaves abaixo, ativa o backend Langfuse
LANGFUSE_PUBLIC_KEY (não definida) Chave pk-lf-… do Langfuse
LANGFUSE_SECRET_KEY (não definida) Chave sk-lf-… do Langfuse
LANGWATCH_ENDPOINT (não definida) Endpoint do LangWatch; junto com a chave abaixo, ativa o backend LangWatch
LANGWATCH_API_KEY (não definida) Chave de API do LangWatch

Se qualquer variável do Langfuse estiver ausente, o backend Langfuse é desativado silenciosamente e a aplicação continua inicializando (o mesmo vale para o LangWatch). Detalhes e o ponto de extensão: Observabilidade.

Autenticação e integrações

Variável Padrão Finalidade
AZURE_CLIENT_ID / AZURE_CLIENT_SECRET / AZURE_TENANT_ID (não definida) Credenciais do Microsoft Entra ID para /auth/exchange
EMBEDDINGS_ENDPOINT (não definida) Serviço de embeddings usado pelos agentes de recuperação
OPENAI_API_KEY (não definida) OpenAI (entrada de áudio dos memos de voz; padrão do juiz das simulações)

Simulações (somente na suíte de testes)

Variável Padrão Finalidade
SIMULATION_LLM_MODEL (obrigatória) Tag do modelo que executa os agentes sob teste (por exemplo, qwen3:30b)
SIMULATION_LLM_API_BASE (obrigatória) Endpoint compatível com a OpenAI que serve esse modelo
SIMULATION_LLM_API_KEY dummy-key Chave de API do endpoint, se necessária
SIMULATION_JUDGE_MODEL openai/gpt-5-nano id de modelo do litellm usado pelo LLM como juiz
SIMULATION_JUDGE_API_BASE padrão do provedor Endpoint personalizado compatível com a OpenAI para o juiz
SIMULATION_JUDGE_API_KEY padrão do provedor Chave de API do endpoint personalizado do juiz

Consulte Testes e simulações para ver como elas são consumidas.

Fontes de configuração personalizadas

Implemente a ABC ConfigSource e passe-a para create_app(config_source=...) — útil para AWS Secrets Manager, implantações baseadas apenas em variáveis de ambiente ou para encapsular outra fonte:

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())

As fontes incluídas (YamlConfigSource, VaultConfigSource, KubernetesVaultConfigSource) e default_config_source() são todas exportadas pelo pacote de nível superior agent_lab.