Il picker di Hermes Agent (hermes model o /model in sessione) è il cuore della flessibilità di questo agente. Puoi aggiungere OpenRouter, endpoint custom (Ollama, vLLM, LM Studio) e provider OAuth, averli sempre a disposizione e cambiare modello con un comando.
Due comandi, due funzioni
hermes model (dal terminale, fuori da una sessione) — È il wizard completo: aggiunge provider, configura API key, esegue flussi OAuth, imposta modelli. È l'unico modo per aggiungere un provider.
/model (dentro una sessione attiva) — Può solo cambiare tra provider e modelli già configurati. Non aggiunge provider, non chiede API key, non fa OAuth.
Se non vedi un provider nel picker, probabilmente non l' Hai configurato. Esci dalla sessione (Ctrl+C o /quit), esegui hermes model, e aggiungilo.
Configurare OpenRouter
Metodo interattivo
hermes model
- Seleziona OpenRouter dalla lista provider
- Inserisci la tua API key (inizia con
sk-or-...) - Scegli il modello dal catalogo curato (400+ modelli, inclusi quelli stealth)
La scrittura va in ~/.hermes/config.yaml:
model:
provider: openrouter
default: ~anthropic/claude-sonnet-latest
Metodo rapido (non interattivo)
hermes config set OPENROUTER_API_KEY sk-or-v1-xxxxxxxxxxxx
hermes chat --provider openrouter --model '~anthropic/claude-sonnet-latest'
Oppure modifica direttamente ~/.hermes/.env:
OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxx
Provider routing con OpenRouter
OpenRouter routes attraverso centinaia di provider. Puoi controllare come:
provider_routing:
sort: "throughput" # "price" (default), "throughput", o "latency"
# only: ["anthropic"] # Solo questi provider
# ignore: ["deepinfra"] # Salta questi provider
order: ["anthropic", "google"] # Prova in quest'ordine
data_collection: "deny" # Escludi provider che conservano i dati
Shortcut: Aggiungi :nitro a qualsiasi modello per ordinare per throughput (es. ~anthropic/claude-sonnet-latest:nitro), o :floor per prezzo minimo.
Configurare custom endpoint (Ollama, vLLM, LM Studio)
Metodo interattivo
hermes model
# Seleziona: "Custom endpoint (self-hosted / VLLM / etc.)"
# API base URL: http://localhost:11434/v1
# API key: ollama (o vuoto per server locali)
# Model name: qwen2.5-coder:32b
# Context length: 65536 ← minimo Hermes: 64K
Metodo config.yaml
model:
default: qwen2.5-coder:32b
provider: custom
base_url: http://localhost:11434/v1
provider: custom è un provider di prima classe, non un alias. Funziona con qualsiasi API compatibile con OpenAI.
WSL2: il problema del localhost
Su WSL2, localhost non punta a Windows. Se il tuo server Ollama/vLLM gira su Windows, devi usare l'IP dell'host Windows:
# Trova l'IP di Windows da dentro WSL2
ip route show | grep -i default | awk '{print $3}'
Poi usa quell'IP:
model:
default: qwen2.5-coder:32b
provider: custom
base_url: http://172.29.192.1:11434/v1 # IP Windows, non localhost
Se invece il server gira dentro WSL2, localhost funziona normalmente.
Fallback providers
Configura una catena di provider che Hermes prova in sequenza quando il primo fallisce:
fallback_providers:
- provider: openrouter
model: ~anthropic/claude-sonnet-latest
- provider: openrouter
model: ~google/gemini-flash-latest
- provider: custom
model: qwen2.5-coder:32b
base_url: http://localhost:11434/v1
Utile per sessioni lunghe: se un provider va down, Hermes switcha automaticamente al successivo senza interrompere la sessione.
Custom model aliases
Crea alias per modelli che usi spesso, così puoi richiamarli con /model alias:
custom_providers:
local-qwen:
base_url: http://localhost:11434/v1
api_key: ollama
model_aliases:
fav: openrouter/~anthropic/claude-sonnet-latest
grok: openrouter/~x-ai/grok-4
local: custom:local-qwen:qwen2.5-coder:32b
Uso in sessione:
/model fav
/model grok
/model local
Filtrare i provider nel picker
Se hai tanti provider e vuoi ridurre il rumore, usa picker_providers:
model:
default: ~anthropic/claude-sonnet-latest
provider: openrouter
picker_providers:
- openrouter
- custom
| Valore | Effetto |
|---|---|
| Non setttato | Mostra tutti i provider (default) |
["custom"] | Mostra solo custom providers |
["openrouter", "custom"] | Mostra OpenRouter + custom |
[] | Non mostrato (edge case) |
Configurazione completa di esempio
Ecco un config.yaml con OpenRouter, Ollama locale e fallback:
model:
provider: openrouter
default: ~anthropic/claude-sonnet-latest
picker_providers:
- openrouter
- custom
provider_routing:
sort: "throughput"
data_collection: "deny"
fallback_providers:
- provider: openrouter
model: ~google/gemini-flash-latest
- provider: custom
model: qwen2.5-coder:32b
base_url: http://localhost:11434/v1
custom_providers:
local-qwen:
base_url: http://localhost:11434/v1
api_key: ollama
model_aliases:
fav: openrouter/~anthropic/claude-sonnet-latest
local: custom:local-qwen:qwen2.5-coder:32b
Risoluzione dei problemi
Provider non visibile nel picker: Non è configurato. Esci dalla sessione e usa hermes model per aggiungerlo.
/model non mostra un modello specifico: Potrebbe non essere nel catalogo curato. Usa /model provider:modello per forzarlo, o controlla che il modello abbia tool-calling supportato.
WSL2: connessione rifiutata al custom endpoint: Probabilmente stai usando localhost invece dell'IP di Windows. Trova l'IP con ip route show | grep -i default | awk '{print $3}' e usalo in base_url.
API key non riconosciuta: Controlla ~/.hermes/.env per variabili d'ambiente, o ripeti hermes model per reinserirla.
Modello con contesto troppo piccolo: Hermes richiede minimo 64K token. Se il tuo modello locale ha meno, imposta context_length manualmente nel config.