Hermes Agent: technische tutorial
Hermes Agent: ReviewInstalleren & instellenNieuws
Stand september 2026, samengesteld uit onze eigen notities en nieuwsarchief; tekst machinaal opgesteld en redactioneel gecontroleerd. Controleer versies en commando's in de officiële documentatie.
Deze tutorial richt Hermes Agent in als serieuze, langlopende agent: modellen en een goedkoop hulpmodel, een afgeschermde terminal-backend, MCP-servers, skills, geplande taken en de messaging-gateway, met de beveiliging die daarbij hoort. Sleutels en commando's zijn gecontroleerd tegen de officiële documentatie van Nous Research (stand september 2026).
Configuratie: config.yaml en .env
Alles staat in ~/.hermes/. Het uitgangspunt: geheimen in .env, al het andere in config.yaml. In config.yaml verwijs je naar een geheim met ${NAAM}.
Handige commando's:
hermes config set KEY VAL # waarde zetten (HOOFDLETTERS gaan automatisch naar .env)
hermes config get KEY # de uiteindelijke waarde bekijken
hermes config edit # config.yaml openen in je editor
hermes config check # configuratie controleren, vooral na een update
Modellen: hoofdmodel en hulpmodel
Hermes gebruikt een hoofdmodel voor het echte werk en kan voor bijtaken, zoals het samenvatten van lange contexten (compressie), een apart, goedkoper model gebruiken:
model: anthropic/<model-id>
providers:
anthropic:
api_key: ${ANTHROPIC_API_KEY}
auxiliary:
compression:
model: <goedkoop-model>
provider: openrouter
Wil je al het verkeer via een eigen OpenAI-compatibel endpoint laten lopen, zoals een lokale server of je eigen LLM-router? Geef dan een base_url op, zoals de documentatie voor de hulpmodellen laat zien:
auxiliary:
compression:
model: <alias-bij-je-router>
base_url: https://router.example.com/v1
hermes model laat je interactief een provider en model kiezen en schrijft de configuratie voor je weg. Dat is minder foutgevoelig dan handwerk.
De terminal-backend: waar commando's draaien
Standaard voert Hermes shellcommando's uit op je eigen machine (local). Voor een agent die veel zelfstandig doet, is een afgeschermde omgeving verstandiger. De beschikbare backends:
local: je eigen machine (standaard).docker: een container.ssh: een externe server.modal,daytonaofvercel_sandbox: sandboxes in de cloud.singularity: voor HPC-clusters.
Een Docker-opzet waarin alleen je projectmap zichtbaar is:
terminal:
backend: docker
docker_image: nousresearch/hermes-sandbox:desktop
docker_volumes:
- "/home/jij/projects:/workspace/projects"
container_memory: 5120 # MB
container_persistent: true # container blijft bestaan tussen sessies
Koppel alleen de mappen die de agent echt nodig heeft. Een volume op je thuismap maakt de sandbox zinloos.
Veiligheid en goedkeuring
agent:
dangerous_command_approval: true # risicovolle shellcommando's eerst voorleggen
disabled_toolsets: # hele groepen tools uitschakelen
- web
skills:
write_approval: true # wijzigingen aan skills eerst goedkeuren
guard_agent_created: true # zelfgemaakte skills scannen op gevaarlijke patronen
memory:
write_approval: false # op true: elke geheugenupdate eerst goedkeuren
Met disabled_toolsets haal je complete categorieën weg. Een agent die alleen code hoeft te lezen en te schrijven, heeft bijvoorbeeld geen webtoegang nodig.
MCP-servers
In config.yaml onder mcp_servers. Een lokale server (stdio):
mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "${GITHUB_TOKEN}"
Een externe server (HTTP):
mcp_servers:
docs:
url: "https://mcp.example.com/mcp"
headers:
Authorization: "Bearer ${DOCS_TOKEN}"
Stdio is geschikt voor servers die lokaal draaien; HTTP voor servers die ergens anders gehost worden.
Skills: het procedurele geheugen
Skills staan in ~/.hermes/skills/, elk in een eigen map met een SKILL.md. Ze volgen de open standaard van agentskills.io, zodat je ze ook in andere agents kunt gebruiken. Een minimale skill:
---
name: release-notes
description: Schrijf release notes uit git-log
version: 1.0.0
platforms: [macos, linux]
---
## When to Use
Als er om release notes voor een nieuwe versie wordt gevraagd.
## Procedure
1. Lees `git log` sinds de laatste tag.
2. Groepeer per type: features, fixes, overig.
3. Schrijf beknopte Nederlandse zinnen per wijziging.
## Pitfalls
- Merge-commits niet dubbel opnemen.
## Verification
- Elke genoemde wijziging staat in de git-log.
- Hermes laadt skills in stappen: eerst alleen de lijst, daarna pas de volledige inhoud als die nodig is. Veel skills kost je dus weinig context.
- De agent maakt en verbetert skills ook zelf; met
write_approval: truehoud je daar zicht op. - Aanroepen doe je met
/skill-naam, en met/learnmaak je van referentiemateriaal een skill. - Skills van externe bronnen installeer je met
hermes skills install <id>. Die worden gescand op data-exfiltratie, prompt injection, destructieve commando's en supply-chain-risico's. Een uitslag "gevaarlijk" kun je niet overrulen, ook niet met--force.
Geplande taken
Hermes heeft een ingebouwde planner. Je maakt taken op drie manieren aan:
- In gewone taal: "Elke ochtend om 9 uur het AI-nieuws van Hacker News samenvatten en naar Telegram sturen."
- In de chat:
/cron add "every 2h" "Controleer de serverstatus". - Vanaf de commandoregel:
hermes cron create "every 2h" "Controleer de serverstatus".
De definities staan in ~/.hermes/cron/jobs.json, de uitvoer per run in ~/.hermes/cron/output/<job_id>/. Met deliver: bepaal je waar het resultaat heen gaat: terug naar waar de taak is aangemaakt, alleen naar lokale bestanden, of naar een chatkanaal.
De messaging-gateway
De gateway maakt je agent bereikbaar via Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Teams en meer.
hermes gateway setup # interactief platforms instellen
hermes gateway install # als dienst installeren (systemd op Linux, launchd op macOS)
hermes gateway start
Standaard weigert de gateway iedereen, behalve:
- gebruikers op een allowlist in
.env, bijvoorbeeldTELEGRAM_ALLOWED_USERS=123456789; - gebruikers die je goedkeurt via een koppelcode:
hermes pairing approve telegram <CODE>. Codes verlopen na een uur.
Zet nooit GATEWAY_ALLOW_ALL_USERS=true op een bot met toegang tot een terminal: dan kan iedereen die de bot vindt commando's laten uitvoeren.
Onderhoud
hermes update --checklaat zien wat er nieuw is,hermes updatewerkt bij. Er wordt eerst een snapshot gemaakt, bij fouten automatisch teruggedraaid, de configuratie gemigreerd en de gateway herstart.- Draai na een update
hermes config checkenhermes doctor. - Maak regelmatig een back-up van
~/.hermes/memories/en~/.hermes/skills/: daar zit wat je agent in de loop der tijd heeft geleerd.
Problemen oplossen
hermes: command not found: laad je shell opnieuw metsource ~/.bashrcof open een nieuwe terminal.- Sleutel wordt niet gevonden: hij staat in
config.yamlin plaats van.env, of de naam achter${...}klopt niet.hermes config gettoont de uiteindelijke waarde. - Docker-backend start niet: Docker draait niet, of het geheugen in
container_memoryis groter dan Docker mag gebruiken. - Bot reageert niet op een nieuwe gebruiker: zo hoort het. Keur de gebruiker goed met
hermes pairing approveof zet hem op de allowlist. - Een geïnstalleerde skill wordt geweigerd: de scan vond iets gevaarlijks. Dat kun je niet overrulen; kies een andere skill of schrijf hem zelf.
Documentatie: hermes-agent.nousresearch.com/docs.