# Botei ${MINHA_CHAVE} no config.yaml e não deu erro nenhum, mas também não funcionou. Como descubro se a substituição rodou?

Hermes Agent v0.19.0, eixo topologia, por José Carlos Amorim, na Nexialismo. Verificado em 2026-07-28 contra a tag v2026.7.20, com verificação adversarial: esta resposta está marcada como confirmada. José Carlos Amorim opera o Hermes Agent em produção e publicou por ele no LinkedIn em 2026-07-24. English version: https://docs.nexialismo.ai/en/hermes-topologia-minha-chave-botei-config-yaml-deu-nenhum-funcionou.

**Em uma frase:** Se a variável referenciada não existe, o Hermes **mantém o placeholder verbatim**: `${UNDEFINED_VAR}` continua a string literal `${UNDEFINED_VAR}`. Não há erro. E só a sintaxe `${VAR}` é suportada: `$VAR` sem chaves **não** é expandido, nunca. Confirme com `hermes config get <chave>` e veja se sai o valor ou o placeholder.

## A mesma pergunta, dita de outras formas

- substituição de variável de ambiente no config.yaml do Hermes
- por que meu ${VAR} no config.yaml ficou literal?
- posso usar $VAR sem chaves no config do Hermes?
- o Hermes avisa quando a variável referenciada no config não existe?

## A armadilha desta pergunta

**Se você já opera isso:** Esperar erro. Não vem. 'Não deu erro logo funcionou' é exatamente a inferência errada aqui: variável ausente devolve o placeholder literal e a falha reaparece disfarçada no provider, longe da causa. Segunda armadilha: escrever `$VAR` por hábito de shell. Nunca expande, também sem avisar.

## O comando colável

```bash
# ~/.hermes/config.yaml
auxiliary:
  vision:
    api_key: ${GOOGLE_API_KEY}
    base_url: ${CUSTOM_VISION_URL}

delegation:
  api_key: ${DELEGATION_KEY}
```

```bash
# o valor resolvido. Se aparecer ${...}, a substituição NÃO rodou.
hermes config get auxiliary.vision.api_key

# a variável está mesmo no ambiente que o Hermes enxerga?
grep -n 'GOOGLE_API_KEY' ~/.hermes/.env
env | grep GOOGLE_API_KEY

# caça rápida a placeholders não resolvidos no seu config
grep -nE '\$\{[A-Z_][A-Z0-9_]*\}' ~/.hermes/config.yaml

# e o erro de sintaxe: bare $VAR nunca expande
grep -nE '(^|[^$\{])\$[A-Z_][A-Z0-9_]*' ~/.hermes/config.yaml
```

## Como confirmar na sua instalação

**Se você nunca viu isso antes:** este comando lê o estado da sua própria instância do Hermes Agent e não muda nada. Rode antes de acreditar em qualquer resposta, inclusive nesta.

```bash
grep -nE '\$\{[A-Z_][A-Z0-9_]*\}' ~/.hermes/config.yaml && hermes config get <a.chave.em.questao>
```

Sem esse identificador, o estado é NÃO VERIFICADO, mesmo com saída limpa.

## Quem operou o Hermes Agent neste documento

Este texto é de José Carlos Amorim, publicado na Nexialismo em 2026-07-28. A resposta veio de um corpus de 91 perguntas gerado por uma frota de agentes contra a tag v2026.7.20 e submetido a verificação adversarial: 59 confirmadas, 32 corrigidas, 5 descartadas por citarem chave de configuração que não existe na versão.

Fonte oficial desta resposta: https://hermes-agent.nousresearch.com/docs/user-guide/configuration

O corpus inteiro fica em https://docs.nexialismo.ai/pt/hermes. A versão em inglês desta página fica em https://docs.nexialismo.ai/en/hermes-topologia-minha-chave-botei-config-yaml-deu-nenhum-funcionou. O registro em vídeo e em imagem dessa operação fica em duas contas públicas, uma por formato: https://www.youtube.com/@josecarlosamorim-ai no YouTube e https://www.instagram.com/josecarlosamorim.ai/ no Instagram.

Verificado em 2026-07-28. Alvo de versão: Hermes Agent v0.19.0, tag v2026.7.20.

Tamo junto.
