Hermes AI-assistent - Installatie, configuratie, werkwijze en probleemoplossing
Installatie en snelstart van Hermes Agent voor ontwikkelaars
Hermes Agent is een zelf-gehoste, model-agnostische AI-assistent die op een lokale machine of een goedkope VPS draait, werkt via terminal- en berichtinterfaces en verbetert in de tijd door herhaalde taken om te zetten in opnieuw bruikbare vaardigheden.
Het is qua functionaliteit zeer vergelijkbaar met OpenClaw, een andere zelf-gehoste assistent-stack die is gebouwd rondom tools, geheugen en lokale controle.
Als je het bredere plaatje wilt zien van zelf-gehoste assistenten, ophalen en lokale infrastructuur rondom Hermes, dit overzicht van AI-systemen koppelt deze onderwerpen aan dezelfde problemen die Hermes probeert op te lossen.
Voor afwegingen bij implementatie en runtime-keuzes biedt LLM Hosting in 2026: Lokaal, Zelf-gehost & Cloud-infrastructuur vergeleken de hostingkaart, terwijl LLM Prestaties in 2026: Benchmarks, Flessenhalzen & Optimalisatie de kant van doorvoer en latentie behandelt zodra Hermes draait.

Mijn voorkeur: Hermes is het meest interessant wanneer het wordt behandeld als infrastructuur, niet als een tabblad dat je af en toe opent. Zodra het als service draait en een stabiele home-directory heeft, beginnen je prompts minder op “chat” te lijken en meer op “ops”.
Wat Hermes Agent is en waarom het ertoe doet
Hermes Agent is een open-source AI-agent ontwikkeld door Nous Research. Het is ontworpen om persistent te draaien, tools te gebruiken (terminal, bestanden, web en meer) en zijn eigen gedrag in de tijd te verbeteren met een systeem voor vaardigheden en geheugen.
Twee ontwerpkeuzes zijn de moeite waard om uit te leggen, omdat ze alles andere in deze gids vormgeven.
Ten eerste is Hermes niet gekoppeld aan één modelprovider. De officiële installatiestroom ondersteunt meerdere providers en elk OpenAI-compatibel eindpunt, en het wisselen gebeurt via de hermes model-commando in plaats van code-aanpassingen.
Ten tweede trekt Hermes een duidelijke lijn tussen “conversatie” en “uitvoering”. De agent kan de hele dag praten, maar als het moet handelen, doet het dit via expliciete tools en een configureerbare uitvoeringsbackend. Dat is waar veiligheid, reproduceerbaarheid en probleemoplossing wonen.
Kosten en licentie zijn verfrissend saai. Hermes Agent zelf is gratis software onder de MIT-licentie. Als je gehoste modellen gebruikt, is de lopende kosten wat je provider in rekening brengt. Als je lokale modellen draait, kun je API-gebieden volledig vermijden.
Installeer Hermes Agent
Hermes heeft een snelle installatiepad voor Linux, macOS en WSL2. De officiële documentatie houdt het opzettelijk simpel.
Eén-regel installatie
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Na installatie, herlaad je shell en start de CLI.
source ~/.bashrc # of source ~/.zshrc
hermes
De installatie is niet alleen een dunne wrapper. Volgens de installatiegids zet het afhankelijkheden op, de repo, een virtuele omgeving en het hermes-commando, en brengt je naar een eerste chat-klaar staat.
Opmerkingen voor Windows en Android
Natieve Windows wordt niet ondersteund. De documentatie adviseert WSL2 en het draaien van Hermes daarin.
Voor Android ondersteunt Hermes een Termux-installatiepad. Het is ontworpen om Termux te detecteren en zijn afhankelijkheden en omgevingen daarop aan te passen.
Snelstart
De snelste eerste run is letterlijk alleen hermes, maar een betekenisvolle snelstart betekent twee extra beslissingen: welke modelprovider te gebruiken en welke tools moeten worden ingeschakeld.
Kies een provider en model
Hermes exposeert drie complementaire toegangspunten:
- hermes model om een provider en standaardmodel te kiezen
- hermes tools om toolsets in- of uit te schakelen
- hermes setup om een interactieve wizard te draaien over belangrijke configuratiegebieden
Een minimale stroom ziet er als volgt uit:
hermes model
hermes tools
hermes
In termen van wat daadwerkelijk wordt ondersteund, noemt de officiële Quickstart een reeks providers en benadrukt ook dat Hermes werkt met OpenAI-compatibele API’s. Dat maakt uit omdat het zowel gehoste diensten als zelf-gehoste eindpunten omvat.
Bewijs van tooluitvoering vroeg
Voordat je gewoontes rondom Hermes opbouwt, is het de moeite waard om te verifiëren dat toolgebruik in je omgeving werkt. De Quickstart stelt expliciet terminalgebruik voor als eerste functie om uit te proberen.
In de praktijk doet een kleine “smoke test”-prompt twee dingen: het controleert de terminaltool en het valideert toestemmingsprompts.
Voorbeeldprompt:
Toon mijn schijfgebruik en de vijf grootste mappen.
Als Hermes de terminaltool niet kan uitvoeren, sla dan over naar Probleemoplossing. Terminal-backend misconfiguratie is een van de meest voorkomende oorzaken, en de oplossing is meestal duidelijk zodra je naar de configuratie kijkt.
Configuratie die schaalt
Hermes beloont mensen die begrijpen waar het staat opslaat en hoe het configuratie oplost. Dit is ook waar veel “het werkte gisteren” problemen vandaan komen.
Waar configuratie en staat wonen
Hermes slaat zijn instellingen en staat op onder ~/.hermes. De officiële configuratiegids documenteert de lay-out, inclusief config.yaml voor instellingen, .env voor geheimen, auth.json voor OAuth-gegevens, SOUL.md voor identiteit, en mappen voor herinneringen, vaardigheden, cron, sessies en logs.
Dit telt om twee redenen.
- Probleemoplossing wordt mechanisch omdat je precies weet waar je moet kijken.
- Back-ups worden eenvoudig omdat één map de meeste agent-standaard opslaat die je om geeft.
Configuratieprioriteit en geheimen buiten config.yaml houden
Hermes lost configuratie op met een prioriteitsvolgorde. Bovenaan staan CLI-overrides, dan config.yaml, dan .env, met ingebouwde standaarden onderaan.
Het leuke detail is dat hermes config set waarden naar het juiste bestand stuurt: API-sleutels naar .env en niet-geheime instellingen naar config.yaml.
hermes config set model openrouter/meta-llama/llama-3.1-70b-instruct
hermes config set terminal.backend docker
hermes config set OPENROUTER_API_KEY sk-or-v1-xxxxxxxx
Hermes ondersteunt ook omgevingsvariabelen-substitutie binnen config.yaml via ${VAR_NAME}-syntax. Dit is handig als je bepaalde waarden in de omgeving wilt houden terwijl je ze nog steeds in gestructureerde configuratie refereert.
Sandbox en uitvoeringsbackends
Hermes ondersteunt meerdere terminalbackends die definiëren waar shell-commando’s daadwerkelijk worden uitgevoerd. De config-gids noemt local, docker, ssh, modal, daytona en singularity.
De meningsvol maar niet-evangelische manier om hierover na te denken is:
- local is het snelst en eenvoudigst, maar het is niet geïsoleerd
- docker is een pragmatische veiligheids- en reproduceerbaarheidslaag
- ssh is een schone manier om je chat-apparaat te scheiden van je compute-box
- modal en daytona passen bij “serverless maar persistent genoeg” workflows
- singularity is de HPC-vriendelijke optie
Een minimale Docker-backend voorbeeld:
# ~/.hermes/config.yaml
terminal:
backend: docker
docker_image: "nikolaik/python-nodejs:python3.11-nodejs20"
docker_volumes:
- "/home/user/projects:/workspace/projects"
docker_forward_env:
- "GITHUB_TOKEN"
De documentatie beschrijft ook beveiligingshardening voor de Docker-backend, zoals het verwijderen van capaciteiten en het uitschakelen van privilege-escalatie.
Vaardigheden, geheugen en profielen
Hermes heeft twee gerelateerde mechanismen voor het opbouwen van waarde.
Vaardigheden zijn procedureel geheugen. Hermes kan zijn eigen vaardigheden maken, bijwerken en verwijderen en kan voorstellen om een aanpak op te slaan als vaardigheid na het voltooien van een complexe taak.
Ingebouwd geheugen wordt opgeslagen als bestanden zoals MEMORY.md en USER.md onder ~/.hermes, en Hermes kan ook externe geheugenproviders gebruiken voor dieper herinneren. De geheugendocumentatie noemt meerdere provider-plugins, en de geheugenprovidersgids documenteert een interactieve instellingsstroom.
Als je meerdere onafhankelijke agenten op dezelfde machine wilt, bieden Hermes-profielen isolatie. Elk profiel krijgt zijn eigen map met zijn eigen configuratie, geheimen, herinneringen, sessies, vaardigheden, cron-taken en gateway-status.
Typische workflow
Als je Hermes behandelt als een agent die je wilt behouden, begint de workflow eruit te zien als service-engineering.
Een stabiele basislijn
Een basislijn die niet snel verouderd is:
- Installeer en voer een eerste chat uit in de CLI.
- Kies een provider en model met hermes model, en bevestig kosten.
- Configureer toolsets en beslis of terminaluitvoering lokaal of gesandboxd is.
- Maak een snelle wijziging aan SOUL.md pas nadat je de standaard een tijdje hebt gebruikt. Identiteitswijzigingen tellen meer dan mensen verwachten omdat het “slot 1” is in de systeem-prompt.
Dagelijks gebruik dat opbouwt
Hermes heeft een terminal-UI in plaats van een web-UI, en het is ontworpen voor lange sessies met slash-commando’s, hervatbare sessies en gestroomlijnde tooloutput.
In de praktijk is een nuttige cadans:
- werk in een genummerde sessie voor een project
- comprimeer context als het te groot wordt
- laat Hermes herhaalde routines omzetten in vaardigheden
- behoud een mentale grens tussen “vragen” en “handelen” zodat tooluitvoering controleerbaar blijft
Berichtengateway voor 24/7 toegang
De berichtengateway is het stuk dat Hermes voelt als een assistent in plaats van een terminal-app. De documentatie beschrijft het als een enkel proces dat verbinding maakt met meerdere platforms, sessies hanteert, cron-taken uitvoert en berichten levert.
Instelling wordt aangeroepen via hermes gateway setup, en de gateway kan in de voorgrond of als gebruikersservice draaien. De CLI-referentie documenteert gateway-subcommando’s zoals run, install, start, stop, status en restart.
Beveiliging voor een tool-gebruikende bot telt. De gateway-documentatie beschrijft toelatingslijsten voor specifieke platforms en een DM-pairingsstroom die eenmalige pairing-codes uitgeeft en goedkeuring vereist via hermes pairing approve.
Updates zonder drama
Hermes-updates zijn een commando van eerste klas. De updategids documenteert hermes update, configuratiemigratiecontroles en een kleine post-update validatieroutine inclusief hermes doctor en hermes gateway status.
hermes update
hermes doctor
hermes gateway status
Probleemoplossing en diagnostiek
Meeste Hermes-falen zijn niet mysterieus. Ze lijken mysterieus omdat mensen alleen de modellayer controleren en de runtimelayer negeren.
Snelle triage-commando’s
De CLI-referentie positioneert drie commando’s expliciet als de kernlus:
- hermes doctor voor interactieve diagnostiek
- hermes status voor een snel overzicht
- hermes dump voor een deelbare, geredigeerde configuratiesamenvatting
Voor logs, hermes logs staart bestanden opgeslagen onder ~/.hermes/logs.
hermes doctor --fix
hermes status
hermes dump --show-keys
hermes logs errors -f
Veelvoorkomende installatiefalen
De FAQ en probleemoplossingsgids noemen meerdere terugkerende problemen en hun oplossingen, inclusief Python-versieproblemen, uv niet gevonden, en toegangsproblemen veroorzaakt door het mengen van sudo-installaties met gebruikersinstallaties.
Als je deze fouten tegenkomt, bieden de documenten specifieke herstelstappen zoals het upgraden van Python, het installeren van uv, en het opnieuw installeren van Hermes zonder sudo.
Provider- en modelproblemen
Wanneer API-sleutels niet werken, adviseert de FAQ om configuratie te controleren, hermes model opnieuw uit te voeren, of een sleutel direct in te stellen via hermes config set. Het noemt ook een veelvoorkomende valstrik: sleutels zijn provider-specifiek.
Voor “model niet gevonden” problemen, wijst de FAQ terug naar het gebruik van hermes model om een geldige identifier te kiezen en toont zowel configuratie als per-sessie overrides.
Rate-limiting en contextlengteproblemen worden ook behandeld. De FAQ suggereert om te wachten op 429-fouten, van provider of model te wisselen, en contextdruk te verminderen via compressie of een nieuwe sessie.
Terminal-backend en gatewayproblemen
Als terminalcommando’s direct falen, bevat de configuratiegids een “veelvoorkomende terminal-backendproblemen” sectie en wijst naar de typische oorzaken per backend, inclusief Docker niet draait en ontbrekende SSH-variabelen. Het merkt ook op dat terugvallen naar lokaal een geldige debugbeweging is wanneer sandbox-configuratie in twijfel wordt getrokken.
Voor gatewayproblemen, benadrukt de berichtengids toelatingslijsten en pairing als de veilige standaarden, wat betekent dat veel “bot is stil” incidenten eigenlijk autorisatie zijn die zijn werk doet.