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¶
- Editar
ifriend_agent/config/feature_flags.py - Adicionar ao
_FLAG_REGISTRY:
_FLAG_REGISTRY = {
...
"ENABLE_NOVA_FLAG": (True, "Descrição da nova funcionalidade", []),
}
- Usar no código:
if get_flag("ENABLE_NOVA_FLAG"):
...