Los SDK de Anthropic proporcionan un hook de "middleware" (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 fallback ante rechazos.
Cada middleware puede inspeccionar o reemplazar la solicitud antes de llamar a next(), y la respuesta después de que next() retorne.
Cada middleware es una función que recibe la solicitud saliente y un invocable 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 salida; todo lo que esté después se ejecuta en el camino de regreso.
Cuando registras varios middleware, se aplican en el orden indicado: 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 el cliente, luego el método). En los demás SDK, pasa un arreglo; las entradas posteriores envuelven a las internas.
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 el predeterminado. El cliente HTTP personalizado recibe las solicitudes después de que todo el middleware se haya ejecutado.
Los SDK incluyen un middleware de fallback 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?