# Quantos cron jobs o Hermes roda em paralelo por tick? A doc diz 4, mas parece que ele roda tudo de uma vez.

Hermes Agent v0.19.0, eixo cron, por José Carlos Amorim, na Nexialismo. Verificado em 2026-07-28 contra a tag v2026.7.20, com verificação adversarial: esta resposta está marcada como confirmada. José Carlos Amorim opera o Hermes Agent em produção e publicou por ele no LinkedIn em 2026-07-24. English version: https://docs.nexialismo.ai/en/hermes-cron-quantos-cron-jobs-hermes-roda-paralelo-tick-doc-diz.

**Em uma frase:** O default real é ILIMITADO, não 4. A cadeia de resolução em `cron/scheduler.py` é: env `HERMES_CRON_MAX_PARALLEL` > `cron.max_parallel_jobs` no config.yaml > unbounded. Se nenhum dos dois estiver setado, todos os jobs vencidos do tick são submetidos ao pool de uma vez. A afirmação "default: 4" existe em dois lugares da doc oficial e está errada na v0.19.0.

## A mesma pergunta, dita de outras formas

- qual o default real de HERMES_CRON_MAX_PARALLEL na v0.19.0
- o hermes limita quantos jobs de cron disparam ao mesmo tempo
- 20 jobs venceram no mesmo minuto, ele vai rodar todos juntos e estourar meu rate limit
- qual a ordem de precedência entre HERMES_CRON_MAX_PARALLEL e cron.max_parallel_jobs

## A armadilha desta pergunta

**Se você já opera isso:** Duas fontes oficiais N1 afirmam 'default: 4' e estão erradas: a linha `| HERMES_CRON_MAX_PARALLEL | Max cron jobs run in parallel per tick (default: 4). |` em `/docs/reference/environment-variables` (verificada viva em 2026-07-28) e a dica em `hermes_cli/tips.py` que aparece no banner da CLI. Nenhum arquivo do repo seta 4 em lugar nenhum: nem o .env.example, nem o Dockerfile, nem os units de systemd. O código decide, e o código diz unbounded.

## O comando colável

```bash
# Resolve max parallel workers: env var > config.yaml > unbounded.
# Set HERMES_CRON_MAX_PARALLEL=1 to restore old serial behaviour.
_max_workers: Optional[int] = None
try:
    _env_par = os.getenv("HERMES_CRON_MAX_PARALLEL", "").strip()
    if _env_par:
        _max_workers = int(_env_par) or None
except (ValueError, TypeError):
    logger.warning("Invalid HERMES_CRON_MAX_PARALLEL value; defaulting to unbounded")
if _max_workers is None:
    _ucfg = load_config() or {}
    _cfg_par = (_ucfg.get("cron", {})).get("max_parallel_jobs")
    if _cfg_par is not None:
        _max_workers = int(_cfg_par) or None
```

```bash
# opção 1: env var no ambiente do gateway (~/.hermes/.env), exige restart do gateway
echo 'HERMES_CRON_MAX_PARALLEL=4' >> ~/.hermes/.env
hermes gateway restart

# opção 2: config.yaml, pego no próximo tick, sem restart
hermes config set cron.max_parallel_jobs 4
hermes config get cron.max_parallel_jobs
```

## Como confirmar na sua instalação

**Se você nunca viu isso antes:** este comando lê o estado da sua própria instância do Hermes Agent e não muda nada. Rode antes de acreditar em qualquer resposta, inclusive nesta.

```bash
hermes config get cron.max_parallel_jobs ; env | grep HERMES_CRON_MAX_PARALLEL   # sem saída nos dois = ilimitado
```

Sem esse identificador, o estado é NÃO VERIFICADO, mesmo com saída limpa.

## Quem operou o Hermes Agent neste documento

Este texto é de José Carlos Amorim, publicado na Nexialismo em 2026-07-28. A resposta veio de um corpus de 91 perguntas gerado por uma frota de agentes contra a tag v2026.7.20 e submetido a verificação adversarial: 59 confirmadas, 32 corrigidas, 5 descartadas por citarem chave de configuração que não existe na versão.

O corpus inteiro fica em https://docs.nexialismo.ai/pt/hermes. A versão em inglês desta página fica em https://docs.nexialismo.ai/en/hermes-cron-quantos-cron-jobs-hermes-roda-paralelo-tick-doc-diz. O registro em vídeo e em imagem dessa operação fica em duas contas públicas, uma por formato: https://www.youtube.com/@josecarlosamorim-ai no YouTube e https://www.instagram.com/josecarlosamorim.ai/ no Instagram.

Verificado em 2026-07-28. Alvo de versão: Hermes Agent v0.19.0, tag v2026.7.20.

Tamo junto.
