intermediate
ai-ops
configuracao
feature-flags

Feature Flags e Níveis

Controles por subaccount para AI Ops — ai_ops_enabled, ai_ops_tier, tech_cost_per_mile_usd, rebalance_battery_floor e o que cada nível libera.

Levy Fleets TeamMay 18, 20264 min read

Feature Flags e Níveis

O AI Ops é controlado por quatro colunas na tabela subaccounts. Elas têm efeito imediato — sem necessidade de redeploy — e cada cron lê esses valores em tempo de execução.

As quatro configurações

ColunaTipoPadrãoO que faz
ai_ops_enabledbooleanfalseChave geral. Desligada = os crons do AI Ops pulam esse subaccount inteiro.
ai_ops_tiertextnullUm de starter, pro, enterprise. Define quais capacidades rodam.
tech_cost_per_mile_usdnumeric0.50Subtraído do ganho projetado no recomendador.
rebalance_battery_floorinteger30Estado-de-carga mínimo (em por cento) para o veículo ser candidato a rebalanceamento.

Matriz de níveis

CapacidadeStarterProEnterprise
Superfície de demanda (/dashboard/analytics/heat-maps)simsimsim
Heatmap de demanda não atendidasimsimsim
Recomendações de rebalanceamento (/dashboard/operations/rebalance)nãosimsim
Widget Top-3 no painel de operaçõesnãosimsim
Rotas conjuntas de troca+rebalanceamentonãonãosim
Aba Route na operator-appnãonãosim
Regra de auto-manutençãonãonãosim
Solver VRP OR-Toolsn/an/asim
Solver Routific (quando token configurado)n/an/asim

Ajustando tech_cost_per_mile_usd

Esta configuração representa o custo marginal de mover um veículo uma milha. Para um operador que paga prestadores por hora, uma estimativa razoável é a hora dividida pela média de milhas por hora no território.

  • Valores mais baixos tornam o recomendador mais agressivo — mais movimentos com ganho individual menor.
  • Valores mais altos o tornam conservador — só os movimentos de maior ganho passam pelo crivo.

O padrão 0.50 é um bom ponto de partida para operadores urbanos de patinete. Operadores suburbanos e de turismo, com distâncias maiores, costumam elevar para 0.75 ou 1.00.

O custo é subtraído diretamente do ganho projetado:

projected_lift_usd = (dest_gain - src_loss) * avg_fare - distance_miles * tech_cost_per_mile_usd

Se o resultado ficar negativo, a recomendação nunca é gravada.

Ajustando rebalance_battery_floor

Um veículo não é recolhido para um movimento de rebalanceamento se sua bateria estiver abaixo deste piso. O padrão 30 (por cento) é um limiar seguro para a maioria das frotas de patinete — alcance suficiente para o técnico carregar e descarregar sem falha em trânsito.

  • Para e-bikes ou veículos com autonomia maior, o piso pode cair para 15-20.
  • Para operadores ultraconservadores (ex.: inverno rigoroso), eleve para 40-50.

Veículos abaixo do piso não são rebalanceados. Em vez disso, são candidatos ao tipo de parada swap nas rotas de técnicos, que recupera a carga antes da movimentação.

Como as mudanças de nível propagam

AçãoEfeito
Definir ai_ops_enabled = falseTodos os crons do AI Ops pulam o subaccount na próxima execução. Previsões e recomendações existentes permanecem no banco, mas nenhuma nova é gerada.
Rebaixar ai_ops_tier de enterprise para proO cron do solver de rotas pula esse subaccount. Rotas em andamento existentes seguem até completar ou serem abandonadas.
Atualizar starterproO cron do recomendador começa a gerar recomendações na próxima execução.
Atualizar proenterpriseO solver de rotas começa a rodar no próximo tick de 30 minutos (em horário operacional).

Mudanças de nível têm efeito a partir do próximo ciclo de cron. Elas não desfazem retroativamente o trabalho feito em execuções anteriores.

Onde definir as flags

Hoje as flags são definidas diretamente na linha de subaccounts via API admin (PATCH /api/admin/super-subaccounts/[id]) ou SQL no Supabase. Uma UI dedicada no painel admin está no roadmap.

Para rollout piloto, o SQL recomendado é:

UPDATE subaccounts
SET ai_ops_enabled = TRUE,
    ai_ops_tier = 'starter',
    tech_cost_per_mile_usd = 0.50,
    rebalance_battery_floor = 30
WHERE id IN ('<pilot_uuid_1>', '<pilot_uuid_2>');

Relacionado