Filas: dez tarefas e vá dormir|INEMA.CLUB-PRO

Aula 3 · 20 min

A fila caseira em 30 linhas

Antes do bot, você vê a ideia inteira num script curto do repositório jornada-agentes: quatro pastas, uma tarefa por vez, retomada depois do Ctrl+C e falha separada com o motivo.

Começar a aula
Notebook com terminal escuro ao lado de quatro pastas de papel sobre a mesa.

Nesta aula você vai

  1. 1As quatro pastas e o caminho de uma tarefa
  2. 2A retomada, vista na prática
  3. 3O script linha por linha
  4. 4Trocar o motor: claude ou codex

Objetivo: rodar a fila caseira, interromper no meio e explicar por que a segunda rodada não refaz o que já foi feito.

01O caminho de um arquivo

Cada pedido é um .md que muda de pasta.

Role a página: cada etapa abaixo acende a sua parte do diagrama.

  1. 1/5

    entrada/

    Cada arquivo .md é um pedido, escrito como você escreveria no chat. A ordem é a do nome do arquivo.

  2. 2/5

    rodando/

    O script move o arquivo para cá antes de chamar o agente. Se você der Ctrl+C ou o computador cair, ele fica aqui, e é isso que permite a retomada.

  3. 3/5

    feito/

    Deu certo (código 0 e resposta não vazia): o arquivo final tem o pedido, uma linha --- e a resposta do agente.

  4. 4/5

    falhou/

    Deu erro ou a resposta veio vazia: o arquivo vai para cá com o código de saída e o que o agente imprimiu. A fila segue para a próxima.

  5. 5/5

    Rodar de novo só pega o que sobrou

    Na largada, o script devolve para entrada/ o que ficou em rodando/. O que já está em feito/ nunca é refeito.

Clique em cada pasta. O pulo do gato é rodando/: a tarefa só sai dali quando termina, para feito/ ou para falhou/.

02Veja a fila funcionando

Rode, interrompa no meio com o botão de Ctrl+C e rode de novo.

entrada/

rodando/

feito/

falhou/

Simulação ilustrativa no navegador: as tarefas não rodam de verdade. A falha é proposital, para mostrar a pasta falhou/.

03O script e como usar

Está em ferramentas/fila-caseira.sh no repositório jornada-agentes. Os dois motores rodam pela sua assinatura.

Terminal · preparar e rodar
git clone https://github.com/inematds/jornada-agentes.git
cd jornada-agentes
mkdir -p fila/entrada
echo "Resuma em 5 linhas o que é uma fila de tarefas." > fila/entrada/01.md
echo "Liste 3 riscos de deixar um agente rodando sozinho." > fila/entrada/02.md
./ferramentas/fila-caseira.sh fila          # motor padrão: claude
./ferramentas/fila-caseira.sh fila codex    # ou o codex
O miolo do fila-caseira.sh (resumido para leitura)
mkdir -p "$PASTA/entrada" "$PASTA/rodando" "$PASTA/feito" "$PASTA/falhou"

# retomada: o que ficou em "rodando" (queda, Ctrl+C) volta para a entrada
for f in "$PASTA"/rodando/*.md; do [ -e "$f" ] && mv "$f" "$PASTA/entrada/"; done

for f in "$PASTA"/entrada/*.md; do
  [ -e "$f" ] || { echo "fila vazia"; break; }
  nome=$(basename "$f")
  mv "$f" "$PASTA/rodando/$nome"          # pega a tarefa (só uma por vez)
  saida=$(claude -p "$(cat "$PASTA/rodando/$nome")" < /dev/null 2>&1); rc=$?
  if [ $rc -eq 0 ] && [ -n "$saida" ]; then
    # pedido + --- + resposta vão para feito/
  else
    # pedido + ERRO (rc) + saída vão para falhou/
  fi
done
Exemplo do repositório
→ 01.md
  feito
→ 02.md
  feito
entrada: 0 · feito: 2 · falhou: 0

04Prática

Use duas tarefas da sua fila no papel (aula 2).

E2 · Fila caseira em 30 linhas

30 min

Crie duas ou três tarefas em fila/entrada e rode a fila-caseira.sh. Numa segunda rodada, interrompa com Ctrl+C enquanto uma tarefa está em rodando/, confira a pasta e rode de novo.

Pronto quando: as tarefas estão em fila/feito com a resposta e você viu a fila continuar de onde parou depois do Ctrl+C.

Script: jornada-agentes/ferramentas/fila-caseira.sh.

05Teste o que aprendeu

A explicação aparece depois da sua resposta.

Pergunta 1 de 3

Você interrompeu a fila no meio de uma tarefa. O que acontece quando roda de novo?competência

Para ir além

Aula anteriorPróxima aula