Guia

Regras e aprovações

Defina o que a IA pode fazer sozinha, o que precisa de aprovação e o que está proibido, no código ou pelo painel, sem deploy.


Regras por função

RegraExemploEfeito
max_value{ field: "total", limit: 500 }Acima do limite: bloqueia ou pede aprovação
allowed_values{ field: "status", values: ["aberto"] }Só aceita esses valores
blocked_values{ field: "cliente", values: ["c_vip"] }Recusa esses valores
active_hours{ start: "08:00", end: "18:00", days: [1,2,3,4,5] }Só no horário
requiresApprovaltrueToda escrita desta função pede aprovação

onViolation decide o que acontece quando uma regra é violada: block (padrão) ou escalate (pede aprovação).

Aprovação para alterações em massa

Se um pedido planejar mais de 3 alterações, todas esperam aprovação, mesmo que cada uma esteja dentro da própria regra. Isso protege contra pedidos como “cancele todos os pedidos”.

typescript
new Compose({ generate, limits: { approvalAboveWrites: 5 } }) // 0 = toda escrita; -1 = desligado // maxWrites (padrão 50) continua como limite absoluto: acima disso o pedido é bloqueado

Aprovação pelo painel (Business)

Sem um onApproval no código, um pedido que precisa de aprovação volta como PENDING_APPROVAL. No plano Business você pode mandar esse pedido para o painel: um administrador aprova ou rejeita em Aprovações, e o seu app executa exatamente o plano aprovado.

typescript
const vardy = new Compose({ generate, apiKey, approvals: 'dashboard' }) const r = await vardy.run({ intent, user }) if (r.status === 'PENDING_APPROVAL') { // servidor que fica de pé: espera a decisão (padrão: até 10 min) const final = await vardy.waitForApproval(r, user) // serverless / fila: guarde r e cheque depois com vardy.checkApproval(r, user) }
O que vai para o painelQuando
Resumo: funções e quantidades (cancelOrder × 6), motivo, id de quem pediuSempre
O pedido em texto e os argumentos de cada alteraçãoSó com shareApprovalDetails: true. Apagados assim que o pedido é decidido ou expira
O pedido expira em 24 horas. Rejeitado ou expirado, nada é escrito. Antes de executar, o SDK confere que a aprovação é para exatamente aquele plano (hash). Se o painel estiver fora do ar ou o plano não incluir o recurso, o pedido fica pendente no seu app, como sem o painel.

Pelo painel, sem programador

Em Regras:

O quêComo
Mudar a regra de uma funçãoEscreva a regra (JSON) para o nome da função. Ela substitui a do código.
Desligar uma função na horaMarque o botão de desligar. Toda chamada a ela é bloqueada.
Aprovação em massaCartão “Aprovação para alterações em massa”: padrão, outro número, toda alteração ou desligado.
As mudanças chegam a todos os seus apps em cerca de 30 segundos. O valor do painel prevalece sobre o do código.
Regras pelo painel, botão de desligar e receitas compartilhadas são dos planos Starter, Business e Enterprise. No Free, as regras ficam no código e a aprovação em massa pode ser ajustada no painel. Regras salvas no painel ficam pausadas enquanto a conta estiver no Free.

Receitas

Em Receitas (Starter ou acima), salve programas revisados com um nome. Eles rodam com vardy.run({ recipe: 'nome', params, user }), sem custo de IA, e também passam pelas regras. No Free, guarde o programa no seu código e rode com vardy.run({ code, params, user }).

Histórico

Em Execuções você vê cada execução: status, funções usadas, quantas alterações e qual regra bloqueou. Sem nomes, valores ou respostas. O histórico visível é de 7 dias no Free, 90 no Starter e 1 ano no Business.

Acima do limite de execuções do mês, seu sistema nunca para. No Free, o painel deixa de registrar novas execuções até o mês virar. Nos planos pagos, tudo continua sendo registrado e o excedente é cobrado por uso.