Comprueba con IA que tus tareas programadas se han ejecutado de verdad
Un agente lee una lista de tareas cron con la hora de su última ejecución y señala en lenguaje claro las que van con retraso o fallan.
- Conexión de solo lectura
- Programado
- Callback
- Límite de presupuesto
Mira una ejecución real
Una ejecución real del 7 oct 2026, reproducida. Modelo: openai/gpt-6-luna.
- En colapresupuesto de $0.025 reservado
- MicroVMmicroVM ready
- MicroVMworker started · shell off · web off
- Conexiónops GET /jobs
- Resultado
ops GET → 200 - MicroVMmicroVM destroyed
- Completada2 llamadas al modelo, 3,246 tokensResultado grabado (en inglés)
Ops check at 2026-10-07 09:00 UTC: 2 jobs need attention; 6 are healthy.
- invoice-export — Overdue: last ran 2026-10-05 03:00 UTC, 54 hours ago; expected every 24 hours (overdue threshold: more than 36 hours). No run is recorded on Oct 6 or 7. Next step: investigate the missed runs and trigger an export if needed.
- sync-inventory — Failing: last ran 2026-10-07 08:30 UTC and status is
failed; error:401 Unauthorized from supplier API: token expired. Next step: renew the supplier API token and retry.
- Worker destruido$0.002811 cobrados, $0.022189 liberados
Ejecútalo tú mismo
Abre el ejemplo en el playground con la solicitud completa ya rellenada. Se ejecuta en tu propia cuenta, dentro del presupuesto indicado, contra los mismos sistemas de ejemplo de solo lectura.
Presupuesto de este ejemplo: $0.025
Cómo funciona
Los fallos silenciosos de cron son los que salen caros. El agente compara la última ejecución de cada tarea con su intervalo esperado e informa de las que van con retraso o fallan, con las pruebas. La API de tareas es de solo lectura e informa de su propio reloj, así que la respuesta no depende del calendario del agente.
Lo que el agente puede y no puede hacer
Los permisos forman parte de la solicitud. Todo lo que no figura aquí no está disponible para la ejecución.
| Ajuste | Permitido |
|---|---|
| Conexiones | ops: solo GET, en ephemer.al/api/samples/ops-api |
| Web | Desactivado |
| Shell | Desactivado |
| Archivos | Ninguna |
| Retención cero de datos | Desactivada: el registro se conserva 30 días |
| Presupuesto | $0.025, límite estricto |
| Tiempo límite | 60 segundos |
Las credenciales nunca entran en la máquina: un broker las añade a cada llamada y aplica los métodos indicados arriba.
El código
Esta es la solicitud exacta que envía el ejemplo. Define EPHEMERAL_API_KEY con una clave de miembro de tu organización.
curl -X POST $EPHEMERAL_URL/v1/runs \
-H "Authorization: Bearer $EPHEMERAL_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d @request.jsonCuerpo completo de la solicitud workflow.json
El mismo cuerpo, con los archivos en línea.
{
"prompt": "Read GET /jobs on the ops connection. Use the 'now' value in the response as the current time. A job is overdue when more than 1.5 times expected_every_hours have passed since last_run_at. A job is failing when last_status is failed. Reply in Markdown, at most 150 words: one headline sentence, then a bullet for each overdue or failing job with its name, the evidence (times and error) and a likely next step. Do not list healthy jobs, just say how many there are. Use only what the data returns and never guess; if a call fails or a field is missing, say so.",
"connections": {
"ops": {
"type": "http",
"url": "https://ephemer.al/api/samples/ops-api",
"auth": {
"type": "bearer",
"token": "sample_read_key"
},
"allowed_methods": [
"GET"
],
"instructions": "GET /jobs returns now (the current time) and items with name, schedule, expected_every_hours, last_run_at, last_status, last_error, recent_statuses (newest first) and sometimes a note."
}
},
"shell": false,
"timeout_seconds": 60
}Este ejemplo se ejecuta según un horario: 0 * * * * en UTC. Una programación inicia un flujo de trabajo guardado, así que primero guarda la solicitud como flujo de trabajo y después crea la programación.