Reference

Conexões

Uma conexão liga um bloco ao próximo e define a ordem em que eles rodam. Como os blocos passam dados cobre o conceito: depois que um bloco roda, sua saída fica guardada sob o nome do bloco, e qualquer bloco posterior a lê por referência. Esta página é a referência da sintaxe da tag de conexão e dos formatos de saída que você vai acessar.

Sintaxe da tag

Uma tag de conexão referencia um valor da saída de um bloco anterior:

<blockName.path.to.data>
  • blockName é o nome do bloco de origem. Os nomes dos blocos são normalizados antes do matching, então ficam em minúsculas e sem espaços. <My Agent.content> e <myagent.content> resolvem para o mesmo bloco.
  • path.to.data é o caminho até o valor dentro da saída daquele bloco. O caminho do campo é case-sensitive.

A mesma sintaxe com colchetes angulares também lê variáveis de workflow (<variable.name>) e contexto de loop ou parallel (<loop.index>); uma tag de conexão é especificamente o caso de saída de bloco.

Você raramente digita uma tag na mão. Em qualquer campo de entrada, digite < para abrir um dropdown dos valores disponíveis de blocos anteriores e escolha um, ou arraste um valor de um bloco conectado direto para o campo.

Campos aninhados e arrays

Encadeie notação de ponto para entrar em objetos, e use índices entre colchetes para arrays. Os dois se combinam em um único caminho:

<agent1.tokens.total>
<api1.data.results[0].id>
<api2.data.users[0].name>

O resolvedor percorre o caminho em tempo de execução e substitui o valor. Vários níveis de indexação como items[0][1] também funcionam.

Usando tags em texto e código

As tags são resolvidas em tempo de execução e podem ficar em qualquer lugar de um campo, misturadas com texto estático:

// Em texto
"The user's name is <userBlock.name>"

// Em JSON
{
  "userName": "<userBlock.name>",
  "orderTotal": <apiBlock.data.total>
}

// Em um bloco Function
const greeting = `Hello, ${"<userBlock.name>"}!`
const total = <apiBlock.data.total> * 1.1

Os valores são formatados para caber no contexto. Em um bloco Function, um valor resolvido vira um literal de código, então strings ficam entre aspas, objetos são JSON e null permanece null, prontos para entrar em JavaScript ou Python. Em outros blocos, objetos são JSON-stringified e primitivos viram strings simples.

Em um contexto numérico, confirme que o valor referenciado é de fato um número. Uma tag que resolve para texto não se comporta como número.

Quando um bloco referenciado não rodou no caminho atual — por exemplo, um bloco em uma ramificação não selecionada — sua tag resolve para um valor vazio. Na maioria dos blocos isso é uma string vazia; em blocos Function é null.

Saídas comuns de blocos

O caminho de uma tag depende do que o bloco de origem produziu. Estes são os formatos padrão dos blocos que você mais referencia. O painel de saída mostra a estrutura ao vivo de qualquer bloco.

{
  "content": "The generated text response",
  "model": "claude-sonnet-4-6",
  "tokens": { "input": 120, "output": 85, "total": 205 },
  "toolCalls": []
}

content é a resposta principal. tokens é um objeto com contagens de uso. toolCalls lista as ferramentas que o agente chamou, com entradas e resultados. Com um response format configurado, os campos do seu schema aparecem como saídas próprias.

{
  "data": "Response body",
  "status": 200,
  "headers": { "content-type": "application/json" }
}

data é o corpo da resposta e pode ser de qualquer tipo. status é o código HTTP. headers guarda os cabeçalhos da resposta.

{
  "result": "Function return value",
  "stdout": "Console output"
}

result é o que sua função retornou e pode ser de qualquer tipo. stdout captura o que o código registrou no console.

{
  "conditionResult": true,
  "selectedPath": {
    "blockId": "2acd9007-27e8-4510-a487-73d3b825e7c1",
    "blockType": "agent",
    "blockTitle": "Follow-up Agent"
  },
  "selectedOption": "condition-1"
}

conditionResult é o resultado booleano. selectedPath descreve o próximo bloco. selectedOption é o ID da condição correspondente.

{
  "content": "Routing decision",
  "model": "claude-sonnet-4-6",
  "tokens": { "input": 120, "output": 85, "total": 205 },
  "selectedPath": {
    "blockId": "2acd9007-27e8-4510-a487-73d3b825e7c1",
    "blockType": "agent",
    "blockTitle": "Customer Service Agent"
  }
}

content é o texto da decisão de roteamento. selectedPath descreve o bloco de destino escolhido.

{
  "content": "Evaluation summary",
  "model": "claude-sonnet-4-6",
  "tokens": { "input": 120, "output": 85, "total": 205 },
  "metric1": 8.5,
  "metric2": 7.2
}

content resume a avaliação. Cada métrica que você definiu aparece como um campo próprio com uma pontuação numérica.

O result de um Function, o data de uma API e um Agent com response format retornam o que seu código, o serviço remoto ou seu schema produziram, então confira o painel de saída durante o desenvolvimento para confirmar o caminho que você está referenciando.

Common Questions

O executor compara cada referência entre colchetes angulares com resolvedores em uma ordem fixa: contexto de loop e parallel, depois variáveis de workflow, depois saídas de bloco. O primeiro resolvedor que reconhece a referência a trata, e uma referência sem match fica no lugar sem substituição.
Os nomes são normalizados antes do matching — minúsculas, espaços removidos — então <My Agent.content> e <myagent.content> resolvem para o mesmo bloco. O caminho do campo depois do nome do bloco é case-sensitive.
Não. Variáveis de ambiente usam a sintaxe de chaves duplas, {{MY_VAR}}, e são resolvidas separadamente. Colchetes angulares leem saídas de bloco, variáveis de workflow e contexto de loop ou parallel. Veja a referência de variáveis para as duas sintaxes.
Se o bloco estava em uma ramificação que não foi tomada, a referência resolve para um valor vazio — string vazia na maioria dos blocos, null em blocos Function. Confira a aba Input do bloco que falhou nos logs para ver no que a referência realmente resolveu.
Sim. Use índices entre colchetes no caminho, como <api1.data.users[0].name>. Vários níveis de indexação como items[0][1] também funcionam.
Blocos Function recebem valores resolvidos como literais de código — strings entre aspas, objetos como JSON, null como null — para entrarem direto em JavaScript ou Python. Em outros blocos, objetos são JSON-stringified e primitivos viram strings simples.

Próximos passos

On this page