Ir para o conteúdo

Lógica

Decisões, repetição e segurança: Se/Senão, Laço While, Aprovação do Usuário e Guardrails — condições, expressões e saídas.

Atualizado em 01 de set. de 2026

Os cards de lógica decidem por onde o fluxo segue. Se/Senão e While compartilham o mesmo motor de condições — modo simples (variável + operador + valor) ou modo expressão.

Expressões

No modo expressão você escreve a condição completa, com variáveis entre {{ }}:

{{round}} <= 3 AND {{votos.culpado}} < 2 AND {{votos.inocente}} < 2
{{status}} == "aprovado" OR {{tentativas}} > 5
{{jogadores.* | alive=true | role=lobo}}.count >= 1
NOT {{terminou}}
RecursoSintaxe
Variável simples{{round}}, {{status}} — ausente/vazia conta como 0
Acesso a objeto{{votos.culpado}} entra no dict pela chave
Coleção filtrada{{colecao.* | campo=valor | campo2=valor2}} (filtros em E)
Contagem / existênciasufixo .count ou .exists após a coleção
Operadores== != < <= > >= · AND OR NOT (maiúsculo ou minúsculo)

Se / Senão

Lógica · if_else · bifurca o fluxo

Avalia a condição uma vez e segue pela saída TRUE ou FALSE.

namestringpadrão: 'If/Else'

Nome do nó.

conditionstring (expressão)

Modo expressão — ver acima. Quando presente, ignora os campos do modo simples.

condition_typestringpadrão: contains

Modo simples: `contains`, `not_contains`, `equals`, `not_equals`, `starts_with`, `ends_with`, `greater_than`, `less_than`, `is_empty`, `is_not_empty`, `regex`.

condition_variablestringpadrão: last_response

O que testar: `last_response` (última resposta de agente) ou uma variável.

condition_valuestring

O valor de comparação (não usado em `is_empty`/`is_not_empty`).

Laço While

Lógica · while · repete enquanto for verdade

Reavalia a condição a cada volta: verdadeira → saída LOOP; falsa (ou teto de iterações) → saída EXIT. O último nó do corpo volta pela entrada loop-back da esquerda. Variáveis numéricas simples citadas na condição (ex.: {{round}}) são auto-incrementadas a cada iteração.

namestringpadrão: 'While Loop'

Nome do nó.

loop_conditionstring (expressão)

A condição de permanência no laço.

condition_type / condition_variable / condition_valuestring

Alternativa no modo simples (mesmos operadores do Se/Senão).

max_iterationsnumberpadrão: 10

Teto de voltas — proteção contra loop infinito.

clear_context_each_iterationbooleanpadrão: false

Zera o contexto transitório a cada volta (a resposta anterior não vaza para a próxima).

Aprovação do Usuário

Lógica · user_approval · pausa e espera

Pausa o workflow e espera o usuário. Segue por approved ou rejected conforme a resposta. No protocolo A2A a task fica em input-required; no widget aparece como pergunta com opções.

namestringpadrão: 'User Input'

Nome do nó.

approval_messagestringobrigatório

A pergunta mostrada ao usuário. Aceita `{{variaveis}}`.

approval_optionsstring[]

Opções de resposta (botões). Vazio = resposta livre; palavras negativas ("não", "cancelar"…) contam como rejeição.

approval_timeoutnumber (s)padrão: 0

Tempo máximo de espera. `0` = espera para sempre.

auto_approvebooleanpadrão: false

No timeout: `true` aprova e segue; `false` rejeita.

Guardrails

Lógica · guardrails · inspeção com saídas pass/fail

O porteiro do fluxo: inspeciona um texto — a mensagem do usuário ou a última resposta — e sai por pass ou fail, como um Se/Senão de segurança. As checagens determinísticas (PII, lista de termos) rodam primeiro e custam zero; as de modelo (jailbreak, moderação, regra em linguagem natural) são combinadas numa única classificação.

config.targetinput | last_responsepadrão: input

O que inspecionar: a mensagem do usuário ou a última resposta gerada.

config.checks.piiboolean

CPF, CNPJ, e-mail, telefone e cartão (com dígito de Luhn) por regex — determinístico, sem custo.

config.checks.blockliststring[]

Termos/expressões proibidos — determinístico, sem custo.

config.checks.jailbreakboolean

Classificador por modelo para tentativa de burlar instruções.

config.checks.moderationboolean

Classificador por modelo para conteúdo nocivo.

config.checks.customstring

Regra em linguagem natural ("rejeite se pedir X") — avaliada pelo modelo.

config.fail_messagestring

Registrada no evento e nas variáveis quando reprova.

config.on_errorpass | failpadrão: pass

O que fazer se o classificador falhar.

config.modelstring

Modelo das checagens de LLM (padrão: o do agente). Cobrado como qualquer inferência.

O resultado vira variável

guardrails_result e guardrails_reason ficam disponíveis para os nós seguintes — dá para logar, explicar ao usuário ou ramificar de novo. Exemplo completo no fluxo Identificação sem senha, onde o caminho fail cai num agente sem ferramentas que pede para não enviar o dado.

Esta página foi útil?