Por qué Hermes decía que tu ejecución había costado $0.00

Terminas una ejecución larga del agente, echas un vistazo a la barra de estado y lees la fila Cost: $0.00. O n/a. Estuviste usando tu propia clave de OpenAI todo el tiempo, la ejecución movió sin duda decenas de miles de tokens, y el número que tienes delante dice que la sesión salió gratis. O de verdad fue gratis, o Hermes no tenía ni idea de cuánto había costado — y hasta esta semana no había forma de distinguir un caso del otro.
Esa ambigüedad se ha acabado para la configuración más habitual. Una ejecución que habla directamente con una API first-party —OpenAI, xAI, Anthropic, Google, DeepSeek— ahora recibe precio aunque el modelo falte en la tabla que Hermes trae de serie, y la fila deja de fingir que un gasto real era cero (#120441, rescatando #56625; más #120517 para Anthropic).
Los tres orígenes posibles de un precio
Cada cifra de coste que Hermes imprime pasa por una única función de resolución, get_pricing_entry. Recorre una escalera corta y se queda con el primer peldaño que responda:
- Una ruta de suscripción no se tarifa en absoluto. Si la ruta de facturación dice que el modelo está incluido en un plan (
openai-codex,xai-oauth), la entrada es un marcador fijo de “incluido”. No se cobra por token, así que no se estima nada. - OpenRouter mantiene su propio camino, porque el router publica precios por modelo en vivo junto con el catálogo que sirve.
- La tabla de precios incluida —una foto fija que viaja con Hermes— responde por los modelos más habituales.
- El endpoint
/modelsdel propio proveedor se consulta a continuación, cuando has configurado una base URL que expone metadatos de precios. - Novedad: el precio de lista del vendor vía models.dev, cuando los cuatro peldaños anteriores se quedan en silencio.
El quinto peldaño es el interesante, y es deliberadamente estrecho. Solo se activa cuando tu ruta de facturación apunta al vendor mismo:
| Ruta de facturación | Host de confianza |
|---|---|
openai |
openai.com |
xai |
x.ai |
anthropic |
anthropic.com |
google |
googleapis.com |
deepseek |
deepseek.com |
xiaomi |
xiaomimimo.com |
Que no haya ninguna base URL también cuenta como de confianza, porque eso significa el endpoint por defecto del propio proveedor.
Por qué un relay o un proxy se quedan sin precio
Aquí está la parte que conviene interiorizar antes de fiarse de cualquier cifra de coste: el mismo id de modelo puede facturarse a una tarifa distinta según quién lo sirva.
Un proxy, un relay o un endpoint propio pueden servir gpt-5-nano con recargo, con descuento o por una cuota plana de suscripción. El precio de lista del vendor sería entonces una mentira dicha con total aplomo. Por eso el fallback comprueba el origen que está a punto de tarifar: tiene que ser https en el puerto 443, y el host debe ser el dominio de ese vendor o un subdominio suyo. Cualquier otra cosa no devuelve nada y la sesión conserva su honesto unknown.
Eso se lee como n/a en la barra de estado, y no como una cifra inventada, y la documentación del CLI ahora detalla exactamente qué fuentes alimentan la fila: primero la tabla de precios oficial incluida, luego el listado /models del proveedor, y models.dev cubriendo el hueco solo para una API first-party directa.
Cómo leer lo que realmente gastaste
- La fila Cost de la barra de estado es la estimación de un vistazo (aparece
n/acuando es desconocido o genuinamente sin coste). /usageabre el desglose detallado, con los tokens de entrada frente a los de salida y las categorías de lectura/escritura de caché.hermes insightsagrega analítica de tokens y coste a lo largo de varias sesiones, que es justo lo que quieres cuando estás decidiendo si un modelo merece la pena para un trabajo concreto.
Dos palabras de estado llevan significado real, así que conviene saber cuál estás mirando. Un coste estimated significa que Hermes encontró una tarifa y la multiplicó por los tokens que contó. unknown significa que no había ninguna tarifa que estuviera dispuesto a aplicar — no que la ejecución fuera gratis.
La estimación en sí es aritmética sobre números que Hermes ya tiene. El fallback lee los metadatos del modelo desde la caché en proceso o en disco en lugar de salir a la red a mitad de turno, así que una sesión de API directa no paga un round trip de red solo para conocer su propio precio.
Las ejecuciones pequeñas ya no se redondean a $0.00
Hay una segunda trampa, más antigua, en la misma pantalla: los modelos baratos. Una ejecución corta con un modelo pequeño puede costar legítimamente una fracción de céntimo, y un formato de dos decimales lo pinta como $0.00, indistinguible de “sin precio”. Los costes por debajo de un céntimo ahora se muestran con cuatro decimales, así que ves $0.0046 en lugar de un cero pelado.
Qué sigue siendo una estimación
Ten claro qué estás mirando: esto son precios de lista multiplicados por tokens contados, no tu factura. Si tu cuenta tiene tarifas negociadas, descuentos por compromiso de uso o una política de caché distinta, la factura del vendor saldrá diferente. Las estimaciones están para responder “¿este modelo es diez veces más caro que aquel?”, una pregunta que responden bien, no para predecir tu extracto mensual al céntimo.
Para los números del arreglo original: una ejecución directa de openai-api con gpt-5-nano (19.750 tokens de entrada / 109 de salida) antes registraba cost_status=unknown, estimated_cost_usd=0.0 y ahora registra $0.0010266; una ejecución directa de xai con grok-4.3 (21.157 de entrada / 156 de salida) pasó de unknown, 0.0 a $0.02637205. Ambos cuadran a mano con las tarifas publicadas por el vendor.
La ronda de seguimiento también alineó el modo fast de Anthropic con la documentación actual de Claude, de modo que el modo que seleccionas es el modo que se reporta.
Dónde llega esto
Ambos cambios aterrizaron en main después del tag v0.21.4, así que todavía no están en ninguna release: llegarán con un hermes update que traiga main, o con la próxima release etiquetada. No hay nada que configurar: si enrutas a una API first-party, el fallback se aplica solo, y la fila Cost de la referencia del CLI ya nombra sus tres fuentes para que puedas comprobar el comportamiento tú mismo.
Si enrutas por un relay por motivos de coste, vigila esto: el n/a en un relay es deliberado, y es el único caso en que Hermes prefiere no decir nada antes que adivinar. Para una visión más amplia de lo que rastrea la barra de estado, nuestra guía de métricas de la barra de estado repasa cada fila, y la guía de los hooks del provider plugin cubre los datos de capacidades por modelo que esa misma caché de metadatos expone a los plugins. Quien use suscripciones debería leer antes la guía del provider de suscripción de Claude: esas rutas están sin precio a propósito.