How my home agent remembers

An agent that forgets what it learned yesterday can’t act intelligently today, so memory is the part of Jeeves I’ve spent the most time on.

Jeeves is my home agent system. He’s in fact about 20 different agents with various specialisations, but they all share the same mechanisms (though not necessarily the same data).

He runs on Hermes (after a brief stint on openclaw), and its memory has four tiers. Closest to the model is the context window itself, rebuilt on every turn, with compression to keep it roomy. Next comes the procedural tier: about sixty skills, a few house-rule files and a persona file. Only the skill index is always in context, and the bodies load when they’re needed.

The third tier is episodic. Every session is stored and searchable, with full-text search and a semantic index on top, and it’s never compacted. If something was said, it can be found.

The fourth is semantic, and it’s split in two on purpose. One half is a small file of hot operational pointers that ride along on every turn, capped at around 2,200 characters. The other half is a git-versioned wiki of durable knowledge, read on demand, and it can grow as large as it likes.

None of this stays tidy by itself. A fleet of five scheduled jobs keeps it healthy without me paying attention, and the next five posts take them apart: the hot file and the wiki, why every job runs a script before it asks a model anything, how the nightly linking works, why the wiki lives in git, and what happens when the maintenance itself goes wrong.