Por Que o Hermes Reportou o Custo da Sua Execução Como US$ 0,00

Você termina uma execução longa do agent, dá uma olhada na status bar e lê a linha Cost: $0.00. Ou n/a. Você estava na sua própria chave da OpenAI o tempo todo, a execução claramente movimentou dezenas de milhares de tokens, e o número na sua frente diz que a sessão foi de graça. Ou ela realmente foi gratuita, ou o Hermes não fazia ideia de quanto custou — e até esta semana não havia como distinguir uma coisa da outra.
Essa ambiguidade acabou para a configuração mais comum. Uma execução que conversa direto com uma API de primeira linha — OpenAI, xAI, Anthropic, Google, DeepSeek — agora recebe preço mesmo quando o modelo não está na tabela embutida do Hermes, e a linha para de fingir que um gasto real foi zero (#120441, resgatando #56625; mais #120517 para a Anthropic).
Três lugares de onde um preço pode vir
Todo valor de custo que o Hermes imprime passa por uma única função de resolução, get_pricing_entry. Ela sobe uma escada curta e pega o primeiro degrau que responde:
- Uma rota de assinatura não recebe preço nenhum. Se a rota de cobrança diz que o modelo está incluído em um plano (
openai-codex,xai-oauth), a entrada é um marcador fixo de “incluído”. Nada é cobrado por token, então nada é estimado. - A OpenRouter mantém seu próprio caminho, porque o router publica preços ao vivo por modelo junto com o catálogo que serve.
- A tabela de preços embutida — um snapshot que vem junto com o Hermes — responde pelos modelos mainstream.
- O endpoint
/modelsdo próprio provider é consultado em seguida, quando você configurou uma base URL que expõe metadados de preço. - Novo: o preço de tabela do fornecedor via models.dev, quando os quatro primeiros degraus ficam em silêncio.
O quinto degrau é o interessante, e é deliberadamente estreito. Ele só dispara quando sua rota de cobrança aponta para o próprio fornecedor:
| Rota de cobrança | Host confiável |
|---|---|
openai |
openai.com |
xai |
x.ai |
anthropic |
anthropic.com |
google |
googleapis.com |
deepseek |
deepseek.com |
xiaomi |
xiaomimimo.com |
Nenhuma base URL também conta como confiável, já que isso significa o endpoint padrão do próprio provider.
Por que um relay ou um proxy continua sem preço
Aqui está a parte que vale internalizar antes de confiar em qualquer número de custo: o mesmo id de modelo pode ser cobrado a uma tarifa diferente dependendo de quem o serve.
Um proxy, um relay ou um endpoint customizado podem servir gpt-5-nano com markup, com desconto ou por uma assinatura de valor fixo. O preço de tabela do fornecedor seria, então, uma mentira confiante. Por isso o fallback verifica a origem que está prestes a precificar: ela precisa ser https na porta 443, e o host precisa ser o domínio daquele fornecedor ou um subdomínio dele. Qualquer outra coisa não retorna nada e a sessão mantém seu honesto unknown.
Isso aparece como n/a na status bar em vez de um valor em dólar inventado, e a documentação da CLI agora detalha exatamente quais fontes alimentam a linha: primeiro a tabela oficial de preços embutida, depois a listagem /models do provider, com o models.dev preenchendo a lacuna apenas para uma API de primeira linha direta.
Lendo o que você realmente gastou
- A linha Cost da status bar é a estimativa de relance (
n/aquando é desconhecida ou genuinamente sem preço). /usageabre o detalhamento, incluindo tokens de entrada contra saída e as categorias de leitura/escrita de cache.hermes insightsconsolida a análise de tokens e custos entre sessões, que é o que você quer quando está decidindo se um modelo vale a pena para um determinado trabalho.
Duas palavras de status carregam significado real, então vale saber qual delas você está olhando. Um custo estimated significa que o Hermes encontrou uma tabela de tarifas e a multiplicou pelos tokens que contou. unknown significa que não havia tabela de tarifas que ele estivesse disposto a aplicar — não que a execução tenha sido gratuita.
A estimativa em si é aritmética sobre números que o Hermes já tem. O fallback lê os metadados do modelo do cache em processo ou em disco em vez de discar para fora no meio do turno, então uma sessão de API direta não paga uma ida e volta de rede só para descobrir seu próprio preço.
Execuções pequenas não são mais arredondadas para US$ 0,00
Há uma segunda armadilha, mais antiga, na mesma tela: modelos baratos. Uma execução curta em um modelo pequeno pode legitimamente custar uma fração de centavo, e um formato com duas casas decimais renderiza isso como $0.00 — indistinguível de “sem preço”. Custos abaixo de um centavo agora são exibidos com quatro casas decimais, então você vê $0.0046 em vez de um zero chapado.
O que ainda é uma estimativa
Seja claro sobre o que você está olhando: são preços de tabela multiplicados pelos tokens contados, não a sua fatura. Se sua conta tem tarifas negociadas, descontos de uso comprometido ou uma política de cache diferente, a fatura do fornecedor vai divergir. As estimativas existem para responder “esse modelo é dez vezes mais caro que aquele?” — uma pergunta que elas respondem bem — e não para prever sua fatura mensal ao centavo.
Para os números do corrigido original: uma execução direta de openai-api em gpt-5-nano (19.750 tokens de entrada / 109 de saída) costumava registrar cost_status=unknown, estimated_cost_usd=0.0 e agora registra $0.0010266; uma execução direta de xai em grok-4.3 (21.157 de entrada / 156 de saída) foi de unknown, 0.0 para $0.02637205. Os dois batem na conferência manual com as tarifas publicadas pelo fornecedor.
A rodada seguinte também alinhou o fast mode da Anthropic com a documentação atual da Claude, então o modo que você seleciona é o modo que é reportado.
Onde isso está chegando
As duas mudanças entraram na main depois da tag v0.21.4, então ainda não estão em uma release — um hermes update que puxa a main, ou a próxima release com tag, é quando elas chegam. Não há nada para configurar: se você roteia para uma API de primeira linha, o fallback se aplica sozinho, e a linha Cost na referência da CLI agora nomeia suas três fontes para que você mesmo possa conferir o comportamento.
Se você realmente roteia por um relay por questões de custo, fique de olho nisto: n/a em um relay é intencional, e é o único caso em que o Hermes prefere não dizer nada a chutar. Para uma visão mais ampla do que a status bar acompanha, nosso guia de métricas da status bar percorre cada linha, e o guia dos hooks de plugin de provider cobre os dados de capacidade por modelo que o mesmo cache de metadados expõe aos plugins. Usuários de assinatura devem ler primeiro o guia do provider de assinatura da Claude — essas rotas são intencionalmente sem preço.