InvariantEval-Agenten-Skill
InvariantEval erzwingt die von dir deklarierten Invarianten. Es macht keinen Agenten "korrekt" und es schreibt keine Ausgabe für dich um. Die einzig ehrliche Behauptung: Dein Agent wendet deine deklarierten Sicherheitsregeln auf jede Ausgabe an und verweigert den Abschluss, wenn ein gesperrtes Feld ohne menschliche Bestätigung automatisch ausgefüllt wurde.
Wann dieses Skill verwenden
Verwende es vor dem Abschluss jeder strukturierten JSON- (oder ähnlichen) Ausgabe, wenn:
- Die Domäne deklarierte gesperrte Felder hat (bestanden/nicht bestanden, Compliance-Status usw.)
- Du eine
suite.yamlmitfield_policiesund Invarianten-Assertions hast (oder benötigst) - Ein Mensch bestimmte Felder besitzen soll und das Modell sie nicht eigenmächtig vorgeben darf
Verwende dieses Skill nicht, um Invarianten zu erraten. Deine Aufgabe ist es, das Deklarieren reibungslos zu gestalten, nicht sie abzuleiten.
Arbeitsablauf
1. Eine deklarierte Suite finden oder erstellen
- Eine vorhandene
suite.yamlim Projekt finden, oder suite.template.yamlins Projekt kopieren und den Benutzer bitten,field_policies,equivalence_classesundassertionsauszufüllen.
Erfinde niemals gesperrte Felder ohne Benutzerdeklaration in der Suite.
2. Die Invariantenprüfung vor dem Abschluss ausführen
Du hast die roh geparste Ausgabe des Modells und die beabsichtigte endgültige Ausgabe. Führe aus:
python agent-skill/invarianteval/check.py \
--suite pfad/zu/suite.yaml \
--case-id agent-check \
--model-parsed /tmp/model_parsed.json \
--final-output /tmp/final_output.json \
--human-confirmed /tmp/human_confirmed.json
Schreibe die JSON-Dateien aus dem aktuellen Durchlauf. --human-confirmed ist optional
(verwende {}, wenn nichts explizit bestätigt wurde).
Die Suite muss einen Fall mit der angegebenen --case-id (Standard: agent-check)
enthalten und die Assertions, die du erzwingen möchtest.
3. Wenn die Prüfung fehlschlägt: STOPP
- Schließe nicht ab, committe oder präsentiere die Ausgabe nicht als vollständig.
- Zeige den genauen Invariantenfehler aus der CLI-Ausgabe (z. B.
never_auto_filled[pass_fail_result]). - Fordere eine der folgenden Optionen:
- Der Benutzer bearbeitet die endgültige Ausgabe, um den Verstoß zu entfernen oder zu korrigieren, oder
- Der Benutzer bestätigt das Feld explizit (
human_confirmedin der Fixture), oder - Der Benutzer aktualisiert die deklarierte Suite, falls die Regel falsch war (selten).
4. Wenn die Prüfung bestanden wird: Fortfahren
Schließe nur nach Exit-Code 0 ab.
MCP-Alternative
Wenn die Umgebung die [mcp]-Erweiterung installiert hat, bevorzuge das
check_invariants MCP-Tool für die gleichen Eingaben. Siehe docs/mcp.md.
Ehrlicher Rahmen (erforderlich)
- Sage: "deklarierte Invarianten", "verweigert den Abschluss", "gesperrtes Feld automatisch ausgefüllt"
- Sage niemals: "selbstkorrigierend", "macht den Agenten korrekt", "Invarianten automatisch ableiten"