Memory Engine
Beyond MEMORY.md as a static file, the active memory engine treats memory as a live store of timestamped entries with tags and optional TTL. Agents read relevant entries automatically; write new ones explicitly.
What gets stored
- Free-text content
- Optional tags for filtering
- Optional sessionKey (per-session scope)
- Optional TTL โ entries auto-delete after expiry
- Created + last-accessed timestamps
CLI usage
vesper memory write bags-hunter "User prefers 24h+ liquidity tokens"
vesper memory write bags-hunter "BTC ATH thesis: 200k by Q4" \
--tag thesis --ttl-hours 720
vesper memory list bags-hunter
vesper memory list bags-hunter --tag thesis
vesper memory search bags-hunter "ATH thesis"
vesper memory delete bags-hunter m_1737...
vesper memory clear bags-hunterAPI
POST /memory/:agent {content, tags?, sessionKey?, ttlMs?}
GET /memory/:agent ?tag=X&sessionKey=Y
POST /memory/:agent/search {query, limit?}
DELETE /memory/:agent/:id
DELETE /memory/:agent (clear all)Auto-inclusion in context
The Context Engine injects the top 5 most relevant entries into every system prompt. Relevance is keyword-scored against recent messages.
Storage
User-installed: ~/.openvesper/agents/<mode>/memory/<id>.json
Bundled: .agents/<mode>/memory/<id>.json
File mode 0600. Nothing transmitted off-machine.
Source
Implementation: apps/gateway/src/memory-engine.ts