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.
📋 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:
# 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
# ~/.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
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
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
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.
# 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
# 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
# config.dev.yaml - Desenvolvimento
model:
default: "llama3.2"
temperature: 0.9
logging:
level: "DEBUG"
tools:
sandbox: false
# 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
# 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
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 ambienteHERMES_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_PATHpara 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-executehermes init.
📖 Resumo
- config.yaml é o arquivo de configuração principal cobrindo Agente, modelos, memória, ferramentas, plataformas etc.
- Prioridade: Argumentos CLI > variáveis de ambiente > .env > config.yaml > padrões
- Multi-ambiente:
config.dev.yaml/config.prod.yamlpara alternância dev/prod hermes config validatepara verificar configuração,hermes config showpara ver valores efetivos- Segurança: sandbox, restrições de caminho, redação de API keys
📝 Exercícios
- Básico (⭐): Modifique o config.yaml para definir o nome e a preferência de idioma do seu Agente, verifique se surte efeito.
- Intermediário (⭐⭐): Crie conjuntos de configuração dev e prod, implemente alternância de ambiente com um clique.
- Avançado (⭐⭐⭐): Projete um esquema de configuração 12-factor usando variáveis de ambiente, garantindo zero segredos hardcoded.