Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
3.3 KiB
Info-Board Neu - Player-Agent Lifecycle und Health-Modell
Ziel
Dieses Dokument beschreibt die erste belastbare Laufzeitstufe des player/agent fuer v1.
Es legt fest, wie der Agent seinen internen Zustand fuehrt, welche strukturierten Log-Ereignisse er ausgibt und wie ein kontrollierter Stop funktioniert.
V1-Entscheidung
- der Agent fuehrt zunaechst ein internes Health-Modell ohne externen HTTP-Endpunkt
- Lifecycle-Wechsel werden ueber einen in-memory Snapshot verfolgt
- Server-Erreichbarkeit wird getrennt vom Lifecycle als eigener Connectivity-Zustand gefuehrt
- Logs werden als stabile
key=value-Ereignisse ausgegeben - Stop erfolgt signalgesteuert ueber
SIGINToderSIGTERM
Health-Snapshot
Der Laufzeitsnapshot enthaelt mindestens:
statusserver_connectivityscreen_idserver_base_urlmqtt_brokerheartbeat_every_secondsstarted_atlast_heartbeat_at
Der Snapshot dient in v1 der internen Laufzeitbeobachtung und Testsicherheit.
Statusmodell
Fuer die aktuelle Ausbaustufe gelten diese Stati:
startingvor dem Start der Run-Looprunningsobald Konfiguration uebernommen und der erste Heartbeat verarbeitet wurdestoppednach kontrolliertem Verlassen der Run-Loop
Ein separater Fehlerstatus wird in dieser Stufe noch nicht eingefuehrt. Technische Startfehler bleiben weiterhin normale Rueckgabefehler beim Initialisieren oder Starten.
Connectivity-Modell
Getrennt vom Lifecycle fuehrt der Agent fuer die Server-Erreichbarkeit aktuell diese Zustaende:
unknownvor dem ersten erfolgreichen oder fehlgeschlagenen Status-Reportonlinenach einem erfolgreich bestaetigten HTTP-Status-Reportdegradednach einem fehlgeschlagenen HTTP-Status-Report
Damit bleibt der Lifecycle sauber von Netz- und Gegenstellenproblemen getrennt. Ein Report-Fehler stoppt den Agenten nicht, sondern veraendert nur den Connectivity-Zustand.
Strukturierte Log-Ereignisse
Der Agent emittiert in v1 mindestens diese Ereignisse:
event=agent_startingevent=agent_configuredevent=heartbeat_tickevent=status_report_sentevent=status_report_failedevent=agent_stopped
Ziel ist keine vollstaendige Logging-Plattform, sondern ein stabiler, maschinenlesbarer Anfang fuer lokale Verifikation, spaetere Journald-Auswertung und Device-Debugging.
Heartbeat-Verhalten
- beim Start wird direkt ein erster Heartbeat verarbeitet und geloggt
- danach laeuft der Heartbeat im konfigurierten Intervall weiter
- jeder Heartbeat aktualisiert
last_heartbeat_at
Das direkte erste Tick-Verhalten vereinfacht lokale Checks und Tests, weil ein frisch gestarteter Agent sofort einen nachvollziehbaren Lebensnachweis liefert.
Shutdown-Verhalten
cmd/agenterstellt einen signalgebundenen Context- bei
SIGINToderSIGTERMverlaesst die Run-Loop kontrolliert den Ticker - vor Rueckkehr wird
event=agent_stoppedgeloggt und der Snapshot aufstoppedgesetzt
V1-Abgrenzung
Nicht Teil dieser Stufe:
- externer Health-Endpunkt
- MQTT-Verbindungsstatus
- Snapshot-Persistenz
- Kommandos oder Sync-Status
Die erste Backend-Reachability-Pruefung ist in dieser Stufe bereits ueber den HTTP-Status-Report abgebildet.
Ein expliziter offline-Zustand, MQTT-Reachability und weitergehende Schwellenlogik folgen spaeter.
Diese Punkte folgen erst, wenn echte Netzwerk- und Sync-Funktionalitaet eingebaut wird.