Fallar de forma segura, sin bloqueos
Protéjase frente a tiempos de espera agotados y excepciones no controladas.
Fallar de forma segura, sin bloqueos es una lección gratuita de MCP Academy en CoddyKit. Esta es la lección 4 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 MCP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de MCP Academy incluye 4 lecciones en total.
Una herramienta bloqueada es peor que una que falla
Una herramienta que informa de un error con claridad permite que el modelo continúe. Una herramienta que se bloquea congela toda la llamada, así que diséñela siempre para que termine a tiempo.
Capture lo inesperado
Envuelva el trabajo arriesgado para que una excepción inesperada se convierta en un error limpio, no en un bloqueo. El servidor sigue activo y el modelo aprende qué ha fallado.
try:
data = parse(raw)
except Exception as e:
raise ValueError("could not parse input")Establezca siempre un tiempo de espera
Toda llamada de red o externa necesita un tiempo de espera. Sin él, un servicio ascendente lento puede mantener abierta su herramienta indefinidamente y bloquear al cliente.
import httpx
r = httpx.get(url, timeout=10.0)Prefiera async para las operaciones de E/S
Las herramientas async permiten que una solicitud lenta espere sin bloquear todo lo demás, de modo que su servidor pueda seguir atendiendo otras llamadas mientras tanto.
@mcp.tool()
async def fetch(url: str) -> str:
async with httpx.AsyncClient() as c:
r = await c.get(url, timeout=10)Respete la cancelación
Si el cliente cancela, deténgase de inmediato. Respetar la cancelación libera recursos y evita realizar trabajo que ya nadie está esperando.
Limite los bucles y los reintentos
Establezca un límite para cualquier bucle o reintento. Un reintento sin límite ante una API que falla puede ejecutarse para siempre, así que defina un máximo de intentos y abandone después con elegancia.
for attempt in range(3):
if try_call():
breakLibere lo que abra
Utilice bloques with o finally para que los archivos y las conexiones siempre se cierren, incluso cuando se produzca un error a mitad de la función.
with open(path) as f:
return f.read()Degrade el servicio con elegancia
Cuando falle una parte de un trabajo, devuelva lo que tenga junto con una nota en lugar de no devolver nada. Un resultado parcial aún ayuda al modelo a decidir.
Registre el fallo en el servidor
Registre todos los detalles en sus logs y envíe al modelo únicamente un resumen seguro. Podrá depurar sin revelar información interna.
Un solo bloqueo no debería acabar con el servidor
Una sola llamada incorrecta no debe detener el proceso. Aislar los fallos por herramienta mantiene disponibles todas las demás capacidades para los clientes.
Devuelva siempre algo
Toda ruta de ejecución de su herramienta debe terminar en una respuesta, ya sea correcta o de error. El silencio deja al cliente esperando y al modelo bloqueado.
Comprobación rápida
¿Cuál es el motivo principal para añadir un tiempo de espera a una llamada externa en una herramienta?
Resumen
Falle rápido, no se bloquee nunca: capture las sorpresas, establezca tiempos de espera, limite los reintentos, libere recursos, registre de forma segura y devuelva siempre una respuesta. ✅
Aprende Python con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Fallar de forma segura, sin bloqueos» es gratis?
Sí — el texto completo de «Fallar de forma segura, sin bloqueos» 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 MCP Academy, actualiza a CoddyKit PRO. El curso de MCP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Fallar de forma segura, sin bloqueos»?
Protéjase frente a tiempos de espera agotados y excepciones no controladas. Practicas MCP Academy 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 MCP Academy?
No se requiere experiencia previa. MCP Academy 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 4 de 4.
¿Cuánto tiempo toma la lección «Fallar de forma segura, sin bloqueos»?
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 MCP Academy?
Sí. Cada lección de MCP Academy 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
- Errores de herramientas visibles para el modelo
- Errores del protocolo frente a fallos de herramientas
- Validar las entradas antes de actuar
- Fallar de forma segura, sin bloqueos