Documentação oficial desta página · v0.20.6
Segredos
O Hermes consegue puxar chaves de API de gerenciadores de segredo externos na inicialização do
processo, em vez de guardá-las em ~/.hermes/.env. O token de acesso ao gerenciador fica no .env;
todas as outras chaves de provedor (OpenAI, Anthropic, OpenRouter etc.) podem ficar no gerenciador e
girar de forma centralizada.
Suportados:
- Bitwarden Secrets Manager — CLI
bws, instalada sob demanda; o plano gratuito funciona. - 1Password — referências
op://pela CLI oficialop; autenticação por conta de serviço ou sessão do aplicativo. - Comando auxiliar — qualquer cofre com linha de comando
(
keepassxc-cli,secret-tool,pass, scripts próprios), por um comando configurado por você que imprime linhasCHAVE=VALOR.
Várias fontes ao mesmo tempo
Dá para habilitar mais de uma fonte simultaneamente — por exemplo, um projeto do Bitwarden da equipe ao lado de um plugin de cofre pessoal. As fontes se combinam por variável, numa escada de precedência determinística:
- Seu
.enve o shell vencem, por padrão. Uma fonte só substitui um valor existente quando ooverride_existing: truedela estiver definido (o Bitwarden usatruepor padrão, para a rotação central funcionar). - Fontes mapeadas vencem fontes em massa. Uma fonte em que você liga variáveis a referências
explicitamente (um mapa
env:) passa na frente de uma fonte que injeta um projeto inteiro de forma implícita, independentemente da ordem. - A primeira fonte vence. Dentro do mesmo formato, a ordem da lista opcional
secrets.sources(ou a ordem de registro) decide. Reivindicações posteriores de uma variável já tomada são puladas — com aviso na inicialização, nunca em silêncio.
O override_existing nunca deixa uma fonte sobrescrever uma variável que outra fonte já reivindicou,
e nenhuma fonte consegue sobrescrever o token de acesso de outra (o BWS_ACCESS_TOKEN, por exemplo).
secrets:
sources: [bitwarden] # ordem explícita, opcional
bitwarden:
enabled: true
project_id: "..."
Toda credencial injetada por uma fonte é rotulada com a origem — os fluxos de configuração e o
hermes model mostram (from Bitwarden) ao lado das chaves detectadas, então você sempre sabe de
onde veio cada valor.
Perfis e cofres compartilhados
Dois botões no nível do orquestrador tornam um cofre compartilhado seguro entre perfis:
-
secrets.preserve_existing— uma lista de nomes de variável cujo valor no.envou no shell sempre vence, mesmo contra uma fonte comoverride_existing: true. Use para segredos de plataforma que mudam por perfil de propósito (oFEISHU_APP_SECRET, por exemplo), enquanto todo o resto gira de forma centralizada:secrets:preserve_existing: [FEISHU_APP_SECRET, TELEGRAM_BOT_TOKEN] -
Apelido por perfil (ligado por padrão;
secrets.profile_alias: falsedesliga) — quando o Hermes roda sob um perfil nomeado, um segredo do cofre chamadoFOO_<PERFIL>(só com sufixos de credencial:*_API_KEY,*_TOKEN,*_SECRET,*_KEY,*_PASSWORD) também preenche oFOOcanônico. GuardeTELEGRAM_BOT_TOKEN_MILLAno projeto compartilhado e os adaptadores do perfilmilla— que leem o nome fixoTELEGRAM_BOT_TOKEN— recebem o valor certo sozinhos. Uma variável que o cofre fornece direto pelo nome canônico sempre vence o apelido.
Os dois valem para todas as fontes — as que vêm junto e as de plugin — porque vivem no orquestrador, não nos backends.
Acrescentar o seu backend
Gerenciadores de segredo de terceiros vêm como plugins avulsos, não como mudanças no núcleo. Um
backend herda de agent.secret_sources.base.SecretSource (um método obrigatório:
fetch(cfg, home_path) -> FetchResult) e se registra com ctx.register_secret_source(MinhaFonte())
no register(ctx) do plugin. O orquestrador cuida de precedência, conflito, tempo limite e
procedência — a sua fonte só busca. Guia completo, com as regras do contrato, o auxiliar de
segurança para subprocessos e o kit de conformidade:
Plugins de Fonte de Segredos.
O conjunto que vem junto é fechado de propósito (mesma política dos provedores de memória):
Bitwarden e 1Password ficam no repositório. Todo o resto — Infisical, Proton Pass, HashiCorp Vault,
AWS Secrets Manager, chaveiros do sistema — pertence a repositórios de plugin; compartilhe no
Discord da Nous Research (#plugins-skills-and-skins).