OpenClaw
Monitore os cron jobs do OpenClaw
O OpenClaw roda as suas automações dentro do Gateway. Se o Gateway cai, nada dispara e ninguém avisa. O CronObserver vigia de fora e avisa quando um job falha, trava ou nem começa.
Sem cartão. Plano gratuito com 3 monitores depois do teste.
O agendador do seu agente não pode ser o próprio vigia
A documentação do OpenClaw é clara: as automações rodam dentro do processo do Gateway, e o Gateway precisa estar no ar para os horários dispararem. Os alertas de falha também saem desse mesmo Gateway. Quando o processo morre, a máquina dorme ou o servidor reinicia na hora errada, o job não roda e o alerta que avisaria também não.
Um monitor por heartbeat inverte a lógica: o job prova que rodou chamando uma URL. Se o CronObserver não recebe o sinal no horário, ele avisa você, de fora da máquina.
1. Crie um monitor no CronObserver
Use o mesmo horário do job, uma tolerância para atrasos normais e um tempo máximo para execuções que travam. Copie a URL de check-in: o token no fim é o segredo.
Schedule: cron 0 2 * * * (same time zone as the job) Grace period: 10 min Max runtime: 30 min Alerts: email (Free) · Slack, Teams, webhook (Orbital) Check-in URL: https://cronobserver.com/checkin/<token>
2. Envolva o job num script
O script sinaliza o início e depois o sucesso ou a falha, com o código de saída. No sucesso, ele imprime NO_REPLY, que o OpenClaw entende como nada a publicar no chat.
#!/bin/sh
# ~/jobs/nightly-report.sh (chmod +x)
CO="https://cronobserver.com/checkin/${CRONOBSERVER_TOKEN:?set CRONOBSERVER_TOKEN}"
curl -fsS -m 10 --retry 3 -o /dev/null -X POST "$CO/start"
if python3 "$HOME/jobs/nightly_report.py"; then # your job
curl -fsS -m 10 --retry 3 -o /dev/null -X POST "$CO"
echo NO_REPLY # nothing posted to chat on success
else
rc=$?
curl -fsS -m 10 --retry 3 -o /dev/null -X POST "$CO/fail" \
-H 'Content-Type: application/json' \
-d "{\"exitCode\":$rc,\"message\":\"nightly_report.py failed\"}"
exit "$rc" # OpenClaw records the run as error
fi3. Agende como automação de comando
Um payload de comando roda o script no servidor do Gateway sem chamar o modelo. Código de saída 0 registra a execução como ok no OpenClaw; qualquer outro registra erro e chega ao CronObserver como /fail.
# Command payload: runs on the Gateway host, no model call openclaw cron create "0 2 * * *" --name nightly-report \ --command "$HOME/jobs/nightly-report.sh" \ --command-env CRONOBSERVER_TOKEN=<token> \ --no-deliver # Run it once now and watch the check-ins arrive openclaw cron run <job-id> openclaw cron runs --id <job-id>
Quando você recebe alerta
- O job falhou: o /fail chega com o código de saída e a mensagem, e o alerta sai na hora.
- O job travou: ele chamou /start, mas nem o sucesso nem o /fail chegaram dentro do tempo máximo.
- O job nem rodou: nenhum check-in até o horário mais a tolerância, por exemplo porque o Gateway estava fora do ar.
- Ele voltou: o próximo check-in de sucesso encerra o incidente.
Bom saber
- Testado no OpenClaw 2026.11.3 com um Gateway de verdade: a execução acima gerou check-ins de início, sucesso e falha na produção.
- O OpenClaw guarda o --command-env na definição do job e no histórico. O token de check-in só permite check-ins, mas você pode ler o token de um arquivo dentro do script.
- Se uma execução estoura o --timeout-seconds do OpenClaw, o script é encerrado antes de mandar o /fail. O tempo máximo do monitor pega esse caso.
- O mesmo script serve para um prompt de agente: chame a CLI do seu agente no lugar do nightly_report.py.
Baseado na documentação do OpenClaw: docs.openclaw.ai/cron · docs.openclaw.ai/automation/cron-jobs/payloads · docs.openclaw.ai/automation/cron-jobs/how-it-works
O OpenClaw é um projeto de terceiros. O CronObserver não tem vínculo nem aval do projeto; esta página usa check-ins HTTPS simples.
Outras plataformas de agentes: Hermes Agent · OpenAI dots · Documentação do check-in