Showcase · Hermes

Een agent-runtime die van buitenaf niet bestaat

Hermes is de plek waar het werk gebeurt: lezen, redeneren, code schrijven, een browser besturen, collega-agents inschakelen. Hij draait native op een Mac Mini, bewust buiten de containerstack — en alles wat hij naar buiten doet loopt door één brug zonder publieke hostnaam.

4
native services, geen Docker
0
open poorten naar buiten
23
toolsets per kanaal regelbaar
27
modellen achter één adres
Architectuur

De brug zonder voordeur

Hoe een Worker op de Cloudflare-edge een dienst op een Mac in een woonkamer bereikt — zonder DNS-record, zonder inkomende poort en zonder betaalde API-sleutel.

CLOUDFLARE-NETWERK MAC MINI M1 — 127.0.0.1 Worker op de edge roept de binding aan VPC Service binding naar de tunnel geen DNS nodig Auth-gateway 127.0.0.1:8646 64-byte gedeeld geheim Modelproxy 127.0.0.1:8645 hangt het abonnement aan Model abonnement Publieke hostnaam http_status:404 weggehaald — dit was v1 geen A-record, geen inkomende poort
Waarom een eigen slot

De proxy vertrouwt iedereen. Dus staat er iets vóór.

De modelproxy hangt per aanvraag de echte credential van het abonnement aan het verzoek en controleert het binnenkomende token niet inhoudelijk — precies zoals de documentatie het beschrijft: “use any bearer token in the client.” Dat is bruikbaar op localhost en onhoudbaar zodra er iets van buiten bij kan.

Alleen de proxy

  1. De modelproxy hangt zelf de echte credential aan elk verzoek
  2. Een binnenkomend bearer-token wordt niet inhoudelijk gecontroleerd
  3. Wie de hostnaam raadt, chat mee op kosten van het abonnement
  4. Geen spoor van wie het was: elk token ziet er hetzelfde uit
  5. De enige rem is dat niemand het adres kent — dat is geen beveiliging

Met de auth-gateway

  1. De aanvraag komt binnen op een auth-gateway vóór de proxy
  2. Een 64-byte gedeeld geheim wordt vergeleken met timingSafeEqual
  3. Klopt het niet, dan is er geen tweede kans en geen foutdetail
  4. De proxy is alleen bereikbaar op 127.0.0.1 — nooit van buiten
  5. En er is geen publieke hostnaam meer om te raden

De gateway is een kleine Node-server zonder dependencies die precies één ding doet: een gedeeld geheim vergelijken in constante tijd, en pas daarna doorlaten. Klein genoeg om in één keer te lezen — dat is het punt van een beveiligingslaag.

Techniek in detail

Wat er onder de motorkap zit

Native, niet in een container

Een agent die je infrastructuur beheert mag niet omvallen omdat de containerstack omvalt. Hermes draait als vier launchd-services met KeepAlive: valt er één om, dan herstart de host hem. Na een reboot komen ze alle vier terug zonder eerst het netwerk op te moeten.

Eén adres, 27 modellen

Al het modelverkeer gaat naar één lokale router, die kiest tussen 27 modellen en de aliassen r-cheap, r-reason en r-code. Daardoor landt elke call automatisch in de kostenledger — er is geen sluiproute langs de boekhouding.

Tot tien children tegelijk

De orkestrator splitst een opdracht op en laat subagents parallel werken: maximaal tien gelijktijdig, één niveau diep, met een harde iteratielimiet. Een subagent keurt zijn eigen werk niet goed.

Geheugen met houdbaarheidsdatum

Notities en een gebruikersprofiel in een lokale store, plus een curator die er wekelijks doorheen loopt: verouderd na 30 dagen, gearchiveerd na 90, altijd met vijf backups achter de hand. Geheugen dat niet opgeruimd wordt, wordt vanzelf onbetrouwbaar.

Bewijs per bewering

Een aparte bewijsdatabase legt vast waarop de agent zijn claims baseerde, en een verificatiestap dwingt af dat er gecontroleerd is voordat hij een taak afsluit. Verifiëren vóór je iets beweert staat niet in een handleiding maar in het startbestand dat hij elke sessie leest.

Gesprekken die niet vollopen

Boven een drempel wordt de context automatisch samengevat, met bescherming voor de eerste en de laatste berichten. Zo raakt een lange sessie niet halverwege zijn opdracht kwijt.

Gebouwd met launchd native servicesCloudflare Workers VPCCloudflare TunnelA2A agent-cardsAppend-only auditLokale modelrouter
Federatie

Agents die elkaar bellen

Hermes staat niet alleen. Via het agent-to-agent-protocol praat hij met drie andere runtimes, elk met een eigen token en een vooraf opgegeven lijst van wat die runtime kan.

nas-hermes

Synology NAS, via het LAN

terminal · research · mcp

champ

Lokaal én via het LAN

chat · coding · infra

claude

Lokale bridge

coding · research · terminal

Elke tegenpartij publiceert een agent-card op een vast adres, zodat de aanroeper weet wat hij mag verwachten voordat hij iets stuurt. Wat er over en weer gaat komt in een append-only auditbestand — dezelfde regel als bij Sentinel: wie iets doet, laat een spoor achter dat niet meer te wijzigen is.

Vangrails

Een agent met terminaltoegang is alleen bruikbaar als je weet waar hij stopt

tirith
Policy-engine die elke tool-aanroep vooraf beoordeelt, met een korte time-out zodat een trage check de agent niet vastzet.
blast-radius-guard
Schat de reikwijdte van een actie in en houdt te brede ingrepen tegen vóórdat ze worden uitgevoerd.
command_allowlist
Twaalf commando’s mogen zonder tussenkomst draaien. Al het andere valt onder het goedkeuringsregime.
tool_loop_guardrails
Eerst een waarschuwing, daarna een harde stop wanneer de agent in dezelfde lus blijft hangen.
grok-quota-guard
Bewaakt het verbruik op het abonnement, zodat een doorgedraaide sessie geen quotum leegtrekt.
redact_secrets
Filtert geheimen uit tool-uitvoer voordat ze in een transcript of een logregel belanden.
allow_private_urls
Staat uit: de agent haalt uit zichzelf geen interne netwerkadressen op.
checkpoints
Snapshots met retentiebeleid, plus een verplichte backup vóór elke update van de runtime zelf.
Afbakening

Hermes is niet Sentinel

Sentinel bewaakt de infrastructuur. Vier gescheiden lagen — ogen, brein, goedkeuring, handen — over 94 containers en 210 workflows, met één logboek dat niet te herschrijven is. Sentinel beslist óf er iets mag gebeuren.

Hermes is waar het werk gebeurt. De runtime waarin een agent leest, redeneert, code schrijft en collega-agents inschakelt. Hij voert uit, binnen de grenzen die Sentinel bewaakt.

De twee raken elkaar op één punt, en dat is met opzet: mutaties aan de infrastructuur lopen niet vanuit de agent zelf, maar via de brug. Backup vóór elke wijziging, nooit permanent verwijderen, en verifiëren vóór je iets beweert.

Lees de Sentinel-showcase →

Early access

Wil je een agent die op jouw hardware draait?

Hermes draait in productie op ons eigen lab: op eigen hardware, zonder open poorten en zonder metered API-sleutels. Vraag een demo aan en we lopen de architectuur met je door.