Automações com Hermes: do teste ao executor em sandbox
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.