GEODE
Autonomous Agent Harness
Von der Beobachtung zur nächsten Handlung.
Ein lokales Harness für autonome Agenten, dem sich Recherche, Dateiarbeit und geplante Aufgaben übergeben lassen.
Der Stoppvorschlag des Modells wird erst durch Verifikation zum Abschluss.
Bei einem auslieferbaren Stopp durchläuft ein Modell, das stoppen will, trotzdem die Abschlussverifikation. Das Ergebnis lautet erledigt, Fortsetzung im Budget oder Warten auf Review; Ausführungslimits, Abbruch und Fehler enden in einem eigenen gestoppten Zustand.
Verifikation → Abschluss
Nur ein auslieferbarer Stopp durchläuft PreVerify → Urteil → PostVerify → Stop. Weder der Stoppvorschlag des Modells noch eine Hook-Anweisung ist für sich ein Abschluss.
arun · Modell-Turn
loop/agent_loop.pyDaten: Stoppvorschlagauslieferbarer Stopp · natural usw.loop/_guards.py · models.pyAntwortet das Modell mit Text ohne Tool-Aufruf, wird der Turn zum Stoppkandidaten natural (forced_text in der letzten erlaubten Runde). Der Stoppvorschlag eines Modells ist noch kein Abschluss.
auslieferbarer Stopp · natural usw.
loop/_guards.py · models.pyDaten: Abschlusskandidatfinalize_and_return_asyncloop/_lifecycle.pyNur natural, forced_text und actionable_partial sind auslieferbare Stopps, und nur sie gehen weiter zur öffentlichen Verifikation.
finalize_and_return_async
loop/_lifecycle.pyAusführen · Entscheiden: PreVerifyPreVerify · STRENGTHENcore/hooks/public.pyMit STRENGTHEN kann der PreVerify-Hook nur Anforderungen und Miss-Codes hinzufügen. Er kann das Urteil verschärfen, es aber nie bestehen lassen.
finalize_and_return_async
loop/_lifecycle.pyAusführen · Entscheiden: verify_turn_asyncStrukturprüfung · empty_turncore/agent/verify.pyZuerst kommt eine Strukturprüfung (leerer Turn, model_action_required); ein nicht nachbesserbarer Strukturfehler überspringt das semantische Urteil. Alte Einstellungen wie off oder rule_based werden zu llm_judge aufgelöst und können das Urteil nicht abschalten.
semantisches Urteil · LLM oder Jev
core/agent/verify.pyDaten: UrteilsanfrageBewertungsmodellDie gewählte Bewertungsinstanz (standardmäßig LLM judge, Jev Choice bei Auswahl) wird einmal aufgerufen, ohne Tools, für höchstens 120 Sekunden und nie über das verbleibende Zeitbudget hinaus. Ein Kandidat, der persönliche Beobachtungen enthalten kann, wird nicht an eine Hilfs-Bewertungsinstanz gesendet.
semantisches Urteil · LLM oder Jev
core/agent/verify.pyDaten: passed · rubric_missespolicy_action · Lesen des Urteilsloop/_lifecycle.pyDas Urteil enthält Bestehen oder Nichtbestehen, Miss-Codes, eine reflection für den nächsten Versuch und ob eine Wiederholung sinnvoll ist. Ein semantisches Bestehen überdeckt nie eine fehlgeschlagene Strukturprüfung.
policy_action · Lesen des Urteils
loop/_lifecycle.pyAusführen · Entscheiden: PostVerify-EntscheidungPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyDer PostVerify-Hook entscheidet zwischen ACCEPT, REVISE und ESCALATE. Ein ACCEPT für einen Kandidaten, der die Verifikation nicht bestanden hat, wird zu escalate. Ohne Entscheidung gilt der Runtime-Standard (Bestehen → accept, wiederholbar → revise, sonst escalate).
policy_action · Lesen des Urteils
loop/_lifecycle.pyAusführen · Entscheiden: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyNur wenn nicht eskaliert wird, kann die CONTINUE-Anweisung des Stop-Hooks eine Fortsetzung zur Nachbesserung verlangen. Eine Hook-Anweisung ist Eingabe für den nächsten Versuch, keine Befugnis.
policy_action · Lesen des Urteils
loop/_lifecycle.pyDaten: completed · gespeichertCheckpoint · Session-Zustandmemory · observabilityBei Bestehen und accept werden fortgesetzte Versuche zusammengeführt, das Ergebnis wird gespeichert und die Session als completed aufgezeichnet.
finalize_and_return_async
loop/_lifecycle.pyDaten: AntwortIPC · CLI-AufruferGibt bei Abschluss die endgültige Antwort zurück, beim Warten auf Review eine leere Antwort mit EXTERNAL_VERIFICATION_REQUIRED und bei einem Stopp ohne Verifikation den Stoppgrund.
Nachbesserung im Budget
Ein nachbesserbarer Fehlschlag setzt dieselbe Anfrage fort. Das Standardbudget beträgt zwei Versuche; ist es aufgebraucht, wartet der Kandidat auf Review.
semantisches Urteil · LLM oder Jev
core/agent/verify.pyDaten: passed · rubric_missespolicy_action · Lesen des Urteilsloop/_lifecycle.pyDas Urteil enthält Bestehen oder Nichtbestehen, Miss-Codes, eine reflection für den nächsten Versuch und ob eine Wiederholung sinnvoll ist. Ein semantisches Bestehen überdeckt nie eine fehlgeschlagene Strukturprüfung.
policy_action · Lesen des Urteils
loop/_lifecycle.pyAusführen · Entscheiden: PostVerify-EntscheidungPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyDer PostVerify-Hook entscheidet zwischen ACCEPT, REVISE und ESCALATE. Ein ACCEPT für einen Kandidaten, der die Verifikation nicht bestanden hat, wird zu escalate. Ohne Entscheidung gilt der Runtime-Standard (Bestehen → accept, wiederholbar → revise, sonst escalate).
policy_action · Lesen des Urteils
loop/_lifecycle.pyAusführen · Entscheiden: Stop · CONTINUEStop · CONTINUEcore/hooks/public.pyNur wenn nicht eskaliert wird, kann die CONTINUE-Anweisung des Stop-Hooks eine Fortsetzung zur Nachbesserung verlangen. Eine Hook-Anweisung ist Eingabe für den nächsten Versuch, keine Befugnis.
continuation-Budget · Standard 2
loop/_lifecycle.pyAusführen · Entscheiden: Nachbesserung · Versuch +1_arun_once · Fortsetzung zur Nachbesserungloop/agent_loop.pyNur mit einer Nachbesserungsanweisung und solange die Versuchsnummer unter dem Budget liegt (standardmäßig zwei), wird dieselbe Anfrage fortgesetzt. Ist das Budget erreicht, wird daraus escalate_budget_exhausted mit Warten auf Review.
Warten auf Review
Ein unbrauchbares Urteil, der Versuch, einen Fehlschlag in ein Bestehen umzuwandeln, oder ein aufgebrauchtes Budget hält den Kandidaten zurück und pausiert die Session.
verification_error · schlägt geschlossen fehl
core/agent/verify.pyFehlschlag · kein Urteil: verification_errorpolicy_action · Lesen des Urteilsloop/_lifecycle.pyEine fehlende Bewertungsinstanz, ein Timeout oder eine ungültige Antwort wird zu verification_error: weder Bestehen noch Nachbesserungssignal. Ein unbrauchbares Urteil ersetzt nie einen Erfolg.
policy_action · Lesen des Urteils
loop/_lifecycle.pyAusführen · Entscheiden: PostVerify-EntscheidungPostVerify · ACCEPT · REVISE · ESCALATEcore/hooks/public.pyDer PostVerify-Hook entscheidet zwischen ACCEPT, REVISE und ESCALATE. Ein ACCEPT für einen Kandidaten, der die Verifikation nicht bestanden hat, wird zu escalate. Ohne Entscheidung gilt der Runtime-Standard (Bestehen → accept, wiederholbar → revise, sonst escalate).
policy_action · Lesen des Urteils
loop/_lifecycle.pyAusführen · Entscheiden: ESCALATE · pendingExterner ReviewerDer Kandidat bleibt als pending_text erhalten und wird gewöhnlichen Antworten vorenthalten, der Checkpoint wird gespeichert und die Session pausiert. Kein externer Reviewer wird automatisch kontaktiert.
policy_action · Lesen des Urteils
loop/_lifecycle.pyAufzeichnen · Beobachten: Urteil · BelegzeilenTimeline · ledger-Entscheidungszeilenmemory · observabilityDie Timeline erhält Entscheidungs-, Beleg- und pending-Zeilen, der evidence ledger eine verification_policy-Zeile. Das sind best-effort-Aufzeichnungen, kein Beweis für einen äußeren Effekt.
Stopps ohne Verifikation
Stopps durch Abbruch, Limit und Infrastruktur sowie Läufe von control workflows werden ohne öffentliche Verifikation gespeichert.
arun · Modell-Turn
loop/agent_loop.pyAusführen · Entscheiden: Guards · LimitsStopp durch Fehlschlag · Limit · Abbruchloop/_guards.py · models.pyGuards wie Runden-, Zeit-, Kosten- und Kontextlimits, Abbruch und die Erkennung wiederholter Fehlschläge beenden den Turn mit einem Element der geschlossenen Menge TerminationReason. Ein in der Konfiguration deaktiviertes Limit wird nicht immer durchgesetzt.
Stopp durch Fehlschlag · Limit · Abbruch
loop/_guards.py · models.pyFehlschlag · kein Urteil: Stopp durch Fehlschlag · Abbruchfinalize_and_return_asyncloop/_lifecycle.pyStopps durch Abbruch, Infrastruktur und Limits haben keinen zu verifizierenden Kandidaten und werden daher ohne öffentliche Verifikation gespeichert.
control workflow · öffentliche Verifikation auslassen
ipc_server/poller.pyAusführen · Entscheiden: öffentliche Verifikation auslassenfinalize_and_return_asyncloop/_lifecycle.pyVerlangt ein IPC-Aufruf, die öffentliche Verifikation auszulassen, oder ist ein control workflow aktiv, ist die öffentliche Verifikation nur für diesen Lauf aus; danach wird der vorherige Wert wiederhergestellt.
finalize_and_return_async
loop/_lifecycle.pyDaten: nur speichern · keine VerifikationCheckpoint · Session-Zustandmemory · observabilityAuch ein Stopp ohne Verifikation speichert sein Ergebnis und den Checkpoint und sendet die Events zum Session-Ende.
finalize_and_return_async
loop/_lifecycle.pyDaten: AntwortIPC · CLI-AufruferGibt bei Abschluss die endgültige Antwort zurück, beim Warten auf Review eine leere Antwort mit EXTERNAL_VERIFICATION_REQUIRED und bei einem Stopp ohne Verifikation den Stoppgrund.
Alle Verbindungen in gleicher Stärke. Wird ein Ablauf gewählt, ist nur sein Pfad hervorgehoben, mit nummerierten Schritten.
- Durchgezogen · Richtung, in die Anfragen, Kandidaten und Ergebnisse fließen
- Gestrichelt · ausführen, entscheiden, autorisieren, konfigurieren
- Lang strichpunktiert · Aufzeichnungen und Beobachtung, getrennt vom Urteil
- Kurz gestrichelt · ein Fehlschlag oder ein unbrauchbares Urteil
- Dicke schwarze Linie · der gewählte Ablauf; Nummern geben die Reihenfolge an
- Kasten · eine Code- oder Aufzeichnungsgrenze, Pfad in der Kopfzeile
- Innerer Chip · eine Komponente in dieser Grenze
- Gestrichelter Kasten · außerhalb dieser Grenze
- Schleife · finalization
- Stopps · Hooks · Urteil
- Speichern · Aufzeichnungen
- IPC-Einstieg
Gezeichnet sind nur Aufrufpfade im fixierten Commit 9e2c041. Ein Bestehen beim Bewertungsmodell ist vom Erfolg eines externen Benchmark-Verifiers getrennt; Abschluss ist hier eine Entscheidung innerhalb der Runtime.
- Urteilsengine
- Standard ist der LLM judge; Jev Choice urteilt nur, wenn judgment_engine auf jev gesetzt ist. In beiden Fällen ergibt eine unbrauchbare Bewertungsinstanz verification_error, nie einen Erfolg.
- Was Hooks dürfen
- PreVerify kann das Urteil nur verschärfen, PostVerify kann keinen gescheiterten Kandidaten bestehen lassen, und Stop kann nur dann eine Fortsetzung verlangen, wenn nicht eskaliert wird.
- Warten auf Review
- Warten auf Review hält fest, dass eine Entscheidung von außen nötig ist. Es benachrichtigt niemanden und bedeutet nicht, dass das Ergebnis freigegeben wurde.