Zum Inhalt springen
use-cases / wake-agent-at-3am / hero
Cron · Agent · Containers

Einen Agent um 3 Uhr wecken, ihn um 4 Uhr verabschieden

Ein nächtlicher Job, der die gestrigen Billing-Exceptions scannt, Duplikate clustert und eine Triage-Notiz schreibt. Er muss nur etwa eine Stunde am Tag existieren. Zwei Cron-Einträge spinnen einen frischen Agent-Container um 02:59 hoch und reißen ihn um 04:01 ab. Die anderen 23 Stunden läuft er nicht, ist nicht warm, wird nicht abgerechnet.

Doku lesen
use-cases / wake-agent-at-3am / mechanism

Zwei Cron-Einträge, ein kurzlebiger Container

Es gibt keinen Warm Pool, keinen Scheduler-Service, keinen Glue-Daemon, der nach Arbeit pollt. Ein hoody-cron-Eintrag POSTet um 02:59 an die Spawn-URL von hoody-agent. Der Agent macht seinen Run und beendet sich. Ein zweiter Cron um 04:01 ruft DELETE, um sicher zu sein, dass der Container weg ist. Das ist die ganze Maschine.

POST cron.hoody.com/users/root/entries
Wake-Trigger · 02:59
// Cron-Eintrag, der einmal täglich feuert und den Spawn-Request POSTetPOST cron.hoody.com/users/root/entries{ schedule: "0 3 * * *", command: "curl -X POST $AGENT_URL -d @prompt.json", comment: "billing-reconcile · 3am wake"}
feuert um 02:59 →
POST api.hoody.com/api/v1/projects/$PID/containers
Agent spawnen · ai + hoody_kit
// Der Agent bootet, gleicht gestrige Rechnungen ab, schreibt Notizen, beendet sichPOST api.hoody.com/api/v1/projects/$PID/containers{ name: "billing-reconcile-$(date +%s)", ai: true, hoody_kit: true, autostart: false}
Container beendet sich, zweiter Cron feuert um 04:01 →
DELETE api.hoody.com/api/v1/containers/$CID
Teardown · 04:01
// Hosenträger und Gürtel: ein zweiter Cron stellt sicher, dass der Container weg istDELETE api.hoody.com/api/v1/containers/$CID// Antwort von hoody-containers200 OK · container deleted

Zwei Cron-Zeilen in einer Datenbank. Ein Agent-Image. Der Container existiert nur für die Arbeit, dann hört er auf zu existieren. Kein Warm Pool, kein Scheduled-Task-Primitiv, kein Lifecycle-Daemon, den du selbst betreiben musst.

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

Wie die Nacht tatsächlich aussieht

Fünf Momente. Der Agent lebt für die mittleren drei. Außerhalb dieser Stunde ist die Zeile in der Containers-Tabelle weg.

  1. 02:59Cron · wake

    Cron-Eintrag billing-reconcile-wake feuert. Er POSTet an api.hoody.com mit ai: true und hoody_kit: true. Ein frischer Container fährt mit sauberem Filesystem hoch und der Prompt des Agents ist geladen.

  2. 03:02Agent · read

    Der Agent liest die gestrige billing-exceptions-Tabelle über Hoody SQLite, joint sie gegen die erwarteten Rechnungen und clustert die Zeilen nach Reason-Code. Keine File-Share-Mounts. Nur URLs.

  3. 03:31Agent · write

    Er schreibt eine einzelne Triage-Notiz pro Cluster zurück an dieselbe SQLite-URL, dann verschickt er eine Notification mit der Tageszusammenfassung. Bisherige Wall-Time gesamt: etwa dreißig Minuten.

  4. 03:58Agent · exit

    Der Agent-Prozess returnt 0 und der Container beendet sich von allein. Hoody-containers markiert ihn als gestoppt. Ab dieser Sekunde läuft, wärmt und bezahlt nichts mehr für den Agent.

  5. 04:01Cron · retire

    Ein zweiter Cron-Eintrag feuert DELETE auf die Container-ID. Falls der Agent schon raus ist, ist es ein No-Op 200 OK. Falls er hängt, wird der Container trotzdem abgerissen. Idempotent und unbeaufsichtigt.

Fünf Timestamps, zwei Cron-Zeilen, ein Container, der zweiundsechzig Minuten lebt. Die Nacht läuft sich selbst, und du erfährst davon, indem du morgens die Triage-Notiz liest.

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

Warum diese Lifecycle-Form funktioniert

Ein Always-on-Worker ist die falsche Form für einen Job, der einmal am Tag läuft. Bei Hoody ist der Substrate Pauschalpreis — der Gewinn ist nicht Pro-Sekunden-Abrechnung, sondern kein Warm Pool, kein Scheduler-Service, kein Glue-Daemon zum Betreiben.

Idle kostet nichts extra

Der Container existiert zwischen den Runs nicht

Es gibt keinen Warm Pool, der im Speicher sitzt. Keinen 'Scheduled Task'-Service, der Zustand hält. Die Zeile in der Containers-Tabelle ist 23 Stunden am Tag weg. Der Pauschalserver, den du eh schon mietest, führt die Arbeit aus; Idle-Stunden erzeugen keine separate Rechnungsposition.

Kein Posten pro Durchlauf

Die Serverrechnung ändert sich nicht

Hoody rechnet die Box ab, nicht die Runtime. Ein 60-minütiger nächtlicher Agent und ein 24/7-Always-on-Worker landen auf derselben Pauschal-Serverrechnung. Der Gewinn ist nicht 'zahle nur für das, was du nutzt' — es ist nicht doppelt zahlen für Warm-Pool-Overhead, den du nicht brauchst.

Kein Lifecycle-Code

Zwei Cron-Zeilen, kein Glue-Daemon

Du schreibst keine Wake-up-Lambda, keinen 'Container-hochfahren'-Worker, keinen Watchdog, der ihn verabschiedet. Hoody-cron POSTet. Hoody-containers spawnt. Der Agent beendet sich. Ein zweiter Cron POSTet DELETE. Das ist die gesamte Surface-Area.

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

Die Kosten eines idle Agents

Die meisten Agent-Plattformen halten den Worker vierundzwanzig Stunden warm, damit er in unter einer Sekunde bereit ist. Für einen 3-Uhr-Batch-Job ist das genau der falsche Trade-off. Cold-Spawn in wenigen Sekunden ist okay, wenn dir der Schedule gehört.

Always-on-Agent24h × 30 Tage
720h / mo

Ein Always-on-Agent-Container — oder ein Warm-Pool-Slot, der für einen Agent reserviert ist, der einmal am Tag läuft — lebt 720 Stunden im Monat. 719 dieser Stunden tut er nichts.

Idle ist der Posten auf Pro-Sekunden-Plattformen
Wake-and-retire1h × 30 Tage
30h / mo

Ein kurzlebiger Container, von einem Cron-Eintrag gespawnt, existiert eine Stunde pro Nacht. Dreißig Stunden im Monat, gesamt. Der Agent-Prozess returnt 0, und die Zeile in der Containers-Tabelle ist weg.

  • MO02:59 → 04:0162m lebt
  • DI02:59 → 04:0060m lebt
  • MI02:59 → 03:5858m lebt
  • DO02:59 → 04:0061m lebt
  • FR02:59 → 04:0060m lebt
  • SA02:59 → 03:5959m lebt
  • SO02:59 → 04:0060m lebt
Serverrechnung unverändert

Hoody rechnet den Server ab, nicht die Runtime. Die Spalte 'lebt' zeigt, wann der Agent jede Nacht existiert — derselbe Pauschalserver läuft, ob der Agent da ist oder nicht. Die Preise starten bei $29/Monat und variieren je nach Spezifikation, Region und Vertragsdauer.

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

Ein Agent, der nur existiert, wenn es Arbeit für ihn gibt.

Stunden lebendig pro Tag1h02:59 → 04:01, danach weg
Serverrechnung-Änderung0Pauschalpreis, lebt oder idle
Lifecycle-Code, den du schreibst0Zwei Cron-Zeilen, kein Daemon
Spawn-API ansehen
use-cases / wake-agent-at-3am / replaces

Was das ersetzt

Die Muster, die dafür zahlen, dass ein Agent rund um die Uhr existiert. Bei Hoody läuft der Agent im Pauschalserver, den du eh schon mietest — kein Warm Pool, kein Scheduler-Service, kein Pro-Sekunden-Meter.

  • Always-on-Agent-Container23 idle Stunden, abgerechnet zum Aktiv-Tarif
  • AWS Lambda Warm-PoolsBezahlen, um Cold-Starts vom Cron fernzuhalten
  • Modal Labs Scheduled TasksGeschlossene Runtime, intransparente Abrechnung
  • Custom Warm-Cold-Lifecycle-CodeDrei Wochen zu schreiben, sechs Monate zu debuggen
  • Polling-/spawn-EndpointsEin zweiter Cron, dessen einziger Zweck es ist, den ersten zu starten
  • Hetzner-GPU-Box, die immer läuft$200/Monat für eine tägliche Inferenz
use-cases / wake-agent-at-3am / cta

Ein Agent, der nur existiert, wenn es Arbeit für ihn gibt.

Doku lesen
use-cases / wake-agent-at-3am / related

Lies die anderen