Claude Platform Docs

SDK-Middleware

Fange Anfragen und Antworten in den Anthropic SDKs ab und modifiziere sie.

Die Anthropic SDKs bieten einen „middleware“ (Middleware)- bzw. „interceptor“ (Interceptor)-Hook, mit dem du Code ausführen kannst, bevor eine Anfrage gesendet wird und nachdem die Antwort empfangen wurde. Verwende Middleware für übergreifende Belange wie Logging, benutzerdefinierte Wiederholungsversuche, Anfrage-Annotation und die Fallback-Behandlung bei Ablehnungen.

Jede Middleware kann die Anfrage vor dem Aufruf von next() und die Antwort nach der Rückkehr von next() inspizieren oder ersetzen.

Middleware registrieren

Jede Middleware ist eine Funktion, die die ausgehende Anfrage und ein aufrufbares next erhält. Rufe next auf, um die Anfrage an den Rest der Kette weiterzuleiten (oder direkt an den SDK-Kern, falls dies die letzte Middleware ist), und gib dessen Antwort zurück. Alles vor dem next-Aufruf läuft auf dem Hinweg; alles danach läuft auf dem Rückweg.

def logging_middleware(request: APIRequest, call_next: CallNext) -> APIResponse[Any]:
    # Vor der Anfrage
    print(f"-> {request.method} {request.url}")

    # Leite die Anfrage an den Rest der Kette weiter
    response = call_next(request)

    # Nach der Anfrage
    print(f"<- {response.status_code}")

    return response


client = Anthropic(middleware=[logging_middleware])

Reihenfolge der Middleware

Wenn du mehrere Middlewares registrierst, werden sie in der angegebenen Reihenfolge angewendet: Der „Vorher“-Code der ersten Middleware läuft zuerst, und ihr „Nachher“-Code läuft zuletzt. Auf dem Client registrierte Middleware läuft vor Middleware, die als Option pro Anfrage übergeben wird.

Im Go SDK werden wiederholte option.WithMiddleware-Aufrufe verkettet (zuerst Client, dann Methode). In den anderen SDKs übergibst du ein Array; spätere Einträge umschließen die inneren.

Den HTTP-Client ersetzen

Jedes SDK akzeptiert außerdem einen benutzerdefinierten HTTP-Client (für Proxy-Konfiguration, benutzerdefiniertes TLS oder Connection-Pooling). Pro SDK-Client wird nur ein HTTP-Client verwendet; wenn du ihn setzt, ersetzt er den Standard. Der benutzerdefinierte HTTP-Client erhält Anfragen, nachdem alle Middlewares gelaufen sind.

Integrierte Middleware

Die SDKs liefern eine Refusal-Fallback-Middleware mit, die Anfragen, die Claude Fable 5 ablehnt, automatisch auf einem Fallback-Modell wiederholt. Siehe Erkennen und auf einem Fallback-Modell wiederholen für die Einrichtung und Beispiele pro Sprache.

Was this page helpful?