Dois Gmails, um Hermes só: as contas dos connectors finalmente ganharam nome

Nove da manhã: você pergunta ao Hermes no chat se caiu algo importante na sua caixa de entrada hoje. Ele abre a caixa pessoal que você criou para um projeto de fim de semana, e a resposta do cliente que está parada no seu e-mail de trabalho passa batido. Então você acrescenta “quis dizer a do trabalho” — e o melhor que ele consegue responder é “o Gmail está conectado”, porque é genuinamente só isso que ele sabe.
O modelo não estava sendo lento. O Hermes conhecia exatamente um login conectado por app, sem nome e sem uma segunda conta para escolher.
Um app, uma conta
O Hermes alcança apps externos por meio de connectors: o gateway os hospeda como tools com nomes do tipo connectors__gmail__SEND_EMAIL, que você encontra com tool_search e chama com tool_call. Nesse modelo, a versão antiga assumia uma conta por app, e as consequências eram bem concretas:
- Um segundo login do Gmail não tinha nome que o modelo pudesse usar, então ele pegava a conta mais recente;
reconnect gmailchecava a flag “connected” do connector inteiro. Com uma conta saudável e outra expirada, ele dizia conectado e não reparava nada;- Um card de conexão do Gmail já aberto era reaproveitado para qualquer outro pedido de conexão do Gmail;
- Os resultados nunca diziam sob qual conta a chamada rodou.
Para uma pessoa em uma máquina só, isso é apenas irritante. Quando o mesmo gateway passa a servir mais de uma pessoa, vira um problema de controle de acesso — exatamente o muro com que a comunidade esbarrou na issue #15602, ligando um mesmo gateway Hermes ao Gmail de duas pessoas ao mesmo tempo.
As contas ganham nome: o alias
A versão nova dá a cada conta um nome curto, chamado de alias no formato de dados: de 1 a 32 letras minúsculas, dígitos ou hífens, começando com letra ou dígito. Uma conta sem alias aparece com o label do próprio app.
A regra é simples: assim que um app tem duas contas ativas, o gateway adiciona um campo connector_alias ao schema da tool daquele connector, listando os nomes que ela aceita. O modelo passa um deles na chamada:
tool_call connectors__gmail__SEND_EMAIL
{"connector_alias": "work", ...}
O resultado devolve account, e o label ao vivo da tool é renderizado como Gmail · send email (work). Uma olhada basta para saber qual identidade mandou o e-mail.
Junto com o nome, outras coisas mudaram:
- Os objetos target do
manage_connectionsaceitamalias(qual conta) eto(o novo nome), além de uma açãorename. Uma chamada com alias carrega esse único target; targets MCP recusam os dois campos; - connect com nome pede essa conta ao gateway: ou adiciona uma nova, ou responde connected quando já existe uma conta ativa com aquele nome;
- reconnect com nome lê a linha daquela conta em vez da flag do connector inteiro, então conserta a quebrada enquanto a saudável continua funcionando. Se essa linha não puder ser lida, a tool reporta o erro em vez de criar uma conta nova em silêncio;
- status lista as contas de cada connector com alias, label, status e active.
O CLI: hermes connectors
Um comando novo cobre listar, conectar, renomear e remover:
hermes connectors list
hermes connectors accounts
hermes connectors accounts gmail --all
hermes connectors connect gmail --alias home
hermes connectors rename gmail work --to office
hermes connectors disconnect gmail --alias home --yes
| Subcomando | O que ele faz |
|---|---|
list (alias ls) |
Todos os connectors e se estão conectados |
accounts [app] [--all] |
Contas conectadas; as linhas aposentadas são dobradas, a menos que você passe --all |
connect <app> [--alias NAME] [--reconnect] [--force] |
Conecta uma conta nova; --reconnect conserta uma quebrada; --force loga de novo uma saudável |
rename <app> <name-or-label> --to <new> |
Renomeia uma conta |
disconnect <app> [--alias NAME] [--yes] |
Remove uma conta; com stdin não interativo é preciso --yes |
Detalhes que vale saber antes de digitá-los:
connectimprime o link de login e espera até a conta se estabilizar ou o prazo estourar. Ctrl-C fecha o connect aberto e sai com 130, para o próximo connect daquele app não ficar bloqueado;- Um nome que quebra o formato, ou que outra conta viva do mesmo app já usa, é recusado antes de qualquer requisição sair;
- Com mais de uma conta em um app, um comando sem
--aliasdá erro e lista os nomes entre os quais você pode escolher.
O overlay /connectors no TUI
Digite /connectors na interface de terminal e um overlay flutuante abre, com uma linha por conta mostrando app, nome e status:
rrenomeia ali mesmo — Enter salva, Esc cancela;aadiciona uma conta: escolha o app, digite um nome, abra o link. O overlay espera até a conta se estabilizar, o link expirar ou o gateway recusar;creconecta a conta selecionada. Ele nunca apaga nada, uma conta saudável responde connected na hora, e uma linha sem nome pede que você dê um nome antes;xremove a conta selecionada depois do prompt de confirmação compartilhado do TUI;- Tab mostra ou dobra as contas aposentadas, que não podem ser reconectadas enquanto estiverem dobradas.
Vale uma regra conservadora do começo ao fim: enquanto qualquer pergunta ou confirmação do agente estiver aberta, o overlay para de ler teclas, para que responder a um prompt não apague uma conta sem querer.
O app de desktop
Em Capabilities → Connectors, cada app agora lista todas as suas contas, com ações de nomear, renomear, adicionar, reconectar e remover; a remoção passa por uma confirmação. Quando o agente nomeia uma conta nova, o chat diz qual nome ele escolheu — por exemplo “O Hermes chamou esta conta do Gmail de work. Renomeie quando quiser.” O nome é escolha do agente; não há prompt de nome para responder.
Ressalvas
- É obrigatório fazer login no Nous Portal. Connectors são tools hospedadas, então
hermes loginvem primeiro; sem isso, o comando manda você entrar em vez de falhar com algo incompreensível. - Renomear depende do Portal. Enquanto o Portal não entregar a rota de rename,
renameresponde “This Nous Portal cannot rename connector accounts yet.” e o editor do desktop mostra essa recusa e restaura o nome antigo. Todo o resto funciona. - Remover uma conta continua sendo só seu. O CLI pede confirmação, o desktop pede um clique. Nenhum fluxo automático apaga uma conta por você.
- Status: este trabalho (PRs #135097 / #135151 / #135173) entrou na
mainem 2026-10-11. A release tagueada atual, v0.21.6 de 8 de outubro, ainda não o contém — ele chega na próxima release. - Connectors só existem para contas Nous logadas, e é por isso que
hermes connectors listpode responder “Connectors are not available. Sign in withhermes loginfirst.”
Para fechar
“Usa a do trabalho” agora é algo que o agente consegue de fato seguir: a conta tem nome, o modelo diz o nome na chamada, o resultado informa qual identidade rodou, e um reparo mexe só na conta quebrada. Dar um nome custa um comando e rende rastreabilidade em cada ação de saída — o que importa muito mais do que conveniência quando uma máquina guarda tanto os seus logins de trabalho quanto os pessoais.
Se a camada de connectors é novidade para você, comece por como funciona a busca de tools e depois veja de onde vêm as tools hospedadas no catálogo oficial de MCP remoto. Instalando o Hermes pela primeira vez? O guia de instalação é o lugar de começar.