Ir para o conteúdo
Promovaweb

Vários agentes na mesma VPS

Um profile é uma pasta do Hermes com configuração, chaves, memória, sessões e skills próprias. Cada profile funciona como outro agente dentro do mesmo usuário da VPS, com modelo, personalidade e bot diferentes.

Ir direto para o guia: Profiles no Hermes

Ficha e sumário da página

Referência técnica
Hermes Agent v0.23.1
Revisão
12 de novembro de 2026
Conteúdo
Documentação oficial consultada
  1. Como o Hermes separa um agente do outro
  2. O que muda de um profile para outro
  3. Três jeitos de criar um profile
  4. Escolha o profile em cada comando
  5. Um gateway para todos os profiles
  6. O profile não isola o disco
  7. Exporte, renomeie e apague
  8. Profiles passo a passo

Como o Hermes separa um agente do outro

O Hermes guarda tudo o que um agente acumula numa pasta própria, a home do Hermes. Na instalação, essa pasta é ~/.hermes. Ela já é um profile: o default. Cada profile novo ganha a própria pasta em ~/.hermes/profiles/<nome>/, com os mesmos arquivos do padrão.

A troca de um agente para outro passa pela variável HERMES_HOME. Quando você cria o profile coder, o Hermes grava um atalho em ~/.local/bin/coder. Esse atalho define HERMES_HOME=~/.hermes/profiles/coder e chama o hermes. Daí em diante, configuração, chaves, memória, sessões, logs e tarefas agendadas saem dessa pasta. O coder não enxerga o que o agente padrão guardou.

  1. Profile default

    HERMES_HOME=~/.hermes

    Atalho: hermes

    • config.yaml
    • .env
    • SOUL.md
    • memories/
    • sessões e state.db
    • skills/ e cron/
    • logs/
  2. Profile coder

    HERMES_HOME=~/.hermes/profiles/coder

    Atalho: coder

    Os mesmos arquivos do padrão, nesta pasta.

    • coder chat
    • coder setup
    • coder skills list
  3. Profile pesquisa

    HERMES_HOME=~/.hermes/profiles/pesquisa

    Atalho: pesquisa

    Os mesmos arquivos do padrão, nesta pasta.

    • pesquisa chat
    • pesquisa doctor
    • pesquisa gateway stop

Compartilhado por todos os profiles

  • Código do Hermeshermes update
  • Logins OAuth~/.hermes/auth.json
  • HOME do usuário~/.ssh e ~/.gitconfig
  • Gateway de mensagensgateway.multiplex_profiles
Cada atalho aponta HERMES_HOME para uma pasta. O que fica na faixa de baixo vale para todos os profiles da máquina.

O Hermes só trata como profile uma pasta de ~/.hermes/profiles/ que tenha um arquivo de identidade: config.yaml, .env, SOUL.md, profile.yaml, auth.json ou state.db. Uma pasta vazia, deixada por um log ou por uma tarefa agendada, fica fora do hermes profile list, do gateway e da opção -p.

Cada profile atende um processo de agente por vez. Dois processos apontados para a mesma pasta gravam memória ao mesmo tempo. Cada um carrega na abertura da sessão o que o outro gravou. Para dois agentes trabalharem juntos, crie dois profiles.

O que muda de um profile para outro

Separado em cada profile

  • config.yaml: modelo, provedor, ferramentas e as demais opções.
  • .env: chaves de API e tokens de bot.
  • SOUL.md: personalidade e instruções do agente.
  • memories/: a memória curada, em MEMORY.md e USER.md.
  • Sessões e state.db: o histórico das conversas.
  • skills/, cron/ e logs/: skills, tarefas agendadas e registros.

Compartilhado por todos

  • Código do Hermes: o hermes update baixa uma vez e leva as skills novas a todos os profiles, sem sobrescrever as que você editou.
  • Logins OAuth: OpenAI Codex, Anthropic e xAI ficam em ~/.hermes/auth.json, até o profile fazer o próprio login.
  • HOME do usuário: git, ssh, gh e as outras CLIs usam as mesmas credenciais em todos os profiles.
  • Permissões no disco: o agente lê e grava o mesmo que o usuário hermes.
  • Gateway de mensagens: um processo por máquina atende todos os profiles.

Os logins OAuth são compartilhados porque esses provedores usam token de renovação de uso único. Uma cópia do login seria a mesma credencial com dois donos. O primeiro profile a renovar invalidaria a do outro. Com o GPT Luna pela assinatura do Codex, você faz o login uma vez e todos os profiles o aproveitam. Para um profile ter login separado, rode hermes -p <nome> auth add openai-codex dentro dele.

Três jeitos de criar um profile

ComandoO que o profile novo recebeO que começa vazio
hermes profile create pesquisaas skills empacotadas do Hermesconfiguração, chaves, memória e sessões, que você preenche com pesquisa setup
hermes profile create coder --cloneconfig.yaml, .env, SOUL.md, skills, MEMORY.md, USER.md e pluginssessões, state.db e tarefas agendadas
hermes profile create copia --clone-alltudo o que o profile de origem tem, menos o históricosessões, state.db, backups, snapshots, checkpoints e tarefas agendadas

Nenhum dos três copia os canais de mensagem. Tokens de bot, listas de usuários autorizados e as seções telegram: e discord: do config.yaml ficam no profile de origem, porque um bot só pode pertencer a um profile. O comando informa quais plataformas ficaram para trás. Configure o bot do profile novo com hermes -p <nome> setup. A opção --clone-channels força a cópia, mas o Hermes a recusa quando o gateway já atende o profile de origem.

As tarefas agendadas também não vão para o clone. Com elas, cada tarefa rodaria duas vezes, uma em cada profile. Para guardar uma cópia completa, com histórico e tarefas, use hermes profile export.

O clone parte do profile atual. Para escolher a origem, use --clone-from: hermes profile create trabalho --clone-from coder copia a configuração do coder.

Escolha o profile em cada comando

O mesmo agente responde de três formas. As três chegam ao mesmo lugar:

Terminal
# o atalho criado com o profile
coder chat
# a opção -p, só para este comando
hermes -p coder chat
# o profile fixo para os próximos comandos
hermes profile use coder
# volta ao profile padrão
hermes profile use default

O atalho é o hermes -p coder com outro nome e aceita qualquer subcomando: coder doctor, coder skills list, coder config set. A opção -p funciona em qualquer posição da linha e não muda o profile fixo. O hermes profile use grava o profile fixo. Depois disso, todo hermes sem opção usa esse profile.

O terminal mostra onde você está. O prompt vira coder ❯, o banner de abertura traz Profile: coder e o hermes profile informa o nome, a pasta, o modelo e o estado do gateway. Se a pasta do profile fixo for apagada à mão, o Hermes recusa os comandos comuns até você rodar hermes profile use default.

Um gateway para todos os profiles

Desde a v0.22.0, o Hermes roda um gateway de mensagens por máquina. Esse gateway atende todos os profiles. O gateway do profile padrão é o processo principal. Ao subir, ele confere se pode servir os outros profiles: precisa encontrar dois ou mais, nenhum rodando um gateway próprio e nenhum token de bot repetido. Com tudo certo, ele atende todos e grava gateway.multiplex_profiles: true no config.yaml do profile padrão.

Por isso, um profile nomeado não ganha gateway próprio. O hermes -p coder gateway install é recusado e indica instalar o gateway pelo profile padrão, com hermes gateway install. Com o gateway no ar, os comandos do profile controlam só os bots dele:

Terminal
# estaciona o coder, e os outros continuam no ar
hermes -p coder gateway stop
# volta a atender o coder
hermes -p coder gateway start
# reconecta o coder com a configuração atual
hermes -p coder gateway restart

Cada profile precisa do próprio token em cada plataforma. O mesmo token não pode ser lido por dois profiles: o gateway estaciona o canal repetido e mantém os demais funcionando. Os registros ficam separados, em ~/.hermes/logs/gateway.log para o padrão e em ~/.hermes/profiles/<nome>/logs/gateway.log para os outros.

O profile não isola o disco

Duas opções do config.yaml de cada profile organizam o trabalho. O terminal.cwd define a pasta onde os comandos começam e exige caminho absoluto, porque cwd: "." significa a pasta de onde o Hermes foi aberto, não a do profile. O terminal.home_mode: profile troca o HOME dos comandos por ~/.hermes/profiles/<nome>/home. Com isso, as credenciais de git, ssh e gh do usuário saem do alcance do agente. Nesse modo, você configura dentro dessa pasta o .ssh, o .gitconfig e os logins de CLI que o agente for usar.

As duas opções não mudam as permissões do processo. Perguntar ao modelo qual é a pasta atual também não testa nada. Para separar de fato dois agentes, use dois usuários de serviço, cada um com a própria instalação do Hermes.

Exporte, renomeie e apague

Terminal
# gera coder.tar.gz
hermes profile export coder
# instala em outra máquina
hermes profile import ./coder.tar.gz --name coder
# renomeia pasta e atalho
hermes profile rename coder dev
# apaga o profile
hermes profile delete coder

A exportação leva skills, memória, SOUL.md, tarefas agendadas, plugins e configuração. O auth.json, o .env e as outras credenciais ficam de fora. O rename move também o registro do gateway e a identidade das sessões. O delete para o atendimento do profile, remove o atalho e apaga a pasta, depois que você confirma digitando o nome. O profile padrão não pode ser apagado: para remover tudo, o comando é hermes uninstall.

Profiles passo a passo

StayCloud

Uma VPS para desenvolver com agentes

Servidor da StayCloud em São Paulo, com acesso root e disco NVMe, para deixar seus agentes de IA rodando o dia todo.

Montar minha VPS

Link de parceiro da Promovaweb.