A maioria dos blocos precisa de um valor que um bloco anterior produziu. Um bloco o obtém referenciando a saída daquele bloco pelo nome. Esta página cobre três coisas: o que é uma saída e onde ela vive, como um bloco a referencia e os tipos de valores que você encontra dentro.
Neste workflow, Classify lê a mensagem do Start, e Reply lê a classificação de Classify.
O que é uma saída
Quando um bloco roda, o Zoen guarda o resultado sob o nome do bloco pelo resto da execução. Esse resultado armazenado é a saída do bloco, e qualquer bloco posterior pode lê-la.
Uma saída costuma ser um conjunto de valores nomeados, não uma coisa só. Você lê um pela chave: <classify.content> é o valor content do bloco chamado classify.
Blocos diferentes produzem valores diferentes. Um Agent guarda seu content; uma API guarda o data que recebeu; um bloco Table guarda um rowCount e as linhas que leu, acessados com <table1.rowCount>.
A saída de um bloco não é a mesma coisa que a saída do workflow. Cada bloco tem a sua, guardada sob o próprio nome. A saída do workflow é simplesmente uma delas: o que o último bloco produziu.
Como um bloco referencia uma saída
As entradas de um bloco são seus parâmetros: os campos que você preenche, como o modelo e o prompt de um Agent. Em qualquer parâmetro você pode inserir uma tag de conexão para puxar uma saída anterior em vez de digitar um valor fixo. O <start.input> no prompt do Classify significa "use o que o Start recebeu aqui".
Um bloco pode referenciar qualquer saída que já exista quando ele roda, ou seja, qualquer bloco antes dele no caminho (veja como os workflows são executados). Você raramente digita uma tag na mão: onde um parâmetro aceita uma, o builder lista as saídas disponíveis e você escolhe o valor desejado.
Tipos de dados
Cada valor dentro de uma saída tem um tipo, mostrado ao lado no painel de saída. O tipo diz o que você pode fazer com o valor: indexar um array, ler um campo de um objeto, comparar um número.
| Tipo | O que é | Exemplo |
|---|---|---|
string | Texto | "Billing issue" |
number | Um valor numérico | 248 |
boolean | true ou false | true |
object | Um conjunto de campos nomeados | { category: "billing", urgency: "high" } |
array | Uma lista ordenada de valores | ["billing", "urgent"] |
null | Nenhum valor | null |
Um arquivo aparece como um object com os detalhes do arquivo, como nome e URL. Quando um valor não é o tipo que o próximo passo precisa, reformate-o em um bloco Function, que executa um trecho curto de código e armazena o resultado como a própria saída.