Pular para o conteúdo
use-cases / wake-agent-at-3am / hero
Cron · Agente · Contêineres

Acorde um agente às 3h da manhã, aposente-o às 4h

Um job noturno que varre as exceções de cobrança de ontem, agrupa duplicatas e escreve uma nota de triagem. Ele só precisa existir por cerca de uma hora por dia. Duas entradas de cron sobem um contêiner de agente novo às 02:59 e o desmontam às 04:01. As outras 23 horas, ele não está rodando, não está aquecido, não está sendo cobrado.

Leia a documentação
use-cases / wake-agent-at-3am / mechanism

Duas entradas de cron, um contêiner de vida curta

Não há pool aquecido, nem serviço de scheduler, nem daemon de cola fazendo polling por trabalho. Uma entrada hoody-cron faz POST na URL de spawn do hoody-agent às 02:59. O agente faz a execução e sai. Um segundo cron às 04:01 chama DELETE pra garantir que o contêiner se foi. Essa é a máquina inteira.

POST cron.hoody.com/users/root/entries
Gatilho de despertar · 02:59
// Entrada de cron que dispara uma vez por dia e faz POST do spawnPOST cron.hoody.com/users/root/entries{ schedule: "0 3 * * *", command: "curl -X POST $AGENT_URL -d @prompt.json", comment: "billing-reconcile · 3am wake"}
dispara às 02:59 →
POST api.hoody.com/api/v1/projects/$PID/containers
Spawn do agente · ai + hoody_kit
// O agente sobe, reconcilia as faturas de ontem, escreve notas, saiPOST api.hoody.com/api/v1/projects/$PID/containers{ name: "billing-reconcile-$(date +%s)", ai: true, hoody_kit: true, autostart: false}
contêiner sai, segundo cron dispara às 04:01 →
DELETE api.hoody.com/api/v1/containers/$CID
Desmontagem · 04:01
// Cinto e suspensórios: um segundo cron afirma que o contêiner se foiDELETE api.hoody.com/api/v1/containers/$CID// Resposta do hoody-containers200 OK · container deleted

Duas linhas de cron num banco de dados. Uma imagem de agente. O contêiner só existe pelo trabalho, depois para de existir. Sem pool aquecido, sem primitiva de tarefa agendada, sem daemon de ciclo de vida que você tem que operar.

use-cases / wake-agent-at-3am / night

Como a noite parece de verdade

Cinco momentos. O agente está vivo nos três do meio. Fora dessa hora, a linha na tabela de contêineres não existe.

  1. 02:59Cron · despertar

    A entrada de cron billing-reconcile-wake dispara. Ela faz POST em api.hoody.com com ai: true e hoody_kit: true. Um contêiner novo sobe com sistema de arquivos limpo e o prompt do agente carregado.

  2. 03:02Agente · lê

    O agente lê a tabela billing-exceptions de ontem via Hoody SQLite e pede a um LLM que agrupe as linhas por código de motivo — via Hoody AI Gateway (custo do provedor + 5%, tirado do seu AI Balance) ou chave BYO direto para Anthropic / OpenAI / seu provedor. Sem mounts de file-share. Só URLs.

  3. 03:31Agente · escreve

    Ele escreve uma única nota de triagem por cluster de volta na mesma URL SQLite, e então envia uma notificação com o resumo do dia. Tempo total até aqui: cerca de trinta minutos.

  4. 03:58Agente · sai

    O processo do agente retorna 0 e o contêiner sai sozinho. O hoody-containers o marca como parado. Deste segundo em diante, nada do agente está rodando, aquecido ou sendo cobrado.

  5. 04:01Cron · aposenta

    Uma segunda entrada de cron dispara DELETE no id do contêiner. Se o agente já saiu, isso é um no-op 200 OK. Se ele travou, o contêiner é desmontado de qualquer jeito. Idempotente e sem supervisão.

Cinco timestamps, duas linhas de cron, um contêiner que vive sessenta e dois minutos. A noite roda sozinha, e você descobre que rodou lendo a nota de triagem de manhã.

use-cases / wake-agent-at-3am / powers

Por que esse formato de ciclo de vida funciona

Um worker sempre ligado é o formato errado para um job que roda uma vez por dia. No Hoody o substrato é de tarifa fixa — a vantagem não é cobrança por segundo, é sem pool aquecido, sem serviço scheduler, sem daemon de cola pra operar.

Ocioso não custa nada extra

O contêiner não existe entre execuções

Não há pool aquecido em memória. Nenhum serviço de 'tarefa agendada' segurando estado. A linha na tabela de contêineres se vai por vinte e três horas do dia. O servidor de tarifa fixa que você já aluga roda o trabalho; horas ociosas não geram um item de linha separado.

Sem item de linha por execução

A conta do servidor não muda

Hoody cobra a máquina, não o runtime. Um agente noturno de 60 minutos e um worker sempre ligado de 24/7 caem na mesma fatura de servidor de tarifa fixa. A vantagem não é 'pague apenas pelo que usa' — é não pagar duas vezes pelo overhead de pool aquecido que você não precisa.

Sem código de ciclo de vida

Duas linhas de cron, sem daemon de cola

Você não escreve uma Lambda de despertar, um worker 'sobe o contêiner' ou um watchdog que o aposenta. O hoody-cron faz POST. O hoody-containers sobe. O agente sai. Um segundo cron faz POST DELETE. Essa é toda a superfície.

use-cases / wake-agent-at-3am / economics

O custo de um agente ocioso

A maior parte das plataformas de agente mantém o worker aquecido vinte e quatro horas por dia pra ele estar pronto em menos de um segundo. Para um job em batch das 3h, esse é exatamente o tradeoff errado. Cold-spawn em alguns segundos está ótimo quando o agendamento é seu.

Agente sempre ligado24h × 30 dias
720h / mo

Um contêiner de agente sempre ligado, ou um assento em pool aquecido reservado pra um agente que roda uma vez por dia, fica vivo 720 horas por mês. 719 dessas horas, ele está fazendo nada.

Ocioso é o item da fatura em plataformas por segundo
Acordar e aposentar1h × 30 dias
30h / mo

Um contêiner de vida curta gerado por uma entrada de cron existe por uma hora por noite. Trinta horas por mês, no total. O processo do agente retorna 0 e a linha na tabela de contêineres se vai.

  • SEG02:59 → 04:0162m vivo
  • TER02:59 → 04:0060m vivo
  • QUA02:59 → 03:5858m vivo
  • QUI02:59 → 04:0061m vivo
  • SEX02:59 → 04:0060m vivo
  • SÁB02:59 → 03:5959m vivo
  • DOM02:59 → 04:0060m vivo
Conta do servidor inalterada

Hoody cobra o servidor, não o runtime. A coluna 'vivo' mostra quando o agente existiu cada noite — o mesmo servidor de tarifa fixa roda se está lá ou não. Preços começam em $29/mês e variam por especificação, região e duração do aluguel.

use-cases / wake-agent-at-3am / punchline

Um agente que existe só quando há trabalho pra ele fazer.

Horas vivas por dia1h02:59 → 04:01, depois sumiu
Mudança na conta do servidor0Tarifa fixa, vivo ou ocioso
Código de ciclo de vida que você escreve0Duas linhas de cron, sem daemon
Veja a API de spawn
use-cases / wake-agent-at-3am / replaces

O que isso substitui

Os padrões que pagam pra um agente existir 24/7. No Hoody, o agente roda dentro do servidor de tarifa fixa que você já aluga — sem pool aquecido, sem serviço scheduler, sem métrica por segundo.

  • Contêineres de agente sempre ligados23 horas ociosas, cobradas na taxa ativa
  • Warm-pools do AWS LambdaPague pra manter cold-starts longe do cron
  • Tarefas agendadas do Modal LabsRuntime fechado, cobrança opaca
  • Código customizado de ciclo warm-coldTrês semanas pra escrever, seis meses pra depurar
  • Polling em endpoints /spawnUm segundo cron cujo único trabalho é lançar o primeiro
  • Caixa de GPU da Hetzner sempre ligada$200/mês para uma inferência diária
use-cases / wake-agent-at-3am / cta

Um agente que existe só quando há trabalho pra ele fazer.

Leia a documentação
use-cases / wake-agent-at-3am / related

Leia os outros