Hermes Agent: Tarefas Agendadas
Última atualização: 2026-08-31
Tarefas agendadas transformam o Hermes Agent em seu assistente de plantão automático — resumo de notícias toda manhã, relatório semanal toda sexta, sem precisar acionar manualmente.
📋 Pré-requisitos: Lição 7 — Sistema de Habilidades
1. O Que Você Vai Aprender
| # | Conteúdo |
|---|---|
| ❶ | Sintaxe de agendamento Cron |
| ❷ | Criação e configuração de tarefas |
| ❸ | Habilidades acionadas por timer |
| ❹ | Monitoramento e logs de tarefas |
| ❺ | Tratamento de erros e retentativas |
2. História
(1) Problema: Operações Repetitivas Diárias
Bob gasta 15 minutos toda manhã: checar email, ver status Git, navegar notícias técnicas. Toda sexta ainda precisa escrever relatório manualmente.
(2) Solução: Agent em Plantão Automático
Alice configurou tarefas agendadas, o Agent completa automaticamente:
# Toda manhã às 9:00
⏰ 09:00 Agent: Bom dia! Resumo de hoje:
- 3 emails não lidos (1 urgente)
- 2 PRs pendentes de revisão
- Destaque: React 19 lançamento oficial
# Toda sexta às 17:00
⏰ Sex 17:00 Agent: Relatório semanal gerado:
- 12 commits completados
- 5 bugs corrigidos
- 2 PRs merged
[Relatório enviado para seu email]
3. Sintaxe de Agendamento Cron
(1) Sintaxe Básica
┌───────────── minuto (0-59)
│ ┌───────────── hora (0-23)
│ │ ┌───────────── dia (1-31)
│ │ │ ┌───────────── mês (1-12)
│ │ │ │ ┌───────────── dia da semana (0-6, 0=domingo)
│ │ │ │ │
* * * * *
(2) Expressões Comuns
| Expressão | Significado |
|---|---|
0 9 * * * |
Todo dia às 9:00 |
0 9 * * 1-5 |
Dias úteis às 9:00 |
0 17 * * 5 |
Toda sexta às 17:00 |
*/30 * * * * |
A cada 30 minutos |
0 9,12,18 * * * |
Todo dia às 9:00, 12:00, 18:00 |
0 0 1 * * |
Dia 1 de cada mês à meia-noite |
4. Criação e Configuração de Tarefas
(1) Via Arquivo de Configuração
cron:
enabled: true
timezone: "America/Sao_Paulo"
tasks:
- name: "daily-briefing"
schedule: "0 9 * * 1-5"
description: "Resumo matinal de dias úteis"
skill: "daily-briefing"
notify:
platform: "telegram"
chat_id: 123456789
- name: "weekly-report"
schedule: "0 17 * * 5"
description: "Relatório semanal de sexta"
actions:
- type: "tool"
name: "code_shell"
command: "git log --since='1 week ago' --oneline"
- type: "skill"
name: "report-generator"
- type: "tool"
name: "email_send"
to: "alice@company.com"
subject: "Relatório de trabalho semanal"
- name: "code-quality-check"
schedule: "0 2 * * *"
actions:
- type: "tool"
name: "code_shell"
command: "cd ~/projects/myapp && npm run lint"
- type: "tool"
name: "code_shell"
command: "cd ~/projects/myapp && npm test"
on_failure:
notify: "telegram"
message: "⚠️ Verificação de qualidade de código falhou"
(2) Via Linha de Comando
hermes cron add \
--name "morning-briefing" \
--schedule "0 9 * * 1-5" \
--skill "daily-briefing" \
--notify telegram
hermes cron list
hermes cron run morning-briefing
hermes cron pause morning-briefing
hermes cron resume morning-briefing
hermes cron delete morning-briefing
(3) Via Conversa
me: Todo dia às 9 da manhã me mande um resumo de notícias técnicas
Agent: Vou criar a tarefa agendada:
Nome: tech-news-digest
Agendamento: 0 9 * * *
Ações: web_search → summarize → notify
Confirmar criação? (y/n)
me: y
Agent: ✅ Tarefa agendada "tech-news-digest" criada!
5. Habilidades Acionadas por Timer
(1) Combinação Habilidade + Cron
name: "daily-briefing"
description: "Resumo diário de trabalho"
type: "cron-triggered"
actions:
- type: "tool"
name: "email_check"
params:
folder: "inbox"
unread_only: true
- type: "tool"
name: "code_shell"
command: "git -C ~/projects log --since='1 day ago' --oneline"
- type: "tool"
name: "web_search"
query: "notícias técnicas IA desenvolvimento"
- type: "generate"
template: |
📋 Resumo de Hoje ({{ date }})
📧 Emails não lidos: {{ email_count }}
🔨 Git Commits: {{ commit_count }}
📰 Destaques:
{{#each news}}
- {{this.title}}
{{/each}}
(2) Execução Condicional
cron:
tasks:
- name: "pr-review-reminder"
schedule: "0 10 * * 1-5"
condition: "pending_prs > 0"
actions:
- type: "tool"
name: "github_api"
endpoint: "/repos/{owner}/{repo}/pulls"
params:
state: "open"
- type: "notify"
platform: "slack"
message: "Há {{count}} PRs pendentes de revisão"
6. Monitoramento e Logs de Tarefas
(1) Histórico de Execuções
hermes cron history
# ┌──────────────────┬──────────┬─────────┬────────┬──────────┐
# │ Task │ Schedule │ Status │ Duration│ Last Run │
# ├──────────────────┼──────────┼─────────┼────────┼──────────┤
# │ daily-briefing │ 0 9 * * │ ✅ OK │ 12s │ 09:00 │
# │ weekly-report │ 0 17 * 5 │ ✅ OK │ 45s │ Sex 17:00│
# │ code-quality │ 0 2 * * │ ❌ FAIL │ 3s │ 02:00 │
# └──────────────────┴──────────┴─────────┴────────┴──────────┘
(2) Logs de Execução
hermes cron logs daily-briefing --last
# [09:00:01] Task "daily-briefing" started
# [09:00:02] → tool: email_check → 3 unread
# [09:00:05] → tool: code_shell → 5 commits
# [09:00:08] → tool: web_search → 4 results
# [09:00:10] → generate: summary
# [09:00:12] → notify: telegram → sent
# [09:00:12] Task "daily-briefing" completed (12s)
7. Tratamento de Erros e Retentativas
(1) Estratégia de Retentativa
cron:
tasks:
- name: "api-health-check"
schedule: "*/5 * * * *"
actions:
- type: "tool"
name: "web_api"
url: "https://api.example.com/health"
retry:
max_attempts: 3
backoff: "exponential"
initial_delay: 5
max_delay: 60
on_failure:
notify: "telegram"
message: "⚠️ Verificação de saúde da API falhou após 3 retentativas"
escalate_after: 3
(2) Timeout e Degradação
cron:
tasks:
- name: "daily-briefing"
schedule: "0 9 * * 1-5"
timeout: 120
on_timeout:
action: "notify"
message: "⚠️ Geração do resumo matinal excedeu tempo, usando versão simplificada"
fallback_skill: "daily-briefing-simple"
❓ Perguntas Frequentes
P: Tarefas agendadas são precisas? R: Precisas ao minuto. Podem ter alguns segundos de variação por carga do sistema, não adequadas para precisão sub-segundo.
P: O que acontece com tarefas quando o computador desliga? R: Tarefas no período desligado são puladas. Opcional:
run_on_startup: truepara executar tarefas perdidas ao ligar.
P: Pode agendar habilidades e ferramentas? R: Sim. Cron pode acionar qualquer habilidade, cadeia de ferramentas, comando Shell ou chamada de API.
P: Como configurar fuso horário? R:
cron.timezonena configuração, padrão segue o fuso do sistema. Suporta todos os nomes IANA.
P: Quanto recurso as tarefas agendadas consomem? R: Ociosas quase zero. Execução depende do conteúdo, geralmente <1% CPU.
P: Como depurar tarefas agendadas? R:
hermes cron run <name>para acionar manualmente e ver logs completos, sem esperar o timer.
📖 Resumo
- Sistema Cron embutido, sem agendador externo
- Expressão Cron padrão + configuração de fuso horário
- Três formas de criar: arquivo de configuração, linha de comando, conversa
- Combinação Habilidade + Cron para workflows automatizados
- Monitoramento, logs, retentativas e mecanismos de degradação completos
📝 Exercícios
- Básico (⭐): Crie uma tarefa agendada para todo dia às 9h, enviando "Bom Dia" ao Telegram.
- Intermediário (⭐⭐): Crie uma tarefa combinando habilidade e ferramentas, resumindo commits Git diariamente e enviando por email.
- Avançado (⭐⭐⭐): Desenhe um sistema completo de agenda automatizada (resumo matinal + lembrete no almoço + balanço noturno + relatório semanal), incluindo tratamento de erros e estratégia de degradação.