70aedcacd7
Zwei verwandte aber unterschiedliche Recovery-Pattern: - self-correction: Backend liefert strukturierte errors[] (z.B. atomic_validate_crossword_grid mit Frame-Konflikt-Hinweis), LLM korrigiert gezielt. Max 4 Versuche, dann vereinfachen. "Server denkt"- Pattern, wiederverwendbar fuer kommende validierte Builder. - error-recovery: Tool wirft unstrukturierten Error (HTTP, FK-Verletzung, Timeout). LLM variiert Input, max 3 Versuche, dann ehrlich abbrechen. Beide Pattern koennen parallel in derselben Persona aktiv sein — self-correction beim Validate-Loop, error-recovery bei allen anderen Tools. Die Module sind explizit gegeneinander abgegrenzt (Vergleichstabelle in error-recovery.md). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
module_id, version, description, max_tokens, applies_to, related_pattern, sources, extracted_at, extracted_by
| module_id | version | description | max_tokens | applies_to | related_pattern | sources | extracted_at | extracted_by | |||
|---|---|---|---|---|---|---|---|---|---|---|---|
| workflows/self-correction | 0.1.0 | Validate-Loop-Pattern — Backend liefert strukturierte Fehler, LLM korrigiert. | 200 |
|
Server denkt — Backend validiert, Frontend rendert. |
|
2026-06-02 | phase-M3 |
Self-Correction Loop
Wenn dir ein Backend-Tool eine strukturierte Validation anbietet
(z.B. atomic_validate_crossword_grid mit { ok: false, errors: [...] }),
ist dein Arbeits-Pattern:
Ablauf
- Vorschlag bauen. Konstruiere deinen ersten Versuch (z.B. ein Wort-Grid).
- Validieren. Rufe das Validation-Tool mit deinem Vorschlag.
- Bei
ok=false: lieserrors[]genau. Jeder Eintrag erklaert konkret was schiefging (Frame-Konflikt, Connected-Component-Verletzung, Bounds-Verstoss, Parallel-Beruehrung ohne Kreuzung, ...). Korrigiere basierend auf den Errors — nicht raten, nicht erfinden, sondern den konkreten Fehler beheben. - Erneut validieren. Schritt 2 + 3 wiederholen.
Hard Limit: max 4 Versuche
- Bei drittem Fehlschlag: vereinfache (weniger Elemente, kleinere Dimension).
- Bei viertem Fehlschlag: brich ab. Sag ehrlich was nicht ging
(siehe
base/constraints.md). Lieber ein ehrlicher Abbruch als ein verkorkstes Ergebnis.
Warum "Server denkt"
Das Backend kennt die Constraints (Grid-Topologie, Wort-Kollisionen, mathematische Gueltigkeit) verlaesslicher als das LLM sie erraten kann. Lass das Backend pruefen — deine Rolle ist Kreativitaet (Wort-Wahl, thematische Stimmigkeit), nicht Mathematik.
ok=true → uebernimm die zurueckgegebenen Daten (z.B. cells[] beim Kreuzwort)
direkt fuer die folgenden Bau-Tool-Calls. Nicht nochmal selbst rechnen.