Gerando arquivos

Um arquivo gerado é um artefato criado por uma execução de workflow: um relatório, um CSV, um clipe de áudio renderizado. Ele começa como um valor que um block produz e se torna um arquivo do workspace quando um block File o grava no repositório de Files. Uma vez salvo, ele tem nome, tamanho e URL — e qualquer execução posterior pode lê-lo de volta.

Como um pipeline de build que produz artefatos e os guarda em um repositório de artefatos, um workflow produz arquivos que caem no repositório de Files do seu workspace, indexados por ID e compartilhados com todos os workflows.

O que produz o conteúdo de um arquivo

A maioria dos arquivos gerados começa como a saída de um block anterior. Dois padrões são comuns.

Um block retorna conteúdo de texto que você quer guardar. Um Agent escreve uma análise ou um resumo; uma Function monta um CSV ou formata um relatório. Esse texto faz parte da saída do block e é lido por referência como <agent.content> ou <function.result>. Para transformá-lo em arquivo, você passa esse valor para um block File configurado como Write.

Um block retorna um objeto de arquivo diretamente. O text-to-speech da ElevenLabs retorna um audioFile; um gerador de imagens retorna uma imagem gerada; a própria operação Read do block File retorna arquivos já processados. Esses já são objetos UserFile (um objeto com id, name, url, size e type), então aparecem no painel de saída como arquivos, sem precisar de um passo de Write. Você pode entregar um deles a um block seguinte, ou gravar seu conteúdo no repositório de Files para persisti-lo.

A saída de um block fica registrada sob o nome do block pelo resto da execução, e um block posterior a lê por chave, como <elevenlabs.audioFile> ou <agent.content>. Produzir conteúdo e salvá-lo são dois passos separados: o block que produz guarda o valor, e o block File o persiste.

Salvando conteúdo com o block File

A operação Write do block File cria um novo arquivo no workspace. Ela recebe dois campos obrigatórios: um fileName (como report.md) e a string content a ser armazenada. Ela retorna os detalhes do arquivo salvo.

Para salvar a análise de um Agent, conecte o Agent a um block File, defina a operação como Write e referencie a saída do Agent: fileName = research_summary.md, content = <agent.content>. Quando o workflow executar, o block File grava o arquivo e produz:

  • id: o ID canônico do arquivo, usado para buscá-lo depois.
  • name: o nome final do arquivo após qualquer deduplicação (veja abaixo).
  • size: a contagem de bytes.
  • url: uma URL absoluta para baixar ou visualizar o arquivo.

O tipo de conteúdo é detectado a partir da extensão do arquivo: .csv vira text/csv, .pdf vira application/pdf, .md vira text/markdown. Para defini-lo você mesmo, preencha contentType no modo avançado.

Se já existe um arquivo com o mesmo nome no workspace, o Write não o sobrescreve. Em vez disso, ele acrescenta um sufixo numérico: um segundo data.csv é salvo como data (1).csv, e um terceiro como data (2).csv. Para adicionar conteúdo a um arquivo existente em vez de criar um novo, use a operação Append, que grava o conteúdo no final de um arquivo indicado pelo nome.

Para onde o arquivo vai

Um arquivo salvo cai no repositório de Files do workspace, o mesmo lugar onde ficam os uploads. Ele aparece no painel Files, na barra lateral, com nome, tamanho, ícone de tipo e data de modificação, agrupado por categoria: documento, imagem, áudio, vídeo ou código. De lá você pode visualizá-lo, renomeá-lo, movê-lo para uma pasta ou baixá-lo pela URL.

Arquivos têm escopo de workspace, não de um único workflow. Um arquivo gravado por um workflow fica visível para todos os outros workflows do mesmo workspace. Qualquer execução posterior pode lê-lo de volta com as operações Read ou Get do block File, ou selecionando-o em um seletor de arquivos.

Durante uma execução, o arquivo também aparece no painel de saída como a saída do block File, mostrado como um objeto estruturado com seu id, name, url e size. O painel de saída mostra uma execução acontecendo, enquanto o repositório de Files é onde o arquivo permanece depois.

Devolvendo um arquivo gerado a partir de um deployment

Quando um workflow é implantado como uma API, um arquivo gerado pode fazer parte da resposta. Referencie o arquivo em um block Response, ou inclua o ID dele no objeto que você retorna. Quem chamou usa a url ou o id para buscar o arquivo no repositório do workspace. O arquivo em si continua no repositório de Files, e a resposta leva um ponteiro para ele, não os bytes.

Próximos passos