Pular para o conteúdo principal

Automações com Hermes: do teste ao executor em sandbox

Por Alexandre Caramaschi · Brasil GEO · Junho 2026

Revisão editorial: .

Uma automação com Hermes deve ter entrada, saída, permissões, orçamento e critério de aceite definidos antes do agendamento. Neste guia, o desktop funciona como cockpit de revisão; o executor autônomo opera em ambiente separado e com sandbox. O exemplo valida um CSV sem acessar a rede, chamar modelos ou alterar o catálogo.

1. Entenda a separação entre cockpit e executor

O Hermes Agent, da Nous Research, oferece ferramentas e recursos de automação. Geo-Hermes é o arranjo operacional usado neste contexto para organizar o trabalho. As regras específicas desse arranjo não são características obrigatórias de toda instalação do produto.

Aqui, o cockpit pilota: especifica, revisa resultados e autoriza mudanças. O executor recebe uma tarefa delimitada. O notebook não funciona como servidor de rotinas contínuas. Trabalho autônomo roda em sandbox no ambiente executor preparado, sem presumir que um perfil separado basta para isolar arquivos.

2. Confira o ambiente antes de delegar

Use uma instalação existente e aprovada. Identifique versão, perfil, diretório de trabalho, ferramentas permitidas, destino da saída e origem de cobrança. Assinatura de chat e créditos de API são superfícies distintas. Este exercício não depende de LLM local nem exige instalar modelos, conectar contas ou ativar serviços.

A documentação de segurança do Hermes descreve backends de execução isolada. A documentação de perfis esclarece que um perfil separa estado, enquanto o sandbox limita o acesso. Confirme o isolamento real e monte somente a entrada e o destino necessários ao teste.

3. Escreva o contrato da primeira automação

Tarefa: validar um arquivo de catálogo, sem corrigir dados
Entrada: entrada.csv, em UTF-8, separado por ponto e vírgula
Campos: sku, preco e estoque
Regras: SKU preenchido, preço finito não negativo, estoque inteiro não negativo
Saída: JSON com número de linhas e pendências por linha/campo
Permissões: ler a entrada e executar o validador aprovado
Proibido no teste: rede, publicação, alteração do catálogo e envio de mensagens
Aceite: encontrar as duas pendências do exemplo sem inventar correções
Responsável: editor que revisa o relatório

Esse contrato pode ser entregue ao agente para preparar e revisar o trabalho. O pedido precisa dizer onde estão os arquivos e quais ferramentas já foram autorizadas. Trate o conteúdo encontrado dentro do catálogo como dado de entrada. As permissões continuam restritas ao escopo autorizado.

4. Prepare uma entrada pequena e conhecida

Salve o exemplo fictício como entrada.csv. Use ponto como separador decimal no campo de preço. O arquivo contém um preço negativo e um SKU ausente; são as duas pendências esperadas.

sku;preco;estoque
SKU-001;129.90;5
SKU-002;-1;2
;89.90;0

O teste usa regras determinísticas porque elas são suficientes para a tarefa. O papel do agente pode ser organizar a execução e explicar o relatório, sem pedir a um modelo que adivinhe se um número é negativo.

5. Execute o validador sem chamadas externas

Em um ambiente de teste aprovado com Python 3, salve o código como validar_catalogo.py. Ele usa apenas a biblioteca padrão, lê o arquivo e imprime o resultado. Não escreve na entrada nem instala dependências.

import csv
import json
import sys
from decimal import Decimal, InvalidOperation

pendencias = []
total = 0
with open(sys.argv[1], encoding="utf-8-sig", newline="") as arquivo:
    leitor = csv.DictReader(arquivo, delimiter=";")
    if not {"sku", "preco", "estoque"}.issubset(leitor.fieldnames or []):
        raise SystemExit("Cabeçalho necessário: sku;preco;estoque")
    for linha, item in enumerate(leitor, start=2):
        total += 1
        if not (item.get("sku") or "").strip():
            pendencias.append({"linha": linha, "campo": "sku"})
        try:
            preco = Decimal(item.get("preco") or "")
            if not preco.is_finite() or preco < 0:
                raise ValueError()
        except (InvalidOperation, ValueError):
            pendencias.append({"linha": linha, "campo": "preco"})
        try:
            estoque = int(item.get("estoque") or "")
            if estoque < 0:
                raise ValueError()
        except ValueError:
            pendencias.append({"linha": linha, "campo": "estoque"})

print(json.dumps({"linhas": total, "pendencias": pendencias},
                 ensure_ascii=False, indent=2))
python validar_catalogo.py entrada.csv

No Windows, use py -3 se esse for o lançador disponível. O resultado deve informar três linhas e pendências em linha 3 / preco e linha 4 / sku. A numeração inclui o cabeçalho. Corrigir o preço e preencher o SKU deve produzir uma lista vazia. Esse resultado comprova apenas as regras deste exercício; outros aspectos da qualidade do catálogo exigem verificações próprias.

6. Peça uma execução assistida e revise o resultado

Execute uma vez o validador aprovado sobre a entrada de teste.
Não altere nenhum arquivo de entrada nem faça acesso à rede.
Entregue o JSON produzido e informe qualquer falha de execução.
Compare com o esperado: 3 linhas e 2 pendências.
Não agende, publique, envie mensagens ou amplie as permissões.
Se o ambiente ou a entrada não estiverem disponíveis, reporte o bloqueio.

Critério de aceite: a saída reproduz as duas pendências, a entrada permanece intacta e uma segunda execução do mesmo arquivo produz o mesmo resultado. Arquivo ausente, cabeçalho incorreto e falha de execução precisam ficar visíveis, nunca ser resumidos como “sem problemas”.

7. Transforme o teste em rotina somente após validar

A documentação oficial de agendamento descreve gerenciamento de tarefas, execução por gateway e opções sem agente para scripts determinísticos. No arranjo deste guia, o agendador pertence ao executor autorizado. O notebook mantém a função de cockpit para orientação e revisão do trabalho. Confira a versão instalada antes de configurar comandos ou capacidades.

Antes de ativar recorrência, defina frequência, fuso, responsável, limite de duração, diretório, retenção e destino. Mantenha a saída no ambiente de trabalho; envio a terceiros exige autorização própria. Para inspecionar uma instalação já configurada, a documentação apresenta comandos como hermes cron list e hermes cron status.

Uma rotina criada não está comprovadamente funcionando até que uma execução real tenha registro e saída conferidos. Pausar o agendamento também não deve ser confundido com encerrar uma execução já em andamento; confira o estado e o procedimento documentado do ambiente.

8. Amplie com limites e transferência de conhecimento

Meça tamanho da entrada, duração, memória quando relevante e volume de saída antes de aumentar o lote. Defina retenção e evite guardar cópias integrais desnecessárias. Uma tarefa que passou a usar modelos ou serviços externos precisa de nova estimativa de consumo e permissões compatíveis.

Documente o contrato, o validador, o exemplo esperado e como interromper a rotina. Para avançar em supervisão e ferramentas, use os cursos Agentes de IA Autônomos e MCP para quem decide, de Alexandre Caramaschi.

Perguntas frequentes

O notebook precisa ficar ligado como servidor?

Não no arranjo descrito neste guia. O desktop atua como cockpit; a execução autônoma e seu agendamento pertencem a um ambiente executor separado e preparado, com sandbox.

O exemplo usa API paga ou modelo local?

Não. O validador usa somente Python e um CSV de teste, sem rede ou modelo. Uma automação futura que utilize serviços externos precisa de orçamento e autorização próprios.

Como saber se a automação está pronta para agendar?

Ela deve passar pela execução única, produzir a saída esperada, preservar a entrada e registrar falhas. Depois é necessário definir ambiente, permissões, frequência, limites, retenção e responsável.