Pular para o conteúdo principal

Editor de Expressoes CEL

O AutoTalk usa expressoes CEL (Common Expression Language) em agentes de IA e workflows para tornar o comportamento dinamico — personalizando mensagens do sistema com nomes de clientes, executando etapas condicionalmente, calculando valores em tempo de execucao e mais.

Esta pagina explica como escrever e testar expressoes CEL usando o editor integrado.


Onde as expressoes aparecem

As expressoes CEL aparecem onde quer que voce veja o emblema CEL na interface de configuracao:

  • Agente > Aba Mensagens — conteudo da mensagem do sistema (ex.: injetar o nome do cliente em um prompt)
  • Agente > Aba Acoes — o campo Condicao em cada etapa de pre-acao ou pos-acao
  • Workflow > Etapas — condicoes de etapas e mapeamentos de saida

O editor de expressoes

O editor de expressoes CEL mostrando um campo de Condicao com uma expressao 'true', um emblema de modo CEL e um botao Expandir

Quando voce abre uma etapa de acao para edicao, o campo Condicao mostra o editor de expressoes compacto. Ele possui:

  • Destaque de sintaxe — palavras-chave, strings e operadores sao coloridos
  • Validacao em tempo real — um emblema verde Valido aparece quando a expressao esta correta; um emblema vermelho de erro aparece com a mensagem de erro exata quando nao esta
  • Botao Formatar — formata automaticamente a expressao (atalho de teclado: Ctrl+Shift+F)
  • Botao Expandir — abre o ambiente de trabalho completo (veja abaixo)

CEL simples vs CEL bruto

Um campo de mensagem do sistema aberto para edicao, mostrando uma expressao CEL multilinhas com o alternador CEL/template no cabecalho

Campos de mensagem do sistema (e outros campos de texto) oferecem dois modos de criacao, alternados pelo botao CEL no cabecalho do campo:

ModoExemploQuando usar
CEL Simples (SCEL)Hello {{client.name}}!Sintaxe mais simples para texto com substituicoes de variaveis
CEL Bruto"Hello " + client.name + "!"Sintaxe CEL completa quando voce precisa de logica, condicionais ou chamadas de funcao

Ambos os modos produzem o mesmo resultado. A sintaxe {{variavel}} e convertida automaticamente para CEL bruto quando voce salva.

Opcoes avancadas de campo

Expanda a gaveta Avancado abaixo de qualquer campo de expressao para configurar:

OpcaoO que faz
Em caso de falhaO que acontece se a expressao gerar um erro em tempo de execucao: parar a acao (throw), retornar vazio (""), ou retornar null
Tipo de resultadoTipo de saida esperado (string, boolean, number, object, array)
FallbackUma segunda expressao para avaliar se a primaria falhar

O ambiente de trabalho completo

Clique em Expandir em qualquer editor de expressao para abrir o ambiente de trabalho completo em uma visualizacao dedicada.

Aba Explorador

O ambiente de trabalho CEL com a aba Explorador aberta, mostrando uma arvore de variaveis pesquisavel e lista de funcoes

A aba Explorador mostra tudo disponivel no contexto atual:

  • Arvore de variaveis — todas as variaveis que voce pode referenciar nesta expressao, expansiveis para ver campos aninhados. Clique em qualquer variavel ou campo para inseri-lo no cursor.
  • Lista de funcoes — todas as funcoes integradas com sua assinatura e descricao. Clique para inserir.
  • Caixa de busca — filtra tanto variaveis quanto funcoes conforme voce digita.

As variaveis mostradas dependem de onde a expressao esta localizada:

LocalizacaoVariaveis disponiveis
Pre-acoes / pos-acoes do agenteclient, contactMessage, conversation, company, step(0), step(1), ...
Mensagens do sistema do agenteclient, company, employee, e variaveis de sessao definidas por pre-acoes anteriores
Etapas do Workflow_workflow, occurrenceDate, entradas do gatilho, step(0), ...

Aba Teste

O ambiente de trabalho CEL com a aba Teste aberta, mostrando um editor de variaveis JSON e uma area de resultado vazia

A aba Teste permite avaliar a expressao com valores de variaveis personalizados sem afetar uma conversa real:

  1. Edite o JSON a esquerda para definir valores de teste para variaveis (ex.: defina client.name como "Alice")
  2. Clique em Executar (ou pressione Ctrl+Enter)
  3. O resultado aparece a direita — seja o valor calculado ou uma mensagem de erro formatada

Referencia de variaveis

Para uma lista completa de todas as funcoes disponiveis, consulte a Referencia de Funcoes CEL.

Estas variaveis estao disponiveis dentro de expressoes de agentes:

VariavelDescricao
clientO contato que enviou a mensagem — client.name, client.phoneNumber, client.email, client.tags, etc.
contactMessageA mensagem recebida — contactMessage.body.text, contactMessage.type, etc.
conversationA sessao da conversa — conversation.status, conversation.metadata, etc.
companyO perfil da sua empresa — company.name, company.options, etc.
employeeO funcionario/profissional atribuido (disponivel em mensagens do sistema)
step(N)Saida de uma etapa anterior no indice N — ex.: step(0).jwt, step(2).data[0], ou get(step(1), 'executionContext.status')

Verificacoes comuns de resultado de etapas

Use as funcoes auxiliares de etapa para verificacoes concisas de status de etapas:

step_ok(0)                                          // true se a etapa 0 completou com sucesso
step_data(0, "title") // obter data.title da etapa 0
step_data(1, "choices.0.message.content", "") // resposta do LLM com fallback
step_error(2) // {code, user_message, retryable} ou null

Ou use step(N).executionContext diretamente para verificacoes de nivel mais baixo:

get(step(0), 'executionContext.status') == 'completed'
get(step(1), 'executionContext.safeError.code') == 'unsupported_media_format'
get(step(2), 'executionContext.safeResult.reason') == 'condition_false'

safeError e destinado para depuracao e ramificacao seguras. Ele nao expoe stack traces brutos, segredos ou payloads de provedores.

Consulte a Referencia de Funcoes CEL para a lista completa de funcoes.

Depurando erros de expressao

Quando uma expressao CEL falha durante uma conversa real, uma bolha de erro aparece no chat — visivel apenas para sua equipe, nao para o cliente.

Lendo a bolha de erro

A bolha de erro em seu estado colapsado, mostrando 'Erro do assistente', um emblema CelEvaluationError e a mensagem de erro

A bolha colapsada mostra o tipo de erro e uma mensagem de uma linha. Clique em Expandir para ver o painel de detalhes completo.

Visualizacao expandida

A bolha de erro expandida mostrando quatro secoes em acordeao: Expressao CEL, Metadados, Variaveis CEL e Payload Completo

O painel expandido possui quatro secoes:

SecaoConteudo
Expressao CELA expressao exata que falhou — copie-a para colar no ambiente de trabalho para teste
MetadadosOnde o erro aconteceu: qual secao da configuracao do agente, qual indice de mensagem ou acao
Variaveis CEL(Apenas nivel de log Debug) A lista completa de variaveis e seus valores no momento do erro
Payload CompletoOs dados brutos do erro em JSON

Secao de Variaveis CEL

O acordeao de Variaveis CEL expandido, mostrando um campo de filtro e uma lista de variaveis com seus tipos

A secao de Variaveis CEL e a mais util para diagnosticar problemas:

  • Use a caixa de filtro para buscar a variavel que sua expressao referencia
  • Expanda qualquer variavel para inspecionar seu valor e estrutura reais
  • Variaveis rotuladas como truncadas sao objetos grandes que foram abreviados

Nota: Variaveis CEL so aparecem quando o Nivel de Log do agente esta definido como Debug. Va para a aba Avancado do agente para aumentar o nivel de log, depois reduza novamente apos corrigir o problema.

Depuracao passo a passo

  1. Expanda a bolha de erro com Expandir.
  2. Em Expressao CEL, copie a expressao com falha.
  3. Em Metadados, anote a secao e o indice para encontrar o campo correto no editor do agente.
  4. Em Variaveis CEL (requer nivel de log Debug), busque a variavel que a expressao usa e verifique seu valor real.
  5. Abra o editor do agente, va para a aba relevante e clique em Expandir no campo problematico.
  6. Cole a expressao na aba Teste, insira valores de variaveis realisticos e execute para reproduzir o erro.
  7. Corrija a expressao e salve. A bolha de erro deixara de aparecer assim que a expressao for bem-sucedida.