A session opens. A MEMORY block lands in the system prompt. Hermes documents it at 2,200 characters, about 800 tokens. USER.md next to it is 1,375 characters, about 500 tokens. Both freeze at session start. If the agent writes memory mid-turn, the disk updates now; the prompt waits for the next session.
The skill list is on the same screen. Each name is one line. dttm-writing sits there as a line. Only when the draft starts does skill_view open the full SKILL.md.
Same markdown, two slots. Mix them up and the expensive slot holds procedures every turn.
A job ticket comes off the wall when the job starts. A handoff notebook is already open on the bench at clock-in. Skills are the ticket. Memory is the handoff.
The numbers are documented caps. Not a measurement in this post.
1. Memory is in front every time
Hermes keeps MEMORY.md and USER.md under ~/.hermes/memories/. The caps are above. When the file is full, the memory tool does not silently trim. The write fails, and the agent has to make room in the same turn.
Injection is a session-start snapshot. It does not move mid-session. Prefix cache stays intact. That is why “I just told you to remember” can fail inside one session. Nothing was deleted. This prompt already froze.
OpenClaw stores memory as markdown under ~/.openclaw/memory/. Default max_context_tokens is 2,000. A conversation opens, search fills that budget. Hermes 800+500 looks similar as a count. The timing is not. One is a fixed block. The other is a retrieval allotment.
2. A skill opens when called
Hermes skills live in ~/.hermes/skills/. They follow agentskills.io. The docs call it progressive disclosure. The catalog shows a short description. The body loads on demand. Slash commands can stack up to 5 in one message. The catalog is about 90 bundled and about 60 optional. Ninety full files do not ride every turn.
OpenClaw skills are markdown too. A community architecture table lists about 100–500 tokens per skill and 200–1,000 tokens for SOUL.md. Skills sit beside Gateway, Brain, and Hands. They are not the memory folder.
Put a procedure in MEMORY.md and 2,200 characters become a job ticket. Put a fact only in a skill with no trigger and the session never sees it. Wrong slot.
3. Where they split
Profiles cut both skills and memory. Hermes gives each profile its own home. Two processes on one home mix memory. The docs say so. OpenClaw splits memory SQLite per agent.
Hub versus local splits too. Hermes pulls procedures from the Skills Hub into skills/. Memory has no hub. It is a handoff that stays on the machine.
“A skill is just memory.” That is the markdown. “Bigger MEMORY.md makes a smarter agent.” Procedure past the cap is a bill every session.
Leave the ticket on the wall. Keep the handoff short. That choice is tokens.
Notes
- Hermes MEMORY 2,200 chars and USER 1,375, snapshot at session start: Persistent Memory
- Skills on-demand, progressive disclosure, slash cap 5, ~90 bundled: Skills System
- OpenClaw
max_context_tokensdefault 2,000: Memory System - OpenClaw prompt-layer sizes (SOUL 200–1,000, skill 100–500 each): Architecture Overview