Hermes Agent: Arquivos de Configuração

Última atualização: 2026-08-31

Os arquivos de configuração são o centro de controle do Hermes Agent — com as configurações certas, o Agente parece um velho amigo que te entende; com as erradas, é como um novato que não sabe o que fazer.

💡 Dica: O Hermes usa YAML como formato principal de configuração, suporta substituição por variáveis de ambiente e alternância entre ambientes. Todas as configurações têm padrões sensatos — o modo zero-config funciona imediatamente.

📋 Pré-requisitos: Lição 2 — Instalação

1. O Que Você Vai Aprender

# Conteúdo
Estrutura completa do config.yaml
Explicação das opções de configuração principais
Mecanismo de substituição por variáveis de ambiente
Gerenciamento de configuração multi-ambiente
Validação e depuração de configuração

2. História

(1) Problema: Config Muda Toda Vez Que Troca de Ambiente

Bob usa modelos locais durante o desenvolvimento, muda para API na nuvem para deploy, e precisa de uma Key diferente para testes. Toda vez edita os arquivos de configuração manualmente, cometendo erros ou esquecendo de trocar de volta.

(2) Solução: Separação de Configuração por Ambiente

Alice resolveu isso com variáveis de ambiente e múltiplos arquivos de configuração:

BASH
# Ambiente de desenvolvimento
hermes chat --env dev

# Ambiente de produção
hermes chat --env prod

# Ambiente de teste
hermes chat --env test

Bob nunca mais precisa editar configurações manualmente.


3. Estrutura Completa do config.yaml

YAML
# ~/.hermes/config.yaml

# ===== Configuração Básica do Agente =====
agent:
  name: "MyHermes"
  version: "1.0.0"
  description: "My personal AI assistant"
  
  personality:
    tone: "friendly"
    verbosity: "balanced"
    language: "pt-br"

  memory:
    enabled: true
    working_memory_limit: 50
    long_term_auto_save: true
    user_model_update: true
    honcho_endpoint: null

# ===== Configuração de Modelo =====
model:
  default: "gpt-4o"
  fallback: "gpt-4o-mini"
  temperature: 0.7
  max_tokens: 4096
  timeout: 60

# ===== Configuração de Habilidades =====
skills:
  auto_learn: true
  learn_threshold: 3
  custom_skills_dir: null

# ===== Configuração de Ferramentas =====
tools:
  enabled_categories:
    - filesystem
    - web
    - code_execution
    - vision
    - voice
    - data
  disabled_tools: []
  sandbox: true
  max_execution_time: 30

# ===== Configuração de Plataforma =====
platforms:
  telegram:
    enabled: false
    token: null
  discord:
    enabled: false
    token: null
  slack:
    enabled: false
    token: null
  web:
    enabled: true
    port: 8080
  terminal:
    enabled: true

# ===== Segurança e Privacidade =====
security:
  redact_api_keys: true
  sandbox_code: true
  allowed_paths:
    - "~/projects"
    - "~/documents"
  denied_paths:
    - "~/.ssh"
    - "~/.gnupg"

# ===== Logging =====
logging:
  level: "INFO"
  file: "~/.hermes/logs/hermes.log"
  max_size_mb: 100
  rotation: 7

# ===== Avançado =====
advanced:
  cron_enabled: true
  checkpoint_enabled: true
  delegate_enabled: true
  mcp_enabled: true
  research_mode: false

4. Opções de Configuração Principais

(1) Personalidade do Agente

YAML
personality:
  tone: "friendly"
  verbosity: "balanced"
  language: "pt-br"
  custom_prompt: |
    You are my technical assistant, skilled in:
    1. React + TypeScript development
    2. Code review and optimization
    3. Technical documentation
    Respond in concise Portuguese.

(2) Configuração de Memória

YAML
memory:
  working_memory_limit: 50
  long_term_auto_save: true
  user_model_update: true
  recall_on_start: true
  memory_decay: false

(3) Limites de Segurança de Ferramentas

YAML
tools:
  sandbox: true
  max_execution_time: 30
  
  filesystem:
    allow_write: true
    allow_delete: false
    max_file_size: 10MB
    
  web:
    allow_requests: true
    blocked_domains:
      - "malware-site.com"
    rate_limit: 10

5. Substituição por Variáveis de Ambiente

Qualquer opção de configuração pode ser substituída por variáveis de ambiente. Regra: prefixo HERMES_ + caminho separado por underline.

BASH
# Substituir modelo padrão
export HERMES_MODEL_DEFAULT="gpt-4o-mini"

# Substituir API Key
export OPENAI_API_KEY="sk-..."

# Substituir configuração de memória
export HERMES_MEMORY_ENABLED="false"

# Substituir nível de log
export HERMES_LOGGING_LEVEL="DEBUG"

# Usar arquivo .env (recomendado)
cat > ~/.hermes/.env << EOF
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
HERMES_MODEL_DEFAULT=gpt-4o
HERMES_LOGGING_LEVEL=INFO
EOF

Ordem de Prioridade

Argumentos CLI > Variáveis de ambiente > Arquivo .env > config.yaml > Padrões

6. Gerenciamento Multi-ambiente

BASH
# Estrutura de diretórios
~/.hermes/
├── config.yaml           # Configuração padrão
├── config.dev.yaml       # Desenvolvimento
├── config.prod.yaml      # Produção
├── config.test.yaml      # Teste
└── .env                  # Variáveis de ambiente
YAML
# config.dev.yaml - Desenvolvimento
model:
  default: "llama3.2"
  temperature: 0.9

logging:
  level: "DEBUG"

tools:
  sandbox: false
YAML
# config.prod.yaml - Produção
model:
  default: "gpt-4o"
  temperature: 0.5

logging:
  level: "WARNING"

security:
  sandbox_code: true
  redact_api_keys: true

7. Validação de Configuração

BASH
# Validar arquivo de configuração
hermes config validate

# Mostrar configuração efetiva
hermes config show

# Obter valor específico de configuração
hermes config get model.default

# Definir valor de configuração
hermes config set model.temperature 0.5

# Exportar configuração
hermes config export > backup.yaml

Experimente: Personalize Seu Agente

BASH
hermes config set personality.tone "professional"
hermes config set personality.language "pt-br"
hermes config set memory.working_memory_limit 100

hermes config show | head -20

hermes chat
> Hello! Your tone setting has been switched to professional mode.

❓ Perguntas Frequentes

P: Onde está o arquivo de configuração? R: Localização padrão é ~/.hermes/config.yaml. Altere via variável de ambiente HERMES_CONFIG_PATH.

P: Preciso reiniciar após alterar a configuração? R: A maioria das configurações recarrega automaticamente sem reiniciar. Troca de modelo e configurações de plataforma exigem reinicialização.

P: O que acontece se a configuração estiver errada? R: O Hermes valida a configuração na inicialização, reporta erros com números de linha e não usará configurações incorretas silenciosamente.

P: Como fazer backup da configuração? R: hermes config export > backup.yaml, ou copie diretamente ~/.hermes/config.yaml.

P: Compartilhar configuração entre máquinas? R: Coloque os arquivos de configuração em um repositório Git, clone em cada máquina e configure HERMES_CONFIG_PATH para apontar para a configuração do repositório. Nunca commite API Keys!

P: Como resetar para os padrões? R: hermes config reset, ou delete config.yaml e re-execute hermes init.


📖 Resumo


📝 Exercícios

  1. Básico (⭐): Modifique o config.yaml para definir o nome e a preferência de idioma do seu Agente, verifique se surte efeito.
  2. Intermediário (⭐⭐): Crie conjuntos de configuração dev e prod, implemente alternância de ambiente com um clique.
  3. Avançado (⭐⭐⭐): Projete um esquema de configuração 12-factor usando variáveis de ambiente, garantindo zero segredos hardcoded.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%