Verifique com IA se seus jobs agendados realmente rodaram

Um agente lê uma lista de cron jobs com os horários da última execução e sinaliza, em linguagem clara, os atrasados e os que estão falhando.

  • Conexão somente leitura
  • Agendado
  • Callback
  • Limite de orçamento

Veja uma execução real

Uma execução real em 7 de out. de 2026, reproduzida. Modelo: openai/gpt-6-luna.

Concluídarun_465f762a5831e5d144145e2f5875031c$0.002811 de $0.025
  1. Na filaorçamento de $0.025 reservado
  2. MicroVMmicroVM ready
  3. MicroVMworker started · shell off · web off
  4. Conexãoops GET /jobs
  5. Resultadoops GET → 200
  6. MicroVMmicroVM destroyed
  7. Concluída2 chamadas ao modelo, 3,246 tokensSaída gravada (em 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.
  8. Worker destruído$0.002811 cobrados, $0.022189 liberados
Modelo $0.000411 · Web $0.00 · Computação $0.0024

Execute você mesmo

Abra o exemplo no playground com a requisição inteira preenchida. Ele roda na sua própria conta, dentro do orçamento indicado, contra os mesmos sistemas de exemplo somente leitura.

Orçamento deste exemplo: $0.025

Como funciona

Falhas silenciosas de cron são as mais caras. O agente compara a última execução de cada job com o intervalo esperado e relata os jobs atrasados ou com falha, com as evidências. A API de jobs é somente leitura e informa o próprio relógio, então a resposta não depende do calendário do agente.

O que o agente pode e não pode fazer

As permissões fazem parte da requisição. Tudo o que não está listado aqui não está disponível para a execução.

ConfiguraçãoPermitido
Conexões
ops: somente GET, em ephemer.al/api/samples/ops-api
WebDesativado
ShellDesativado
ArquivosNenhuma
Retenção zero de dadosDesativada: o registro é mantido por 30 dias
Orçamento$0.025, um limite rígido
Tempo limite60 segundos

As credenciais nunca entram na máquina: um broker as adiciona a cada chamada e aplica os métodos acima.

O código

Esta é a requisição exata que o exemplo envia. Defina EPHEMERAL_API_KEY com uma chave de membro da sua organização.

curl -X POST $EPHEMERAL_URL/v1/runs \
  -H "Authorization: Bearer $EPHEMERAL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d @request.json
Corpo completo da requisição workflow.json

O mesmo corpo, com os arquivos inline.

workflow.json
{
  "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 exemplo roda em um horário fixo: 0 * * * * em UTC. Um agendamento inicia um fluxo de trabalho salvo, então salve a requisição como fluxo de trabalho primeiro e depois crie o agendamento.

Saiba mais

Exemplos relacionados

esc

Nada corresponde a “”.