Modèle local dans Hermes Agent : Ollama, Qwen et bascule explicite vers le cloud
Guide pratique axé confidentialité : connecter Qwen local avec Ollama, vérifier la chaîne sur un petit fichier, ajouter un fournisseur cloud, basculer pour une session ou un seul tour, puis contrôler outils, modèles auxiliaires et fallback.
Sommaire

Hermes Agent peut traiter les fichiers et commandes courants avec un modèle local, tout en gardant un modèle cloud disponible pour les tâches qui l’exigent vraiment. La politique la plus lisible consiste à valider d’abord le chemin local, puis à rendre chaque montée vers le cloud explicite au lieu de laisser un fallback invisible décider.
Ce guide suit la documentation actuelle de Hermes et d’Ollama. Il connecte un Qwen local, exécute une petite tâche vérifiable, configure un fournisseur cloud, explique trois portées de bascule et montre quelles étapes peuvent envoyer des données hors de la machine. Il s’agit d’un parcours vérifié dans la documentation, pas d’un benchmark réalisé ici.
Politique conseillée : local par défaut, cloud sur décision explicite
| Situation | Choix prioritaire | Pourquoi |
|---|---|---|
| Fichiers locaux, petites modifications de code, tâches quotidiennes | Ollama/Qwen local | La requête modèle va vers 127.0.0.1, donc la frontière est facile à contrôler |
| Échecs répétés d’appels d’outils | Diagnostiquer modèle, runtime et contexte | Un tool call incorrect peut venir du serveur, du parseur ou du contexte |
| Long contexte, raisonnement complexe, vision ou urgence | Ouvrir une session propre et passer explicitement au cloud | Vous gagnez en capacité sans envoyer par accident un ancien contexte privé |
| Aucune donnée ne doit sortir | Modèle et outils locaux, sans auxiliaires cloud ni fallback | Un main model local ne rend pas tout le workflow hors ligne |
Distinguez le modèle, les outils et les services auxiliaires
| Étape | Destination habituelle | Point à vérifier |
|---|---|---|
Hermes appelle http://127.0.0.1:11434/v1 | Ollama local | Le tag ne finit pas par :cloud et l’URL est une loopback |
| Tour suivant après une bascule cloud | Fournisseur cloud | Contexte, instructions système et schémas d’outils peuvent être envoyés |
| Fichiers et terminal locaux | En général sur la machine | La commande peut elle-même téléverser, télécharger ou appeler une API |
| Web, browser, search, MCP distant ou messagerie | Service contacté | Requête, contenu, arguments et résultats |
| Whisper local avec TTS cloud | Reconnaissance locale, texte de synthèse dans le cloud | Cette chaîne vocale est hybride, pas entièrement hors ligne |
fallback_providers ou auxiliaires cloud | Cloud lors du déclenchement | Erreur, quota, authentification ou capacité peuvent changer la route |
Le sélecteur Ollama pour Hermes affiche des modèles locaux et cloud. Un nom se terminant par :cloud utilise toujours une inférence distante.
Chemin rapide avec ollama launch hermes
ollama launch hermes
L’intégration officielle peut installer Hermes, proposer le modèle et configurer http://127.0.0.1:11434/v1. Sélectionnez une entrée explicitement locale ; qwen3.5:cloud, par exemple, n’est pas local.
Vérifiez ensuite la configuration réellement utilisée :
hermes config get model --json
hermes status
Si le lanceur ne détecte pas votre modèle ou si vous voulez contrôler chaque étape, utilisez la méthode manuelle.
Configuration manuelle d’un Qwen local
1. Téléchargez un Qwen compatible avec les tools
Ollama indique que la famille Qwen 3.5 prend en charge les tools. L’exemple utilise qwen3.5:4b, assez léger pour tester la connexion ; cela ne garantit pas une qualité agentique stable sur toutes les tâches. Choisissez un tag officiel plus grand si votre RAM ou VRAM le permet.
ollama --version
ollama pull qwen3.5:4b
Démarrez le service seulement s’il ne tourne pas déjà :
ollama serve
Dans un autre terminal :
curl http://127.0.0.1:11434/api/tags
Testez l’endpoint compatible OpenAI avant de configurer Hermes :
curl http://127.0.0.1:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5:4b",
"messages": [{"role": "user", "content": "Reply with LOCAL_OK"}],
"max_tokens": 16
}'
Une réponse JSON contenant la sortie du modèle prouve qu’Ollama sert le modèle local. En cas de Connection refused, corrigez d’abord le service Ollama.
2. Reliez Hermes à l’endpoint local
hermes model
Choisissez Custom endpoint et saisissez :
- API Base URL :
http://127.0.0.1:11434/v1 - API Key : laissez vide
- Model :
qwen3.5:4b - Context length : laissez vide si la version actuelle propose l’auto-détection
Contrôlez le résultat :
hermes config get model --json
hermes status
Vous devez voir le modèle local, le fournisseur custom et l’adresse loopback. Hermes recommande un contexte important pour un usage agentique avec outils. Si une erreur de contexte apparaît, suivez la documentation de votre version et observez la valeur effectivement chargée :
ollama ps
N’imposez pas un contexte trop grand s’il provoque un manque de mémoire ou du swap permanent.
Exécutez une petite tâche et vérifiez le fichier
mkdir -p ~/hermes-local-check
cd ~/hermes-local-check
printf 'alpha\nbeta\ngamma\n' > input.txt
hermes
Dans Hermes, entrez :
Lis input.txt. Crée summary.md avec le nombre de lignes et un résumé en une phrase. N’utilise aucun outil Web, browser, network, messaging ou cloud. Indique ensuite le chemin exact écrit.
Puis vérifiez :
cd ~/hermes-local-check
cat summary.md
Le test est réussi si summary.md existe, identifie trois lignes, Hermes exécute réellement l’écriture au lieu d’afficher seulement du JSON, hermes status reste sur Qwen local et aucun fallback ou auxiliaire cloud indésirable n’est configuré.
Ce test valide l’endpoint, la boucle d’outils et l’écriture de fichier. Il ne mesure pas les tâches complexes et ne prouve pas que tous les outils optionnels sont hors ligne.
Configurez le cloud sans masquer la bascule
hermes model
Choisissez le fournisseur cloud, terminez OAuth ou la saisie interactive du secret, puis sélectionnez un modèle. Ne collez pas de clé dans le chat ni dans une commande conservée par l’historique du shell.
Comme hermes model modifie la valeur par défaut, revenez ensuite au local pour la session active et les nouvelles sessions :
/model qwen3.5:4b --provider custom --global
Les trois portées de bascule sont :
/model YOUR_CLOUD_MODEL --provider YOUR_CLOUD_PROVIDER
/model YOUR_CLOUD_MODEL --provider YOUR_CLOUD_PROVIDER --once
/model YOUR_CLOUD_MODEL --provider YOUR_CLOUD_PROVIDER --global
- La première commande change seulement la session actuelle.
--onceutilise le cloud pour le prochain tour puis restaure le modèle précédent.--globalchange aussi la valeur par défaut des nouvelles sessions.
Pour revenir au local :
/model qwen3.5:4b --provider custom
Si un fournisseur n’apparaît pas dans /model, configurez-le avec hermes model. La commande de session ne crée pas de nouvelles informations d’authentification.
Quand la bascule cloud est-elle justifiée ?
Restez local pour le code non publié, les documents personnels, les logs internes et les tâches limitées. Si les outils fonctionnent et que la vitesse convient, une amélioration théorique ne justifie pas automatiquement l’envoi du contexte.
Passez au cloud si le modèle local échoue encore après vérification de l’endpoint, du contexte et du tool support ; si la tâche exige un contexte bien plus long, la vision, un raisonnement multietape ou une latence plus faible.
Pour une tâche sensible, ouvrez une nouvelle session cloud et ne fournissez que le minimum. Hermes documente qu’un changement en cours de session réinitialise le prompt cache et que la requête suivante relit la conversation. Côté confidentialité, supposez donc que le contexte pertinent sera transmis au fournisseur cloud.
Auditez les modèles auxiliaires et le fallback
Si chaque appel externe doit être décidé par vous, ne configurez pas fallback_providers. Un fallback peut se déclencher après une erreur, un rate limit, un problème d’authentification ou de capacité ; ce n’est pas une décision humaine disant que la tâche est trop difficile.
Hermes peut aussi affecter la compression, la vision ou l’extraction Web à des modèles auxiliaires. Un main model local ne prouve pas que ces slots sont locaux.
Sous Bash, macOS ou Linux :
grep -nE 'fallback|auxiliary|base_url|provider|default' ~/.hermes/config.yaml
Sous Windows, examinez %USERPROFILE%\.hermes\config.yaml. Vérifiez l’endpoint principal, les auxiliaires, fallback_providers et toute Base URL distante inconnue.
Pour une preuve plus forte, utilisez les logs du pare-feu, du DNS ou d’un proxy sortant. Une étiquette « local » dans l’interface n’est pas une garantie réseau de bout en bout.
Résoudre les problèmes courants
Connection refused
curl http://127.0.0.1:11434/api/tags
En cas d’échec, lancez ollama serve ou le service de bureau.
Le modèle affiche du JSON d’outil sans agir
Vérifiez que le tag Qwen exact prend en charge les tools et que Hermes et Ollama sont à jour. Un petit modèle peut rester instable sur des arguments complexes. Rejouez le test à un fichier, puis essayez un modèle local plus grand ou une bascule cloud explicite.
Le modèle ou le fournisseur manque
Utilisez hermes model. /model n’affiche que les routes déjà configurées.
Le chat actif semble rester sur l’ancien modèle
Le changement de valeur par défaut concerne surtout les nouvelles sessions. Utilisez /model dans le chat actif ou ouvrez une nouvelle session.
Réponses lentes ou erreur de contexte
ollama ps
Contrôlez la taille, le GPU offload et le contexte. Un grand contexte aide à conserver les schémas d’outils, mais augmente la mémoire et le temps de prefill.
Un système hybride peut être utile sans être entièrement hors ligne
Un utilisateur de X a décrit un prototype personnel combinant Gemma via Ollama Cloud, Qwen cloud, Qwen local, Whisper local et TTS cloud. Cela illustre un routage par tâche, mais reste un témoignage individuel sans configuration reproductible publiée, logs réseau ni benchmark indépendant.
Les modèles, la voix et les outils ont chacun leur frontière. Whisper local ne rend pas le TTS cloud local, et un main model local ne rend pas privées les requêtes vers un calendrier, un outil de gestion de projet, un moteur de recherche ou un MCP distant.
Checklist finale
- Le tag local ne finit pas par
:cloudet la Base URL esthttp://127.0.0.1:11434/v1. - Le test
curldirect fonctionne ethermes statusmontre la route attendue. - La tâche jetable crée réellement
summary.md. - Le fournisseur cloud est configuré, mais chaque bascule passe explicitement par
/model. - Une tâche sensible dans le cloud commence dans une session neuve avec un contexte réduit.
- Les outils distants, auxiliaires et
fallback_providersont été contrôlés. - Pour une exigence hors ligne, tous les outils réseau et services cloud restent désactivés.
Sources
- Hermes : configuration Ollama locale
- Hermes : configurer et changer de modèle
- Hermes : fournisseurs et endpoints personnalisés
- Ollama : intégration Hermes Agent
- Ollama : bibliothèque Qwen 3.5
- Post X décrivant le prototype hybride (témoignage utilisateur, pas benchmark indépendant)