Tiempo de espera y disyuntores
Limite las llamadas al LLM y a las herramientas con tiempos de espera estrictos y use disyuntores para dejar de saturar una dependencia con problemas.
Tiempo de espera y disyuntores es una lección gratuita de AI Agents en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Agents, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Agents incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Limite toda llamada externa
Toda llamada de red debe tener un tiempo de espera. Sin él, una conexión bloqueada puede congelar todo el agente.
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
)Elija tiempos de espera realistas
Mida la latencia p99 del mundo real y añada un 25 %. Establecer timeout = 3 s cuando p99 es de 4 s provoca fallos falsos constantes.
Tiempo de espera total del agente
Envuelva toda la ejecución del agente con un plazo límite:
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.'¿Qué es un cortacircuitos?
Patrón: cuando un servicio posterior empieza a fallar, "abra" el circuito y deje de llamarlo durante un tiempo. Recupérelo automáticamente después de un periodo de enfriamiento.
Estados: CLOSED (normal) -> OPEN (fallo rápido) -> HALF_OPEN (sondeo) -> CLOSED (recuperado).
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()Después de 5 fallos
Cuando se alcanzan fail_max errores consecutivos, el cortacircuitos se abre. Todas las llamadas posteriores fallan inmediatamente durante reset_timeout segundos, lo que evita saturar un servicio que presenta problemas.
Devuelva alternativas razonables
Cuando el cortacircuitos esté abierto, devuelva una alternativa adecuada en lugar de provocar un fallo del agente:
try:
result = fragile_call()
except pybreaker.CircuitBreakerError:
result = {'error': 'service-unavailable', 'fallback': 'cached or stale data'}Cortacircuitos por herramienta
Cada dependencia externa debe tener su propio cortacircuitos; un servicio defectuoso no debe afectar a las llamadas a uno que funcione correctamente.
Bulkheads
Limite con un semáforo el número de llamadas simultáneas a una herramienta; así evitará que una dependencia lenta agote todos los procesos de trabajo:
from asyncio import Semaphore
search_sem = Semaphore(10)
async def search(query):
async with search_sem:
return await tavily_search(query)Comprobaciones de estado
Haga ping periódicamente a cada herramienta para detectar los problemas antes que los usuarios:
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}')Muestre el estado a los usuarios
Cuando una herramienta crítica no esté disponible, informe al usuario:
if tavily_breaker.current_state == 'open':
return 'Web search is temporarily unavailable.'¿Por qué usar un cortacircuitos?
¿Por qué usar un cortacircuitos con un servicio externo inestable?
Repaso
Tiempos de espera en cada llamada. Cortacircuitos por herramienta. Bulkheads para la concurrencia. Comprobaciones de estado. Mensajes de alternativa adecuada.
Preguntas frecuentes
¿La lección «Tiempo de espera y disyuntores» es gratis?
Sí — el texto completo de «Tiempo de espera y disyuntores» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Agents, actualiza a CoddyKit PRO. El curso de AI Agents incluye 4 lecciones en total.
¿Qué aprenderé en «Tiempo de espera y disyuntores»?
Limite las llamadas al LLM y a las herramientas con tiempos de espera estrictos y use disyuntores para dejar de saturar una dependencia con problemas. Practicas AI Agents con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Agents?
No se requiere experiencia previa. AI Agents en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Tiempo de espera y disyuntores»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Agents?
Sí. Cada lección de AI Agents incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Herramientas idempotentes y efectos secundarios
- Reintentos con retroceso exponencial
- Tiempo de espera y disyuntores
- Validar salidas de herramientas (Pydantic)