AI Agents · Lektion

Reparaturschleifen für fehlerhafte Ausgaben

Wenn sich das JSON nicht parsen lässt, senden Sie den Fehler an das Modell zurück und bitten Sie es, die Ausgabe zu korrigieren.

Lektion 3 von 415 Schritte

Reparaturschleifen für fehlerhafte Ausgaben ist eine kostenlose AI Agents-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des AI Agents-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Selbst Strict-Modi schlagen manchmal fehl

Ältere Modelle, Randfälle oder Anbieter ohne Strict-Modus geben gelegentlich fehlerhaftes JSON zurück. Robuste Agenten beheben dies, indem sie das Modell auffordern, seine Ausgabe zu reparieren.

Basic Repair Loop

from pydantic import ValidationError
import json

def call_with_repair(messages, schema, max_attempts=3):
    for attempt in range(max_attempts):
        response = client.chat.completions.create(
            model='gpt-4o-mini',
            messages=messages,
            response_format={'type': 'json_object'}
        )
        raw = response.choices[0].message.content
        try:
            return schema.model_validate_json(raw)
        except (json.JSONDecodeError, ValidationError) as e:
            messages.append({'role': 'assistant', 'content': raw})
            messages.append({
                'role': 'user',
                'content': f'That output failed to validate: {e}.\nReturn ONLY valid JSON that matches the schema. No prose, no markdown fences.'
            })
    raise RuntimeError('Could not get valid output after repair attempts.')

Warum das funktioniert

Das Modell sieht die Fehlermeldung und korrigiert den Fehler normalerweise im nächsten Turn. Fügen Sie ausdrückliche Anweisungen hinzu:

  • "Kein Fließtext"
  • "Keine Markdown-Zäune"
  • "Halten Sie exakt diese Struktur ein: ..."

Markdown-Zäune entfernen

Modelle schließen JSON häufig in ```json ... ``` ein. Entfernen Sie diese Zeichen vor dem Parsen:

import re

def extract_json(text):
    m = re.search(r'```(?:json)?\s*(.*?)```', text, re.S)
    if m:
        return m.group(1).strip()
    return text.strip()

sample = '```json\n{"name": "Alice"}\n```'
print(extract_json(sample))

Ausschneiden ab der ersten Klammer

Wenn zusätzlicher Fließtext vorhanden ist, schneiden Sie ab dem ersten { bis zur letzten passenden } aus:

def find_json_slice(text):
    start = text.find('{')
    if start == -1:
        return None
    depth = 0
    for i, c in enumerate(text[start:], start):
        if c == '{': depth += 1
        if c == '}':
            depth -= 1
            if depth == 0:
                return text[start:i+1]
    return None

sample = 'Here is your answer: {"name": "Alice", "age": 30} - hope that helps!'
print(find_json_slice(sample))

Tools, die das für Sie erledigen

  • Instructor – kombiniert Pydantic, Reparaturschleifen und Wiederholungsversuche
  • Outlines – garantiert strukturierte Ausgaben durch gesteuerte Dekodierung
  • jsonformer – erzwingt JSON Token für Token (HF-Modelle)

Funktionierende Reparatur-Prompts

Fügen Sie die konkrete Fehlermeldung und eine kurze Erinnerung an das Format ein:

repair_prompt = f'''
Your previous output had this error: {error}

Fix the output. Requirements:
- Valid JSON only
- Match this schema: {json.dumps(schema)}
- No prose, no markdown fences
'''

Kosten von Reparaturschleifen

Jede Reparatur ist ein weiterer LLM-Aufruf. Begrenzen Sie die Wiederholungsversuche (2–3 sind ausreichend – darüber hinaus wird sich das Modell wahrscheinlich nicht mehr erholen) und protokollieren Sie die Reparaturrate als Qualitätskennzahl.

Reparaturen als Qualitätssignal

Wenn Ihre Reparaturrate über 5 % liegt, stimmt etwas nicht: Der Prompt ist unklar, das Schema zu komplex oder das Modell zu klein. Untersuchen Sie die Ursache.

Alternative: Gesteuerte Dekodierung

Open-Source-Modelle unterstützen eine grammatikbeschränkte Dekodierung – das Modell kann überhaupt keine ungültige Ausgabe erzeugen. Outlines, jsonformer und die Grammatiken von llama.cpp verwenden dieses Verfahren.

Alternative: Funktionen statt Schema

Einen Tool-Aufruf mit dem Strict-Modus zu erzwingen, ist eine sauberere Alternative zu JSON-Modus plus Reparatur. Verwenden Sie dies, wann immer der Anbieter es unterstützt.

Fehlerhafte Ausgaben protokollieren

Protokollieren Sie jede reparierte Ausgabe, damit Sie Muster analysieren können:

log.warning('Repaired output', extra={'raw': raw, 'error': str(e), 'attempt': attempt})

Wann Sie aufgeben sollten

Wenn die Ausgabe nach N Reparaturversuchen immer noch ungültig ist, geben Sie einen Fehler an den Benutzer zurück – halluzinieren Sie keinen Ersatzwert. Ein ehrlicher Fehler ist besser als eine unbemerkte Verfälschung.

Muster einer Reparaturschleife

Was ist der einfachste erste Schritt in einer Reparaturschleife?

Zusammenfassung

Erkennen Sie Parse-Fehler, hängen Sie sie als Tool- oder User-Nachricht an und bitten Sie das Modell um eine Reparatur. Begrenzen Sie die Wiederholungsversuche. Bevorzugen Sie Tool-Aufrufe im Strict-Modus, um den Reparaturbedarf vollständig zu vermeiden.

Kostenlos starten

Lerne AI Agents mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
60
Lektionen
239

Häufig gestellte Fragen

Ist die Lektion „Reparaturschleifen für fehlerhafte Ausgaben“ kostenlos?

Ja — der vollständige Text von „Reparaturschleifen für fehlerhafte Ausgaben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des AI Agents-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der AI Agents-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Reparaturschleifen für fehlerhafte Ausgaben“?

Wenn sich das JSON nicht parsen lässt, senden Sie den Fehler an das Modell zurück und bitten Sie es, die Ausgabe zu korrigieren. Du übst AI Agents mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um AI Agents zu starten?

Keine Vorkenntnisse erforderlich. AI Agents auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Reparaturschleifen für fehlerhafte Ausgaben“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser AI Agents-Lektion Code schreiben und ausführen?

Ja. Jede AI Agents-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. JSON-Modus und Tool-Call-Ausgaben
  2. Pydantic-Schema-Validierung
  3. Reparaturschleifen für fehlerhafte Ausgaben
  4. Instructor / Outlines für garantierte Strukturen
← Zurück zu AI Agents