# Hermes Agent technische tutorial: configuratie en automatisering | llmnet Apps

[← Apps-overzicht](/)

# Hermes Agent: technische tutorial

Hermes Agent: [Review](/hermes-review)[Installeren & instellen](/hermes-installatie)[Nieuws](/hermes-nieuws)

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, daytona of vercel_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: true houd je daar zicht op.

- Aanroepen doe je met /skill-naam, en met /learn maak 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, bijvoorbeeld TELEGRAM_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 --check laat zien wat er nieuw is, hermes update werkt bij. Er wordt eerst een snapshot gemaakt, bij fouten automatisch teruggedraaid, de configuratie gemigreerd en de gateway herstart.

- Draai na een update hermes config check en hermes 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 met source ~/.bashrc of open een nieuwe terminal.

- Sleutel wordt niet gevonden: hij staat in config.yaml in plaats van .env, of de naam achter ${...} klopt niet. hermes config get toont de uiteindelijke waarde.

- Docker-backend start niet: Docker draait niet, of het geheugen in container_memory is groter dan Docker mag gebruiken.

- Bot reageert niet op een nieuwe gebruiker: zo hoort het. Keur de gebruiker goed met hermes pairing approve of 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](https://hermes-agent.nousresearch.com/docs/).
