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
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.
Profile default
HERMES_HOME=~/.hermes Atalho:
hermesconfig.yaml.envSOUL.mdmemories/sessões e state.dbskills/ e cron/logs/
Profile coder
HERMES_HOME=~/.hermes/ profiles/ coder Atalho:
coderOs mesmos arquivos do padrão, nesta pasta.
coder chatcoder setupcoder skills list
Profile pesquisa
HERMES_HOME=~/.hermes/ profiles/ pesquisa Atalho:
pesquisaOs mesmos arquivos do padrão, nesta pasta.
pesquisa chatpesquisa doctorpesquisa gateway stop
Compartilhado por todos os profiles
- Código do Hermes
hermes update - Logins OAuth
~/.hermes/auth.json - HOME do usuário
~/.ssh e ~/.gitconfig - Gateway de mensagens
gateway.multiplex_profiles
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, emMEMORY.mdeUSER.md.- Sessões e
state.db: o histórico das conversas. skills/,cron/elogs/: skills, tarefas agendadas e registros.
Compartilhado por todos
- Código do Hermes: o
hermes updatebaixa 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. HOMEdo usuário:git,ssh,ghe 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
hermes profile create pesquisaas skills empacotadas do Hermesconfiguração, chaves, memória e sessões, que você preenche com pesquisa setuphermes profile create coder --cloneconfig.yaml, .env, SOUL.md, skills, MEMORY.md, USER.md e pluginssessões, state.db e tarefas agendadashermes profile create copia --clone-alltudo o que o profile de origem tem, menos o históricosessões, state.db, backups, snapshots, checkpoints e tarefas agendadasNenhum 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:
# o atalho criado com o profilecoder chat# a opção -p, só para este comandohermes -p coder chat# o profile fixo para os próximos comandoshermes profile use coder# volta ao profile padrãohermes profile use defaultO 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:
# estaciona o coder, e os outros continuam no arhermes -p coder gateway stop# volta a atender o coderhermes -p coder gateway start# reconecta o coder com a configuração atualhermes -p coder gateway restartCada 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
# gera coder.tar.gzhermes profile export coder# instala em outra máquinahermes profile import ./coder.tar.gz --name coder# renomeia pasta e atalhohermes profile rename coder dev# apaga o profilehermes profile delete coderA 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.