Guia

Conceitos

Os poucos conceitos que explicam tudo o que o Vardy faz.


Pedido direto (run) e exploração (explore)

runexplore
Quando usarA pessoa sabe o que quer: "cancele", "quanto deve", "envie"A pessoa quer entender: "o que está acontecendo", "por quê", "quem merece atenção"
Como funcionaUm programa, uma execuçãoRodadas: programa → resumo → próximo programa ou resposta. Normalmente resolve em 1 rodada
Retornostatus, output, efeitosstatus, answer, rodadas
typescript
await vardy.run({ intent: 'Cancele os pedidos atrasados da Maria', user }) await vardy.explore({ goal: 'Por que as reclamações aumentaram esta semana?', user })

O programa e a sandbox

A IA escreve uma função async function run(params) que chama só as funções que você liberou. Antes de rodar, o código é verificado: nada de rede, arquivos, eval ou acesso ao sistema. Ele roda numa sandbox (QuickJS/WASM) com limite de memória e tempo. A IA nunca recebe os dados brutos, só o que o programa devolve.

Leitura e escrita

Cada função é read (consulta) ou write (altera algo). Leituras executam na hora. Escritas não executam durante o programa: viram um plano de efeitos.

Plano de efeitos, regras e aprovação

1. O programa roda e as escritas são anotadas. 2. Cada uma é conferida contra as regras. 3. Se alguma precisar de aprovação, o pedido espera. 4. Aprovado, o Vardy executa exatamente o plano, com chave de idempotência, sem rodar o código de novo.

typescript
const vardy = new Compose({ generate, onApproval: async ({ summary, reasons, effects }) => { // ex.: summary = { cancelOrder: 6 }, reasons = ['6 writes in one run (approval required above 3)'] return await pedirAprovacaoAoGestor(summary, reasons) // true = executa, false = nada acontece }, })
Sem onApproval, o resultado volta como PENDING_APPROVAL. Depois da aprovação no seu fluxo, chame vardy.commit(resultado, user).

Receitas

Um programa revisado, salvo no painel com um nome. Roda com vardy.run({ recipe: 'nome', params, user }), sem chamar a IA e sem custo de tokens.

IA barata dentro do programa: ai() e classify()

Com a opção judge, o programa ganha duas funções para lidar com texto sem mandá-lo para a IA principal:

FunçãoPara quê
classifyClassificar muitos textos em categorias (ou sim/não) de forma estável, com a contagem pronta.
aiResumir, extrair um campo ou decidir sobre poucos itens.

Status possíveis

StatusSignificado
SUCCESSExecutou (e aplicou o plano, se havia escritas).
PLANNEDModo plano: devolveu o plano sem executar.
PENDING_APPROVALHá alteração que precisa de aprovação.
POLICY_BLOCKEDUma regra bloqueou, ou a aprovação foi negada. Nada foi alterado.
VALIDATION_BLOCKEDO programa ou os argumentos violaram a validação.
FUNCTION_ERRORUma função do seu sistema falhou.
PARTIALO plano começou a executar e uma alteração falhou no meio.
EXECUTION_ERRORTempo, memória ou erro dentro da sandbox.
GENERATION_ERRORA IA não devolveu um programa utilizável.