Tarefas Agendadas
Crie tarefas recorrentes e únicas com linguagem natural ou expressões cron. O agente executa o prompt da tarefa no horário agendado.
Nome da Ferramenta
scheduler
Ações
| Ação | Parâmetros Obrigatórios | Descrição |
|---|---|---|
create | name, schedule, prompt | Criar uma nova tarefa agendada |
list | — | Listar todas as tarefas com status e próxima execução |
delete | id | Excluir uma tarefa por UUID |
pause | id | Pausar uma tarefa (para de disparar) |
resume | id | Retomar uma tarefa pausada (recalcula próxima execução) |
Parâmetros de Criação
| Key | Type | Default | Description |
|---|---|---|---|
name | string | — | Rótulo legível para a tarefa |
schedule | string | — | Linguagem natural ou expressão cron de 5 campos |
prompt | string | — | O que o agente deve fazer quando a tarefa disparar |
oneshot | bool | false | Disparar uma vez e depois auto-excluir |
trusted | bool | false | Executar com autonomia total (sem aprovação do terminal) |
Agendamentos em Linguagem Natural
O scheduler analisa padrões comuns e os converte em expressões cron:
| Entrada | Cron | Descrição |
|---|---|---|
hourly | 0 * * * * | A cada hora em :00 |
daily | 0 0 * * * | Todo dia à meia-noite |
weekly | 0 0 * * 0 | Todo domingo à meia-noite |
monthly | 0 0 1 * * | Primeiro dia do mês |
every 5m | */5 * * * * | A cada 5 minutos |
every 2h | 0 */2 * * * | A cada 2 horas |
daily at 9am | 0 9 * * * | Todo dia às 9:00 |
daily at 14:30 | 30 14 * * * | Todo dia às 14:30 |
weekdays at 8:30 | 30 8 * * 1-5 | Seg-Sex às 8:30 |
weekends at 10am | 0 10 * * 0,6 | Sáb-Dom às 10:00 |
in 2h | (absoluto calculado) | Disparo único, executa uma vez em 2 horas |
in 30m | (absoluto calculado) | Disparo único, executa uma vez em 30 minutos |
Expressões cron padrão de 5 campos também são aceitas diretamente (ex: 0 9 * * 1-5).
Configuração
config.toml
[scheduler]
enabled = true
tick_interval_secs = 30
[[scheduler.tasks]]
name = "Morning check-in"
schedule = "weekdays at 9am"
prompt = "Check system health and report any issues"
trusted = true
[[scheduler.tasks]]
name = "Backup reminder"
schedule = "weekly"
prompt = "Remind me to run backups"Armazenamento de Tarefas
As tarefas são persistidas no SQLite (tabela scheduled_tasks). Tarefas definidas na configuração são sincronizadas na inicialização — tarefas removidas são limpas automaticamente. Tarefas criadas via ferramenta persistem indefinidamente.
Tarefas Perdidas
Na inicialização, o scheduler verifica tarefas que deveriam ter sido executadas enquanto o daemon estava inativo. Tarefas perdidas são executadas imediatamente durante a recuperação.
Trusted vs Untrusted
Tarefas trusted rodam com acesso total ao terminal (sem necessidade de aprovação). Tarefas untrusted (padrão) requerem aprovação para qualquer comando de terminal, assim como sessões de trigger por email.