Haarvisie verslagen
← Alle verslagen📄 Download als PDF
🎧 Luister dit verslag
1,0x
⬇️ Download naar telefoon
📖 Lees mee met de podcast

Hé Jamal, welkom bij deze speciale editie van onze podcast! Vandaag duiken we diep in Hermes Agent, die krachtige AI-assistent waar jij zo mee bezig bent. We gaan het hebben over hoe Hermes precies werkt, hoe je 'm het beste kunt inzetten met je Claude Max abonnement, en hoe je die Desktop-app optimaal gebruikt zonder verrassingen. En natuurlijk: die kosten en die recente inlog-perikelen. Geen zorgen, we maken het helder.

Laten we beginnen bij de basis: Hermes is in de kern een AI-agent die overal kan draaien en via chat met je communiceert. Hij gebruikt elk model dat je maar wilt, leert van zijn eigen ervaring, en jij stuurt 'm aan via Telegram, de command-line of die Desktop-app. Het is trouwens gratis software, je betaalt alleen voor het model dat je aanroept.

De architectuur is slim: één motor, de AIAgent, drijft alles aan. Van je CLI tot de Desktop-app, allemaal dezelfde slimme kern. En die praat op drie manieren met modellen, wat het superflexibel maakt om van provider te wisselen. Jouw bots, zoals Beeld, Dirigent of Contentclaude, zijn eigenlijk allemaal aparte profielen – een soort eigen thuismap met hun eigen geheugen en instellingen. Maar let op: nooit twee processen op hetzelfde profiel, dat geeft gedoe!

Wat Hermes écht uniek maakt, is dat zelflerende vermogen. Denk aan zes lagen die samenwerken: van geheugen dat in je prompt zit, tot skills die hij zelf leert schrijven als hij een herhaalbare workflow detecteert. En een stille review die na elke beurt kijkt of het geheugen of een skill kan worden bijgewerkt. En het mooie: je kunt dat leerproces zelfs met een goedkeuringshek beveiligen. Hij heeft ook meer dan 70 ingebouwde tools, en je kunt subagents delegeren voor complexe taken – die werken dan tijdelijk en focussen op één ding. En qua deployment? Je agent kan overal draaien, zelfs op een goedkope server die slaapt als hij niks doet, en jij praat er gewoon mee via Telegram. Oh, en Bot Mode, waarbij je bots elkaar berichten sturen, is ideaal voor jullie interne communicatie – met @mentions bijvoorbeeld. Elk gesprek wordt trouwens bewaard als sessie, met een zoekfunctie, en Hermes vat lange gesprekken automatisch samen om je contextvenster binnen de perken te houden, en daarmee de kosten.

Dan de hamvraag, Jamal: Claude via je Max-abonnement. Kan het? Ja, maar met een paar stevige 'mitsen'. Hermes heeft een officiële Anthropic OAuth-flow, net als bij Grok. Maar je hebt Claude Max nodig *plus gekochte extra usage-credits*. Je standaard Max-tegoed en Claude Pro werken hier niet. Hermes gebruikt dus alleen je extra credits.

Je recente inlog-storm? Die kwam doordat Claude-OAuth in de praktijk werkt als één 'seat'. En als dan meerdere bots, plus jouw eigen Claude Code-sessie, tegelijk die login proberen te gebruiken, krijg je conflicts en 401/429-fouten. Vooral als je een handmatige token had die niet automatisch ververst. De oplossing? Gebruik `hermes auth add anthropic --type oauth`. Dan beheert Hermes zelf de verversing van die tokens. Plus, Hermes kan trouwens ook omgaan met 429's, 402's en 401's door automatisch te roteren of te verversen.

Concreet advies: optie A is de meest probleemloze weg: een losse Anthropic API-key. Die kost geld per token, maar is super robuust en geeft geen login-conflicten. Optie B, als je per se die Max-credits wilt gebruiken, is OAuth mét een API-key als terugval. Maar: zet dan maar één bot op die OAuth én vermijd tegelijkertijd je eigen Claude Code-sessie. En een belangrijke valkuil: elke keer dat je wisselt van model of sleutel, reset je prompt-cache. De volgende keer betaal je dus weer voor de hele context. Niet te veel heen en weer springen dus! De Desktop-app zelf is trouwens alleen de interface; de model-provider configureer je op de backend waar de app mee verbindt.

Over die Desktop-app gesproken: het is dezelfde krachtige agent als je CLI, je kunt sessies gewoon wisselen. De app start alleen z'n eigen 'headless' backend, waar de React-UI mee praat. Maar dan die modelkeuze, en de storing van vandaag. Er zijn drie lagen: de snelle kiezer links van je microfoon, de globale default per profiel in de instellingen, en het `/model` commando in een chat.

Jouw 401-storing vandaag? Die kwam doordat iemand in één specifieke sessie `/model opencode-zen:x-preview-f-free` typte. Dat schreef die specifieke provider en model in de *sessie-rij* van je database. De volgende keer dat die sessie weer werd gebruikt, probeerde Hermes exact dát model aan te roepen, wat een 401 gaf – "Model not supported". Je profiel-default was nooit veranderd, alleen die ene sessie was 'besmet'. Hoe je dat voorkomt? Wissel modellen vroeg in een chat of start een verse chat, en gebruik alleen de picker met curated modellen. Vrij typen van provider-namen omzeilt de checks. Voor een eenmalige testvraag kun je `/model --once` gebruiken, dan herstelt hij vanzelf.

Oké, Jamal, even de belangrijkste punten op een rij: Hermes is superflexibel en gratis software, maar je betaalt voor het AI-model. Claude Max kan, maar vereist extra credits en een zorgvuldige OAuth-configuratie, liefst met maar één bot op die OAuth. En die Desktop-app: kies je modellen via de UI of aan het begin van een verse chat om verrassingen te voorkomen, zoals die 401 van vandaag. Door slim om te gaan met profielen, credential-pools en die modelkeuzes, haal je het maximale uit Hermes, zonder onnodige kosten of frustrerende logins.

Hopelijk is dit allemaal een stuk duidelijker geworden en helpt het je om Hermes nog efficiënter in te zetten. Bedankt voor het luisteren en tot de volgende keer!

Hermes Agent — het complete naslagwerk

Dit is je master-naslag over Hermes Agent van Nous Research, met focus op de Desktop-app, op Claude via je Max-abonnement, en op kosten. Onderzocht met de volledige broncode van jouw eigen installatie (v0.20.4) plus de officiële docs. Bij elke claim staat een bron: een bestandspad of een link.

In het kort (lees dit eerst)


1. Wat is Hermes en hoe werkt het

In één zin

Hermes is een AI-agent die overal draait en via chat praat. Hij gebruikt elk model dat je wilt, leert van zijn eigen ervaring, en je bedient hem via Telegram, CLI of de Desktop-app. Bron: README.md, website/docs/index.mdx.

De kern-architectuur

Profielen = jouw bot-vloot

Het zelf-verbeterende leer-mechanisme (het unieke)

Zes lagen die samenwerken:
1. Geheugen (MEMORY.md + USER.md, klein, altijd in de prompt). De agent beheert dit zelf. Het is een bevroren snapshot: wijzigingen verschijnen pas volgende sessie in de prompt. Bron: features/memory.md.
2. Skills (markdown-procedures, laden alleen als nodig, kosten 0 tokens tot dan). Bron: guides/work-with-skills.md.
3. Autonome skill-creatie: de agent schrijft zelf skills als hij een herhaalbare workflow vond of jij hem corrigeerde. Bron: features/skills.md.
4. Background review: na een beurt draait stil een review die een geheugen-regel of skill kan bijwerken. Je ziet dan 💾 Memory updated. Bron: features/memory.md.
5. session_search: doorzoekt met SQLite FTS5 al je oude gesprekken. Gratis, geen model-call. Bron: features/sessions.md.
6. Honcho (optioneel): bouwt een dieper model van wie je bent, over sessies heen. Bron: features/memory-providers.md.

Belangrijk voor jou: je kunt de zelf-verbetering met een goedkeur-hek aanzetten. memory.write_approval: true of skills.write_approval: true, dan review je met /memory pending of /skills pending. Bron: features/memory.md, features/skills.md.

Tools, MCP en subagents

Deployment: draait overal, praat via Telegram

Bot Mode: bots die elkaar berichten sturen

Sessies, staat en context


2. Claude via je Max-abonnement (de kernvraag)

Kan het? Ja, maar met voorwaarden

De vier auth-types van Hermes

Bron: providers/base.py, developer-guide/model-provider-plugin.md.
- api_key — sleutel in .env (Anthropic API-key, OpenAI, Gemini, enz.)
- oauth_device_code — code in browser (Nous Portal)
- oauth_external — je logt elders in, tokens landen in auth.json (Anthropic OAuth, MiniMax, xAI Grok, Nous Portal). Dit is wat Codex bij jou gebruikt.
- external_process / copilot / aws / vertex — bijzondere gevallen.

Waarom je herinlog-storm ontstond

Hoe Hermes 429 en re-auth opvangt

Bron: features/credential-pools.md, agent/credential_pool.py.
- 429 (rate limit): 1x zelfde sleutel opnieuw, dan roteren. Cooldown 1 uur.
- 402 (billing): meteen roteren. Cooldown 1 uur.
- 401 (verlopen): eerst OAuth-token verversen, anders roteren. Cooldown 5 min.
- Je hebt in profiles/contentclaude/auth.json al een credential-pool: OAuth op prioriteit 0, API-key op prioriteit 1. Precies de goede opzet.

Concreet advies: twee opties

Optie A — meest zonder gezeik: losse Anthropic API-key.
Het Claude-equivalent van je Codex-truc: aparte pool, geen seat-conflict, meerdere bots tegelijk oké.

# in het profiel-config.yaml
model:
  provider: anthropic
  default: claude-sonnet-4-6
# in ~/.hermes/.env
ANTHROPIC_API_KEY=sk-ant-api03-...

Optie B — je Max-credits gebruiken: OAuth plus API-key-terugval, en maar één bot erop.

hermes auth add anthropic --type oauth                              # Max + extra credits, prioriteit 0
hermes auth add anthropic --type api-key --api-key sk-ant-api03-... # terugval, prioriteit 1
model:
  provider: anthropic
  default: claude-sonnet-4-6
credential_pool_strategies:
  anthropic: fill_first   # eerst OAuth-credits, dan de API-key

Let op valkuil: bij het wisselen van sleutel of provider reset de prompt-cache. De volgende call leest de hele context tegen vol tarief. Veel heen-en-weer springen is dus duur. Bron: credential-pools.md, fallback-providers.md.

En de Desktop-app zelf?

De model-provider staat op de backend, niet in de app. De Desktop-app logt via de systeem-browser in op je Hermes-gateway (dat is een andere login dan je model-provider). Je configureert Claude dus op het profiel/backend waar de app mee verbindt, via hermes auth add anthropic --type oauth of hermes model. Bron: guides/desktop-native-signin.md, user-guide/desktop.md.


3. De Desktop-app beheersen

Wat de app is

Model kiezen: drie lagen (dit veroorzaakte de storing)

  1. Composer-modelkiezer (links van de microfoon): sticky UI per apparaat, raakt je default nooit aan. Bij een live chat geldt het alleen voor die chat. Bron: desktop.md.
  2. Per-profiel default (Settings → Model): de globale default voor nieuwe chats, crons en subagents. Bron: desktop.md.
  3. /model-commando in een chat: alleen die sessie. Met --global past hij ook config.yaml aan, met --once alleen de volgende beurt. Bron: configuring-models.md.

Waar de keuze wordt bewaard (de oorzaak van de 401 vandaag)

De per-sessie keuze staat in state.db, tabel sessions, in twee kolommen: model én model_config (JSON). Iemand typte /model opencode-zen:x-preview-f-free in één sessie. Dat schreef provider: opencode-zen + model: x-preview-f-free naar die sessie-rij. Bij de volgende beurt hervatte de sessie exact dat model → HTTP 401 "Model not supported". De profiel-default (gpt-5.6-sol) was nooit veranderd; alleen die ene sessie was besmet. Bron: geverifieerd in je eigen state.db + desktop.md.

Hoe je die fout voorkomt

Meerdere sessies tegelijk (jouw 2-terminals-werkwijze)

Remote backend (jouw Mac Mini in Spanje via Tailscale)

Master-tips

Let op: jouw app is v0.17.0 terwijl de repo op v0.20.4 staat. De model- en profiel-mechaniek is geverifieerd tegen je echte config. Sommige nieuwste app-features kunnen in 0.17.0 net anders heten. Een update naar 0.20.x is te overwegen.


4. API's, kosten en zuinig gebruik

Twee soorten kosten (het belangrijkste)

Hermes kent per model-aanroep een billing_mode. Bron: agent/usage_pricing.py, tabel session_model_usage.
- Abonnement (Codex/ChatGPT Team, Claude Max OAuth): subscription_included, kosten per token = 0. Je betaalt een vast maandbedrag. Bron: usage_pricing.py.
- API-key (Anthropic-key, OpenRouter): betaal per token. Lange sessies = oplopende rekening.

Voor een vloot die veel draait is een abonnement dus veiliger tegen verrassingen.

Wat je eigen data laat zien (profiel Beeld, echt gemeten)

provider billing model calls geschatte kosten
anthropic (API-key) per token claude-opus-4-8 154 circa 25,75 dollar
anthropic (API-key) per token opus (background review) 18 circa 2,46 dollar
openai-codex abonnement gpt-5.6-sol 28 0,00 dollar
opencode-zen onbekend x-preview-f-free 24 0,00 (de kapotte)

Kort: Codex kostte niets per token, Claude Opus via API-key liep naar circa 30 dollar. Bron: live session_model_usage in profiles/beeld/state.db.

Zelf je kosten zien

Ingebouwde besparingen

Rate limits en fallback

Best practices (drie lanen)

  1. Primaire laan: betrouwbaar betaald model voor kritiek werk.
  2. Goedkope laan: lokaal/goedkoop model voor samenvatten, classificeren, routine.
  3. Auxiliary-laan: aparte compressie- en memory-routes.

Kernregel uit de community: reken op totale kosten per afgeronde taak, niet op prijs per token. Een goedkoop model dat 10x herprobeert is duurder dan een duur model dat het in één keer goed doet. Precies je eigen team-regel.

Advies voor jouw vloot

  1. Codex (ChatGPT Team) als brein blijft kosten-technisch veilig. Vast maandbedrag, 0 per token, ideaal voor veel bots.
  2. Ga je naar Claude, doe het via Max-OAuth (subscription-included), niet via een losse API-key waar de teller doorloopt.
  3. Zet een korte fallback-keten zodat een bot nooit stilvalt, maar houd het kort (elke wissel wist de cache).
  4. Zet show_cost: true en gebruik /usage.
  5. Aparte credentials per bot voor de primaire laan, plus pools voor veerkracht.
  6. Cron-taken spreiden, achtergrondwerk op een goedkoop model.
  7. Valse stilte: een zwijgende bot betekent meestal quota/credits op of een verkeerde route, niet dat het platform stuk is. Meet aan de kosten-kant.

5. Waar je Hermes leert

Officiële hoofdbronnen (geverifieerd)

Het officiële learning path (leer-volgorde)

Voor jouw doel het handigste use-case-pad ("team van specialist-bots"): Desktop → Profiles → Bot Mode → Cron → Multi-connection Desktop.

Must-read docs voor meesterschap

Praktijk-gidsen (bouwprojecten die op jouw setup lijken)

Community en video (aanvullend, kritisch lezen)

Eerlijk: de community is nog jong en dun. Voor master worden leun je 90% op de officiële docs plus de code in je lokale repo. De echte code is de ultieme bron van waarheid.


6. Stappenplan voor jou

  1. Nu: Hermes werkt weer (de kapotte modellen zijn teruggezet naar gpt-5.6-sol). Codex als brein houden = veilig en gratis per token.
  2. Model wisselen doe je voortaan in een verse chat via de picker, nooit met vrij getypte provider-namen.
  3. Wil je Claude erbij: kies eerst API-key (optie A, simpel) of Max-OAuth met terugval (optie B). Zet maar één bot erop.
  4. Zet show_cost: true zodat je live ziet wat draait.
  5. Overweeg een update van de Desktop-app (v0.17.0 → v0.20.x) om gelijk te lopen met de docs.
  6. Leren: volg het learning path, lees de must-reads, en bouw één gids na (team-telegram-assistant lijkt op jouw vloot).

Bronnen

Lokale broncode + officiële docs in /Users/macbookjamal/.hermes/hermes-agent/ (v0.20.4): README.md, website/docs/ (getting-started, user-guide, features, integrations, guides, developer-guide, reference), providers/, plugins/model-providers/, agent/credential_pool.py, agent/usage_pricing.py, hermes_cli/, docs/billing-lifecycle.md, en de live state.db van je profielen. Online: hermes-agent.nousresearch.com/docs, github.com/NousResearch/hermes-agent.

Onzekerheden die niet te sluiten waren: exacte maandprijs van Nous Portal (staat achter de sign-up), exact aantal seats per Claude Max, en of de gemeten Anthropic-kosten "actual" of alleen "estimated" waren. Deze staan eerlijk als onzeker gelabeld.

🎙️ Bespreek met Jarvis