🤖HermesBlog
Hermes Official Tutorials · Parte 78/9/2026

Tutorial 7: Arquivos de Configuração

Tutorial 7: Configuration Files — easy-to-understand guide based on official docs

Hermes tutorial

Tutorial 7: Arquivos de Configuração

Bem-vindos de volta, domadores de agentes! Neste tutorial, vamos mergulhar no coração do Hermes: os arquivos de configuração. Se você já se sentiu perdido em um mar de YAML e variáveis de ambiente, não tema — vamos tornar isso o mais indolor possível.

A Base do Hermes

Tudo vive em ~/.hermes/. Pense nisso como o apartamento do seu agente. Aqui está o que tem dentro:

~/.hermes/
├── config.yaml     # Configurações (modelo, terminal, TTS, compressão, etc.)
├── .env            # Chaves de API e segredos
├── auth.json       # Credenciais do provedor OAuth (Nous Portal, etc.)
├── SOUL.md         # Identidade primária do agente (slot #1 no prompt do sistema)
├── memories/       # Memória persistente (MEMORY.md, USER.md)
├── skills/         # Habilidades criadas pelo agente (gerenciadas via ferramenta skill_manage)
├── cron/           # Tarefas agendadas
├── sessions/       # Sessões do gateway
└── logs/           # Logs (errors.log, gateway.log — segredos são automaticamente mascarados)

O Caminho Mais Fácil: Configuração com Um Comando

Antes de entrarmos nos detalhes, aqui vai uma dica de profissional: execute hermes setup --portal. Um único OAuth te dá um provedor de modelo e todas as quatro ferramentas do Tool Gateway sem tocar em um único arquivo YAML. Assinantes do Portal também ganham 10% de desconto em provedores cobrados por token. É o jeito preguiçoso de começar, e a gente ama isso.

Gerenciando Sua Configuração

O Hermes te dá um kit completo de ferramentas para gerenciar configurações. Aqui estão os comandos que você usará no dia a dia:

hermes config              # Ver a configuração atual
hermes config edit         # Abrir o config.yaml no seu editor
hermes config get KEY      # Exibir um valor resolvido
hermes config set KEY VAL  # Definir um valor específico
hermes config unset KEY    # Remover um valor definido pelo usuário
hermes config check        # Verificar opções ausentes (após atualizações)
hermes config migrate      # Adicionar opções ausentes interativamente

Aqui estão alguns exemplos práticos:

hermes config get model
hermes config set model anthropic/claude-opus-4
hermes config set terminal.backend docker
hermes config unset terminal.backend
hermes config set OPENROUTER_API_KEY sk-or-...  # Salva no .env

O truque de mágica: hermes config set roteia automaticamente os valores para o arquivo certo. Chaves de API vão para o .env, todo o resto vai para o config.yaml. Chega de adivinhar!

O Que Vence Quando Há Conflito?

O Hermes resolve as configurações nesta ordem (prioridade mais alta primeiro):

  1. Argumentos de CLI — como hermes chat --model anthropic/claude-sonnet-4
  2. ~/.hermes/config.yaml — seu arquivo de configuração principal
  3. ~/.hermes/.env — para segredos (chaves de API, tokens, senhas)
  4. Padrões embutidos — valores hardcoded seguros

Regra de ouro: Segredos vão no .env. Todo o resto vai no config.yaml. Quando ambos estão definidos, o config.yaml vence para configurações não secretas.

Substituição de Variáveis de Ambiente

Você pode referenciar variáveis de ambiente no config.yaml usando a sintaxe ${VAR_NAME}:

auxiliary:
  vision:
    api_key: ${GOOGLE_API_KEY}
    base_url: ${CUSTOM_VISION_URL}

delegation:
  api_key: ${DELEGATION_KEY}

Referências múltiplas também funcionam: url: "${HOST}:${PORT}". Se uma variável não estiver definida, o placeholder permanece como está e um aviso é registrado no log. A sintaxe estilo Cursor ${env:VAR_NAME} também funciona, então você pode copiar trechos de configurações do Cursor ou do Claude sem alterações.

Timeouts de Provedores

Você pode definir timeouts por provedor e por modelo:

providers:
  some-provider:
    request_timeout_seconds: 600
    models:
      some-model:
        timeout_seconds: 300

Também existe o stale_timeout_seconds para detectar chamadas não-streaming obsoletas. Essas configurações substituem as variáveis de ambiente legadas HERMES_API_TIMEOUT e HERMES_API_CALL_STALE_TIMEOUT.

Limites de Runtime

Para superfícies de servidor de longa duração (gateway, hermes serve --isolated), você pode definir limites de descritores de arquivo:

runtime:
  nofile_soft_limit: 4096

O padrão é 4096. Defina como 0, false ou null para desativar o ajuste.

Comportamento de Atualizações

As configurações de atualização ficam em updates no config.yaml:

updates:
  pre_update_backup: quick

Concluindo

Esse foi o tour pela configuração! Lembre-se: hermes setup --portal para o caminho fácil, hermes config set para mudanças rápidas, e mantenha os segredos no .env. Seu agente vai agradecer.

A seguir: vamos explorar os provedores de IA e como conectar seus modelos favoritos. Fique ligado!

📖 Documentação oficial

この記事は Hermes Agent のDocumentação oficialに基づいています:Documentação oficial › user-guide/configuration