Hermes
Autres actions
Prérequis
(Hermes seul)
- Une machine ou VM dédiée (LXC compatible)
Pour un Hermes de base (sans LLM local) :
- RAM :
- 1 Go → minimum (test uniquement)
- 2 Go → recommandé
- 4 Go -> confortable
- CPU / vCPU :
- 1 vCPU → suffisant
- 2 vCPU → recommandé
- Espace disque :
- 5 Go → minimum
- 10 Go → confortable
- GPU :
- Inutile
Installation Hermes (service dédié)
Installation (Debian)
# apt update && apt upgrade # apt install curl git # curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
How would you like to set up Hermes? > (○) Quick setup — provider, model & messaging (recommended)
- Ollama local :
Select provider: >(○) Custom endpoint (enter URL manually)
Custom OpenAI-compatible endpoint configuration: API base URL [e.g. https://api.example.com/v1]: http://IP_OLLAMA:11434/v1 API key [optional]:
Detected model: mon_model Use this model? [Y/n]: Y
Context length in tokens [leave blank for auto-detect]:
Display name [192.168.2.216:11434]: Ollama
Remplir les options désirées puis fin de l'installation :
Launch hermes chat now? [Y/n]: y
Ensuite, inscrire Hermes comme service pour qu'il se lance automatiquement :
- Sur une machine physique ou VM :
# hermes gateway install --system
- Dans un LXC :
# hermes gateway install --system --run-as-user root
# systemctl enable hermes-gateway.service # systemctl start hermes-gateway.service
Configuration
Activer le serveur API
On édite le fichier :
# vi ~/.hermes/.env
Ajouter :
... API_SERVER_ENABLED=true API_SERVER_KEY="maclefsecrete" # pour autoriser toutes les interfaces : API_SERVER_HOST=0.0.0.0 # pour autoriser une seule interface : # API_SERVER_HOST=IP_HERMES API_SERVER_PORT=8642
On relance le service :
# systemctl restart hermes-gateway.service
Pour tester :
# curl http://IP_HERMES:8642/health
Doit renvoyer :
{"status":"ok"}
Pour vérifier le modèle exposé :
# curl http://IP_HERMES:8642/v1/models -H "Authorization: Bearer maclefsecrete"
Éditer le prompt système
Dans le fichier de configuration :
# vi ~/.hermes/config.yaml
On édite ou vérifie le profil utilisé dans la section display :
... display: compact: false personality: kawaii resume_display: full ...
Puis on modifie le prompt système via le profil correspondant dans la section agent :
...
agent:
max_turns: 90
gateway_timeout: 1800
restart_drain_timeout: 60
api_max_retries: 3
service_tier:
tool_use_enforcement: auto
gateway_timeout_warning: 900
gateway_notify_interval: 600
verbose: false
reasoning_effort: medium
personalities:
helpful: You are a helpful, friendly AI assistant.
concise: You are a concise assistant. Keep responses brief and to the point.
...
Enfin, on redémarre le service :
# systemctl restart hermes-gateway.service
⚠️ Attention, pour que les lignes contenant : ne soient pas interprétées comme des personnalités dans le fichier YAML, il faut écrire le prompt sous forme de bloc multiligne avec le symbole |, en respectant l'indentation. Exemple :
concise: |
You are a concise assistant. Keep responses brief and to the point.
TOOLS:
- For current, recent, uncertain, or factual information, use mcp_searxng_searxng_web_search.
- To read a specific URL, use mcp_searxng_web_url_read.
- For system tasks, use terminal.
RULES:
- Respond in the same language as the user.
- Do not invent tool results.
- If a tool fails, say so.
- Do not use tools for simple rewriting, translation, or opinion unless needed.
Signal
Signal est une messagerie instantanée axée sur la confidentialité. Tous les messages et appels y sont chiffrés de bout en bout par défaut via le Signal Protocol, de sorte que ni Signal ni un tiers ne peuvent en lire le contenu. Signal se distingue également par une collecte de données très limitée, l’absence de publicité et de traqueurs, ainsi qu’un effort particulier pour réduire les métadonnées accessibles au service.
Signal permet de relier Hermes à la messagerie chiffrée Signal.
La connexion ne se fait pas directement avec le téléphone, mais via signal-cli exécuté en mode daemon HTTP, auquel Hermes se connecte ensuite.
- Installation :
Via Docker
# mkdir -p /opt/signal-cli # vi /opt/signal-cli/docker-compose.yml
- Version réseau :
services:
signal-cli:
image: registry.gitlab.com/packaging/signal-cli/signal-cli-jre:latest
container_name: signal-cli
restart: unless-stopped
command: daemon --http 0.0.0.0:8080
ports:
- "IP_SERVEUR:8080:8080" # Remplacer par IP du serveur, ou 127.0.0.1 pour restreindre acces local uniquement
volumes:
- signal-cli-data:/var/lib/signal-cli
tmpfs:
- /tmp:exec
volumes:
signal-cli-data:
- Version locale uniquement :
services:
signal-cli:
image: registry.gitlab.com/packaging/signal-cli/signal-cli-jre:latest
container_name: signal-cli
restart: unless-stopped
command: daemon --http 127.0.0.1:8080
network_mode: host
volumes:
- signal-cli-data:/var/lib/signal-cli
- /root/.hermes/image_cache:/root/.hermes/image_cache:ro
- /root/.hermes/cache:/root/.hermes/cache:ro
tmpfs:
- /tmp:exec
volumes:
signal-cli-data:
# docker compose -f /opt/signal-cli/docker-compose.yml --project-directory /opt/signal-cli up -d
- Connexion au téléphone :
Installer qrencode :
# apt install qrencode
Dans le terminal :
# docker exec signal-cli signal-cli link -n "HermesAgent" > /tmp/signal-link.txt 2>&1 & sleep 3 && grep -o 'sgnl://[^ ]*' /tmp/signal-link.txt | qrencode -t ANSIUTF8 && wait
Puis scanner le QR code avec l’application Signal via Paramètres -> Appareils associés.
- Communiquer avec le serveur via Signal :
- Appuyer sur l’icône ✏️ (nouveau message)
- Tout en haut de la liste, "Note to Self" ou votre propre nom apparaît
- Taper votre message : Hermes répond dans cette même conversation
- (Optionnel) taper
/sethomepour définir le canal par défaut pour les notifications et les tâches planifiées.
Commandes
- Lancer l’interface interactive :
# hermes
- Choisir le modèle et le provider LLM :
# hermes model
- Configurer les outils disponibles :
# hermes tools
- Modifier une configuration spécifique :
# hermes config set
- Démarrer le gateway (Telegram, Discord, etc.) :
# hermes gateway
- Lancer le script de configuration complet :
# hermes setup
- Migrer depuis OpenClaw :
# hermes claw migrate
- Mettre à jour Hermes :
# hermes update
- Diagnostiquer les problèmes :
# hermes doctor
MCP
# vi ~/.hermes/config.yaml
On inscrit le serveur (créer la section mcp_servers si absente) :
...
mcp_servers:
searxng:
url: "http://IP_MCP:3000/mcp"
...
On redémarre le service :
# systemctl restart hermes-gateway.service
Ou depuis Hermes :
/reload-mcp
Test :
# hermes mcp list # hermes mcp test searxng
- Prompt système recommandé (voir Éditer le prompt système) :
TOOLS: - For current, recent, uncertain, or factual information, use mcp_searxng_searxng_web_search. - To read a specific URL, use mcp_searxng_web_url_read. - For system tasks, use terminal. RULES: - Respond in the same language as the user. - Do not invent tool results. - If a tool fails, say so. - Do not use tools for simple rewriting, translation, or opinion unless needed.
- Recommandation :
Il est recommandé de désactiver le service natif correspondant :
# hermes tools
Décocher :
🔍 Web Search & Scraping (web_search, web_extract) [no API key]
# vi ~/.hermes/config.yaml
On inscrit le serveur (créer la section mcp_servers si absente) :
...
mcp_servers:
searxng:
url: "http://IP_MCP:8000/mcp"
...
On redémarre le service :
# systemctl restart hermes-gateway.service
Ou depuis Hermes :
/reload-mcp
Test :
# hermes mcp list # hermes mcp test searxng
- Prompt système recommandé (voir Éditer le prompt système) :
TOOLS: - For current, recent, upcoming, or uncertain information, first use mcp_searxng_get_current_datetime, then use mcp_searxng_search_web. - To read a specific URL, use mcp_searxng_get_website. - For system tasks, use terminal. RULES: - Respond in the same language as the user. - Do not invent tool results. - If a tool fails, say so. - Use search categories when relevant. - Do not use tools for simple rewriting, translation, or opinion unless needed. - For image results, output direct image URLs using markdown image syntax:  - For video results, output links in this format: 🎬 [Titre de la vidéo](URL)
- Recommandation :
Il est recommandé de désactiver le service natif correspondant :
# hermes tools
Décocher :
🔍 Web Search & Scraping (web_search, web_extract) [no API key]