Claude Platform Docs
CLI, SDKs y bibliotecasSDKs de cliente

Middleware del SDK

Intercepta y modifica solicitudes y respuestas en los SDKs de Anthropic.

Los SDKs de Anthropic proporcionan un hook de "middleware" (software intermedio), o interceptor, que te permite ejecutar código antes de que se envíe una solicitud y después de que se reciba la respuesta. Usa middleware para aspectos transversales como el registro de logs, reintentos personalizados, anotación de solicitudes y manejo de respaldo ante rechazos.

Cada middleware puede inspeccionar o reemplazar la solicitud antes de llamar a next(), y la respuesta después de que next() retorne.

Registrar middleware

Cada middleware es una función que recibe la solicitud saliente y un callable next. Llama a next para reenviar la solicitud al resto de la cadena (o directamente al núcleo del SDK si este es el último middleware), y devuelve su respuesta. Todo lo que esté antes de la llamada a next se ejecuta en el camino de ida; todo lo que esté después se ejecuta en el camino de vuelta.

def logging_middleware(request: APIRequest, call_next: CallNext) -> APIResponse[Any]:
    # Antes de la solicitud
    print(f"-> {request.method} {request.url}")

    # Reenvía la solicitud al resto de la cadena
    response = call_next(request)

    # Después de la solicitud
    print(f"<- {response.status_code}")

    return response


client = Anthropic(middleware=[logging_middleware])

Orden del middleware

Cuando registras varios middleware, se aplican en el orden dado: el código "antes" del primer middleware se ejecuta primero, y su código "después" se ejecuta al final. El middleware registrado en el cliente se ejecuta antes que el middleware pasado como opción por solicitud.

En el SDK de Go, las llamadas repetidas a option.WithMiddleware se concatenan (primero las del cliente, luego las del método). En los demás SDKs, pasa un arreglo; las entradas posteriores envuelven a las internas.

Reemplazar el cliente HTTP

Cada SDK también acepta un cliente HTTP personalizado (para configuración de proxy, TLS personalizado o agrupación de conexiones). Solo se usa un cliente HTTP por cada cliente del SDK; configurarlo reemplaza al predeterminado. El cliente HTTP personalizado recibe las solicitudes después de que se haya ejecutado todo el middleware.

Middleware integrado

Los SDKs incluyen un middleware de respaldo ante rechazos que reintenta automáticamente en un modelo de respaldo las solicitudes que Claude Fable 5 rechaza. Consulta Detectar y reintentar en un modelo de respaldo para ver la configuración y ejemplos por lenguaje.

Was this page helpful?