Skip to content

Feature Flags

Visão Geral

As feature flags controlam quais agentes e funcionalidades estão ativos no sistema. Todas são configuradas via variáveis de ambiente.

Flags Disponíveis

Flag Default Descrição Dependências
ENABLE_BOOKING true Habilita booking_agent (reservas)
ENABLE_PAYMENT true Habilita payment_agent (pagamentos) ENABLE_BOOKING
ENABLE_ITINERARY true Habilita itinerary_agent (roteiros)
ENABLE_CUSTOM_TOUR true Habilita custom_tour_agent (lead qualification)
ENABLE_MEMORY true Habilita memória cross-session
ENABLE_A2A false Habilita protocolo A2A
ENABLE_ANALYTICS true Habilita tracking de analytics
ENABLE_A2A_STREAMING false Habilita streaming SSE no A2A ENABLE_A2A

Como Usar

Via Environment Variable

# Desabilitar reservas
export ENABLE_BOOKING=false

# Habilitar A2A
export ENABLE_A2A=true

Via .env

ENABLE_BOOKING=true
ENABLE_PAYMENT=true
ENABLE_ITINERARY=true
ENABLE_CUSTOM_TOUR=true
ENABLE_MEMORY=true

Cenários de Configuração

ENABLE_BOOKING ENABLE_PAYMENT ENABLE_CUSTOM_TOUR Sub-agents Modo
true true true 9 Completo
true true false 8 Sem tour customizado
true false true 8 Sem pagamento online
false false true 7 Orçamento + tour
false false false 6 Orçamento puro

Configuração Inválida

ENABLE_PAYMENT=true requer ENABLE_BOOKING=true — não faz sentido pagar sem reserva.

Implementação

from ifriend_agent.config.feature_flags import get_flag, get_active_flags

if get_flag("ENABLE_BOOKING"):
    # booking_agent está disponível
    pass

# Validar todas as flags
flags = get_active_flags()

Adicionar Nova Flag

  1. Editar ifriend_agent/config/feature_flags.py
  2. Adicionar ao _FLAG_REGISTRY:
_FLAG_REGISTRY = {
    ...
    "ENABLE_NOVA_FLAG": (True, "Descrição da nova funcionalidade", []),
}
  1. Usar no código:
if get_flag("ENABLE_NOVA_FLAG"):
    ...