Monitorización de agentes IA
Tu agente informó de éxito.
No produjo nada.
Los agentes programados fallan en silencio. Una ejecución que nunca arrancó, un bucle que se tragó un error de herramienta y salió con 0, una llamada al modelo que nunca volvió. SteadyCron vigila el resultado en lugar del código de salida, y te avisa cuando deja de llegar un resultado real.
Sin tarjeta. Un monitor de agente gratis, con todas las reglas.
Cómo se vio la ejecución
02:00 ejecución programada iniciada
02:04 proceso terminó con 0
02:04 ✓ marcada como correcta
# out/digest.md → 0 bytes
# tokens gastados: 84.300
# ¿alguien avisado? no Lo que de verdad necesitabas saber
02:00 /start ejecución empezó
02:04 informe: items=0
02:04 regla: empty_result → fallo
→ #ops-slack nightly-digest falló
última ejecución buena: ayer 02:03 El problema
Para un agente desatendido, el silencio parece éxito
Los frameworks de agentes están hechos para seguir adelante. Una llamada a herramienta falla, el modelo se disculpa y continúa, el bucle termina limpio sin haber escrito nada. El proceso sale con 0 porque terminó, no porque se hiciera el trabajo.
Correr desatendido era justamente el objetivo, así que nadie lee la salida. El planificador no informará de un calendario muerto, el proveedor no informará de un presupuesto agotado, y el agente no informará de su propia ejecución vacía.
La distinción que importa
Un agente que informa de que todo va bien con cero rendimiento no está sano — está asintomático.
- Código de salida 0 sin artefacto — el fallo de agente más común, y el que cualquier comprobación de disponibilidad aprueba.
- La ejecución no arrancó en absoluto: un workflow desactivado, una máquina dormida, un evento de calendario descartado.
- Una llamada al modelo sin tiempo de espera bloquea la ejecución durante horas, y las siguientes se acumulan detrás.
- Límites de tasa, presupuesto agotado o una clave de API rotada acaban con la ejecución de hoy — y con la de mañana.
- Un ID de modelo obsoleto o una respuesta remodelada rompe tu parsing en el calendario del proveedor, no en el tuyo.
Tres fallos que merecen una alerta
Detectados por una expectativa de calendario, no por una traza
Las herramientas de trazado registran lo que hizo una ejecución. Ninguna puede registrar una ejecución que nunca ocurrió — no hay traza que emitir. Eso requiere algo que observe desde fuera y con reloj.
La ejecución nunca ocurrió
GitHub Actions desactivó el workflow tras 60 días sin actividad en el repositorio. Nadie lo notó durante tres días, porque una ejecución que no arranca no produce log, ni error, ni traza.
Solo una expectativa de calendario externa detecta una ausencia. Es el fallo que tu stack de observabilidad no puede ver estructuralmente.
Corrió, y no produjo nada
La herramienta de búsqueda falló, el modelo se disculpó, el bucle terminó. Cuatro minutos de tokens gastados y cero filas escritas — reportado como éxito, porque el proceso terminó sin lanzar excepción.
Tu ejecución reporta el número; la regla de resultado vacío convierte un cero en fallo y en alerta. No tienes que implementar la comprobación.
Se colgó en una llamada al modelo
Muchos SDK vienen sin tiempo de espera en las peticiones. Una conexión atascada y la ejecución nunca termina. El ping /start llegó; /success nunca.
La detección de ejecuciones colgadas convierte una llamada atascada en una alerta en un plazo que tú fijas, en vez de una ejecución que nunca acaba.
Conectarlo
Cinco líneas, donde sea que corra tu agente
Pingea al arrancar, y pingea éxito solo después de comprobar que la salida existe. Esa segunda mitad es todo el truco — es lo que convierte una ejecución vacía en una alerta.
# Anthropic runs the schedule — but a routine that gets skipped, or
# finishes with nothing, tells nobody. Connect SteadyCron's MCP server
# and the agent reports its own runs with a tool call.
MCP server: https://api.steadycron.com/mcp
Auth: Bearer <your SteadyCron API key>
# Then, in the routine's prompt:
Call report_run_start with jobKey "nightly-digest" before you begin.
This is required — report_run is refused if no run is open.
Do the work. Write the result to out/digest.md.
When you are done, count what you actually produced and call report_run
with that count. If you produced nothing, report 0 — do not omit the
field, and do not round up.
report_run { jobKey: "nightly-digest", itemsProduced: 42,
model: "claude-opus-5", tokensIn: 18400, tokensOut: 2100 }
# SteadyCron turns a 0 into a failed run and an alert. No curl to get
# wrong, and a tool call is far harder for the model to skip than a
# sentence in the prompt. Los fundamentos de los pings, el periodo de gracia y la detección de ejecuciones colgadas en Monitorización heartbeat. La guía detallada por plataforma existe por ahora solo en inglés.
Alcance
Una pregunta estrecha, respondida con fiabilidad
SteadyCron no es una herramienta de trazado de LLM y no pretende serlo. Vigila la ejecución, no el razonamiento.
Lo que hace
- Avisa cuando una ejecución programada nunca ocurrió — el único fallo que una traza no puede registrar.
- Avisa cuando una ejecución acaba sin haber producido nada. Comprobamos el número que reporta tu ejecución: no tienes que implementarlo tú.
- Avisa cuando una ejecución supera tu límite de coste — por ejecución o en el mes.
- Avisa cuando el número de pasos o llamadas a herramientas indica un bucle.
- Avisa cuando una ejecución arranca y nunca termina, frente a una duración máxima que tú fijas.
- Sigue el coste de cada agente, con total del mes en curso por monitor.
- Domina el ruido — periodos de gracia, umbrales de fallos consecutivos, horas silenciosas, autorresolución.
Lo que no hace
- Trazas detalladas de cada llamada al modelo y cada invocación de herramienta.
- Gestión de prompts, datasets o evaluación con LLM como juez.
- Puntuar la calidad de las respuestas, ni detectar alucinaciones.
- Decirte por qué el modelo tomó una decisión concreta.
Para eso usa una herramienta de trazado — Langfuse, LangSmith y compañía lo hacen bien. Pon la URL de la traza en la carga del ping y tu alerta enlazará directo con la ejecución. SteadyCron responde las preguntas que ellas no pueden: ¿corrió, terminó, produjo algo — y cuánto costó?
Dónde residen los datos
Las ejecuciones de agentes son los logs más sensibles que tienes
Un script de backup registra «completado». Una ejecución de agente lleva prompts, documentos recuperados, argumentos de herramientas y cualquier dato de cliente que pasara por la ventana de contexto — y estás a punto de enviar un resumen de todo eso a un proveedor de monitorización.
SteadyCron corre en servidores Hetzner en Alemania, operados por una entidad jurídica alemana, bajo un DPA de autoservicio que puedes leer y firmar sin llamada comercial. Y tú eliges qué va en el ping: adjunta un recuento de filas, no las filas.
- Hetzner, Alemania
- Entidad jurídica alemana
- DPA de autoservicio
- Lista pública de subencargados
Una plataforma para cada job programado
Ejecución HTTP
Llama a tus endpoints según el horario — reintentos, tiempos de espera y logs completos.
Monitorización heartbeat
Vigila los jobs que ejecutas donde sea; recibe alerta en cuanto uno se silencia.
Monitorización de agentes IA
Estás aquíEntérate cuando un agente programado se salta una ejecución — o acaba vacío.
Cron as code
Define cada job, monitor y alerta en YAML o Terraform.
Apunta un monitor a la ejecución de esta noche
Crea un monitor heartbeat, indica el calendario que tu agente debe cumplir, y añade el ping. Si el resultado de mañana no llega, lo sabrás antes de que alguien pregunte.
- Plan gratuito, sin tarjeta
- 1 monitor de agente gratis
- Alojado en la UE
- De pago desde 10 €/mes