Timeouts und Circuit Breaker
Begrenzen Sie LLM- und Tool-Aufrufe mit strikten Timeouts und verwenden Sie Circuit Breaker, damit eine fehlerhafte Abhängigkeit nicht weiter überlastet wird.
Timeouts und Circuit Breaker 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.
Jeden externen Aufruf begrenzen
Jeder Netzwerkaufruf muss ein Timeout haben. Ohne Timeout kann eine hängende Verbindung den gesamten Agenten einfrieren.
HTTP Timeouts
import requests
response = requests.get(url, timeout=(3, 10)) # 3s connect, 10s readLLM Timeouts
from openai import OpenAI
client = OpenAI(timeout=30.0)
# Or per call:
response = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
timeout=30.0
)Realistische Timeouts wählen
Messen Sie die reale p99-Latenz und addieren Sie 25 %. Wenn Sie timeout = 3 s setzen, obwohl p99 bei 4 s liegt, verursachen Sie ständig fälschliche Fehler.
Gesamtes Agenten-Timeout
Umschließen Sie die gesamte Agentenausführung mit einer Deadline:
import asyncio
async def run_agent_with_deadline(query, deadline_s=60):
try:
return await asyncio.wait_for(run_agent(query), timeout=deadline_s)
except asyncio.TimeoutError:
return 'Sorry, this is taking too long. Please try again.'Was ist ein Circuit Breaker?
Muster: Wenn ein nachgelagerter Dienst ausfällt, „öffnen“ Sie den Circuit — rufen Sie ihn eine Weile nicht mehr auf. Nach einer Abkühlphase erfolgt die Wiederherstellung automatisch.
Zustände: CLOSED (normal) -> OPEN (Fehler sofort melden) -> HALF_OPEN (Testaufruf) -> CLOSED (wiederhergestellt).
Implementing with pybreaker
# pip install pybreaker
import pybreaker
breaker = pybreaker.CircuitBreaker(fail_max=5, reset_timeout=60)
@breaker
def fragile_call():
return requests.get(url, timeout=5).json()Nach 5 Fehlern
Sobald fail_max Fehler hintereinander aufgetreten sind, öffnet sich der Circuit Breaker. Alle folgenden Aufrufe schlagen für reset_timeout Sekunden sofort fehl — so vermeiden Sie, einen ausgefallenen Dienst weiter zu überlasten.
Sinnvolle Fallbacks zurückgeben
Wenn der Circuit geöffnet ist, geben Sie einen kontrollierten Fallback zurück, anstatt den Agenten abstürzen zu lassen:
try:
result = fragile_call()
except pybreaker.CircuitBreakerError:
result = {'error': 'service-unavailable', 'fallback': 'cached or stale data'}Circuit Breaker pro Tool
Jede externe Abhängigkeit sollte einen eigenen Circuit Breaker haben — ein fehlerhafter Dienst darf Aufrufe an einen gesunden Dienst nicht beeinträchtigen.
Bulkheads
Begrenzen Sie mit einem Semaphore die Anzahl gleichzeitiger Aufrufe für ein einzelnes Tool — so kann eine langsame Abhängigkeit nicht alle Worker aufbrauchen:
from asyncio import Semaphore
search_sem = Semaphore(10)
async def search(query):
async with search_sem:
return await tavily_search(query)Gesundheitsprüfungen
Rufen Sie jedes Tool regelmäßig auf, um Probleme zu erkennen, bevor die Benutzer sie bemerken:
async def health_check():
for tool in [tavily, openai, vector_db]:
try:
await tool.ping()
except Exception as e:
alert(f'{tool.name} unhealthy: {e}')Status für Benutzer sichtbar machen
Wenn ein kritisches Tool nicht verfügbar ist, teilen Sie dem Benutzer Folgendes mit:
if tavily_breaker.current_state == 'open':
return 'Web search is temporarily unavailable.'Warum Circuit Breaker?
Warum sollten Sie bei einem fehleranfälligen externen Dienst einen Circuit Breaker verwenden?
Zusammenfassung
Timeouts für jeden Aufruf. Circuit Breaker pro Tool. Bulkheads für Nebenläufigkeit. Gesundheitsprüfungen. Kontrollierte Fallback-Nachrichten.
Häufig gestellte Fragen
Ist die Lektion „Timeouts und Circuit Breaker“ kostenlos?
Ja — der vollständige Text von „Timeouts und Circuit Breaker“ 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 „Timeouts und Circuit Breaker“?
Begrenzen Sie LLM- und Tool-Aufrufe mit strikten Timeouts und verwenden Sie Circuit Breaker, damit eine fehlerhafte Abhängigkeit nicht weiter überlastet wird. 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 „Timeouts und Circuit Breaker“?
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
- Idempotente Tools und Seiteneffekte
- Wiederholungen mit exponentiellem Backoff
- Timeouts und Circuit Breaker
- Tool-Ausgaben validieren (Pydantic)