Tres trampas de los timeouts en el SDK de Python de Anthropic
El artículo explica tres comportamientos del SDK de Python de Anthropic (versión 1.15.0) que dificultan limitar el tiempo de una llamada a la API, probados con un servidor local simulado. Con un max_tokens alto, la llamada no streaming lanza ValueError antes de enviar la petición, así que conviene usar streaming y get_final_message(). El parámetro timeout mide la inactividad entre datos, no el tiempo total, por lo que una respuesta que llega poco a poco puede superar con creces los 2 segundos; el plazo global debe fijarse con asyncio.wait_for. Además, los timeouts se reintentan automáticamente (por defecto 2 veces), de modo que un timeout de 2 segundos tardó 7,6 segundos y envió 3 peticiones, lo que puede duplicar el coste; se recomienda fijar max_retries de forma explícita.
Fuentes
- 生成AIタグが付けられた新着記事 - QiitaAnthropic Python SDK のタイムアウトを正しく効かせる実装手順 — max_tokens を上げると非ストリーミングが ValueError・timeout=2 でも51秒返らない・リトライ込みで待ち時間が3倍、3つのハマりどころ【2026】