Retries, idempotencia y exactly-once
Reintentar una llamada LLM puede cambiar el razonamiento, elegir otra herramienta o ejecutar dos veces una acción crítica. En agentes, retry ciego es deuda de producción.
Objetivos de aprendizaje
- Distinguir retry de modelo, retry de tool y retry de workflow.
- Diseñar acciones idempotentes para pagos, emails, tickets y cambios de datos.
- Crear una tabla de ejecuciones que bloquee duplicados.
En cristiano: idempotencia. Es la propiedad de que repetir una operación con la misma clave no produzca efectos duplicados.
Terminal
tabla_tool_executions:
idempotency_key: "invoice-email:cliente-42:2026-07"
tool: "send_email"
status: "completed"
result_id: "msg_abc123"
regla:
si existe completed con misma key:
devolver result_id anterior
no ejecutar tool otra vez
si existe running:
esperar o marcar conflicto
si falla:
guardar error y decidir retry con humanoPatrón seguro
- Genera una `idempotency_key` antes de llamar la tool.
- Registra `running` antes del efecto externo.
- Marca `completed` solo cuando el proveedor confirma.
- En retry, consulta la tabla antes de actuar.
- Para acciones irreversibles, añade aprobación humana.
Idea clave. Reintenta el sistema, no el razonamiento completo. Si la tool falló por red, reintenta la tool con la misma clave; no pidas al agente que “lo piense otra vez” desde cero.
Cuidado. “Exactly-once” real es difícil en sistemas distribuidos. En práctica educativa, busca “efecto externo una sola vez” mediante claves, registros y reconciliación.
Comprueba que funciona. Lista tus tools peligrosas: enviar email, cobrar, borrar, publicar, crear usuario, tocar CRM. Cada una necesita clave de idempotencia.
Guardar y reabrir el proyecto.
Cualquier tool con efecto externo debe poder responder: “¿ya hice esto antes?”.