O bloco Response encerra um workflow e retorna uma resposta HTTP estruturada ao caller. Use com um deployment de API para controlar o body, o status code e os headers exatos que voltam.
Configuração
Response Data Mode
Builder monta o body da resposta campo a campo com tipos; Editor é um editor de código JSON cru. Builder serve na maioria dos casos.
Response Data
O body enviado de volta, como JSON. Referencie qualquer valor anterior: uma saída de bloco como <agent.content> com uma connection tag, ou uma variável de workflow como <variable.userId>. Aninhe objetos e arrays livremente.
{
"query": "<start.input>",
"answer": "<agent.content>",
"model": "<agent.model>"
}Status Code
Qualquer código de status HTTP válido; o padrão é 200. Defina 4xx ou 5xx em branches de erro (201 created, 400 bad request, 404 not found, 500 server error).
Response Headers
Headers extras de resposta, como pares chave-valor:
| Key | Value |
|---|---|
| Content-Type | application/json |
| Cache-Control | no-cache |
| X-API-Version | 1.0 |
Saídas
Um bloco Response é um bloco terminal, então nada lê dele. Seus data, status e headers viram a própria resposta HTTP. Um workflow sem bloco Response retorna a saída do último bloco por padrão; adicione um bloco Response quando precisar de controle HTTP exato.
Não coloque um bloco Response em parallel com blocos que têm side effects importantes. A ordem entre branches parallel não é determinística, então o Response pode disparar antes ou depois deles em qualquer execução.
Exemplos
Retornar dados de um endpoint de API
O bloco Response lê <agent.content> no body e retorna 200 ao caller da API.
Confirmar um webhook
Depois de processar o payload, o bloco Response retorna uma confirmação pequena para o sender saber que o evento foi recebido.
Retornar um status diferente por branch
Um Condition roteia requests válidas para um Response 200 e inválidas para um 400. O primeiro Response a rodar determina o que o caller recebe.
Boas práticas
- Use status codes precisos.
2xxpara sucesso,4xx/5xxpara erros, definidos por branch. - Mantenha uma forma de resposta consistente entre seus endpoints para os callers poderem confiar nela.
- Retorne uma resposta diferente por resultado. Coloque um Response em cada branch depois de um Condition ou Router.
- Cheque se suas referências resolvem. Uma connection tag apontando para um bloco que não rodou volta vazia, então defina campos no branch que os produz.