L'estate scorsa ho aperto cinque account di provider LLM in un mese. OpenAI, Anthropic, OpenRouter, Fireworks, Together. A ottobre non avevo più idea di quale carta di credito venisse addebitata da chi. A dicembre, uno di loro ha cambiato i prezzi in sordina, e me ne sono accorto tre settimane dopo quando è arrivata la fattura.
Questa è la verità poco glamour di far girare qualsiasi cosa sugli LLM nel 2026: lo zoo dei provider è una condizione permanente. Ogni settimana esce un modello nuovo. I prezzi si muovono. I tier gratuiti vengono rimescolati. Un modello che a marzo era lo stato dell'arte, a maggio diventa una nota a piè di pagina. Se il framework del tuo agente sceglie un provider per te al momento dell'installazione, stai firmando un contratto per ricostruire il tuo setup ogni due mesi.
Hermes Agent ha scommesso nella direzione opposta fin dal primo giorno. Il provider è un valore di configurazione, non una scelta che l'architettura fa al posto tuo. Tre funzionalità si sovrappongono per far funzionare davvero tutto questo.
Il router centrale (v0.2.0)
Le fondamenta sono un unico punto di chiamata. Con il lancio della v0.2.0, il progetto ha introdotto un router centralizzato dei provider — un'unica funzione call_llm() / async_call_llm() attraverso cui passa ogni parte dell'agente. Visione, riassunto, compressione, salvataggio delle traiettorie, il loop principale della chat. Tutto passa per lo stesso percorso di codice.
Sembra un dettaglio da refactoring fino a quando non provi a cambiare provider in un agente che non ce l'ha. Nella maggior parte dei framework ci sono undici punti diversi che chiamano l'LLM, e ognuno legge le credenziali in modo leggermente diverso. Ne cambi uno, ti dimentichi di un altro, le cose si rompono in modi difficili da notare. Hermes ha reso tutto questo impossibile facendo in modo che esista un solo punto.
La catena di fallback (v0.6.0)
Due settimane dopo, la v0.6.0 ha aggiunto il livello successivo: catene ordinate di fallback tra provider. Elenchi i provider nel config.yaml, e quando il primario va in errore — un rate limit 429, un 500 transitorio, un endpoint irraggiungibile — Hermes prova automaticamente il successivo nella catena.
Punto cruciale: è ordinata, non round-robin. Tu scegli una preferenza e un backup. Un setup tipico è OpenRouter come default economico, Anthropic diretto come backup affidabile, e il tier gratuito del Nous Portal come ultima risorsa d'emergenza. Se il primo della catena sta avendo una giornata storta, non te ne accorgi nemmeno. La release v0.6.0 ha corretto anche un bug sottile: cambiare provider con hermes model ora ripulisce l'api_mode obsoleto invece di scrivere chat_completions nel codice, quindi gli endpoint compatibili con Anthropic smettono di restituire 404 criptici dopo un cambio.
I pool di credenziali (v0.7.0)
La release dedicata alla resilienza ha aggiunto il terzo livello: pool di credenziali dello stesso provider. L'intuizione chiave è che "il mio provider primario" e "la specifica API key che ho con quel provider" sono due cose diverse. Potresti avere tre key di Anthropic — personale, del team, e una di riserva su un secondo account — e vuoi che Hermes usi quella meno impegnata.
Le configuri tramite il wizard di setup o un blocco credential_pool, e Hermes sceglie la key least_used di default. Se una key restituisce 401, il pool ruota automaticamente alla successiva e segna quella morta per una finestra di reset. L'implementazione thread-safe permette di far girare il CLI, un gateway Telegram e un cron job sullo stesso pool senza che si pestino i piedi a vicenda. La v0.7.0 ha anche garantito che lo stato del pool sopravviva ai cambi di provider tramite fallback, quindi un 429 sul primario non cancella la conoscenza del pool su quali key sono stanche.
Perché la stratificazione conta
Ognuna di queste funzionalità risolve un problema circoscritto, ma il motivo per cui insieme risultano potenti è che si compongono senza sovrapposizioni:
- •Il router ti permette di cambiare quale provider in un unico punto.
- •La catena di fallback ti permette di gestire guasti a livello di provider senza riavviare.
- •Il pool di credenziali ti permette di gestire guasti e carico a livello di key dentro un singolo provider.
E dal CLI, hermes model ti permette di riconfigurare tutto senza modificare file a mano. L'effetto finale è che quando arriva un modello nuovo — qualunque sia, da chiunque, con qualsiasi prezzo — il costo per migrare è "modificare una riga di config". Non "ricostruire il mio assistente". Per un progetto che dovrà attraversare molte generazioni di modelli, questa è probabilmente l'unica decisione architetturale che conta davvero.