OPTXOPTX DOCS
JOE — Jett Optics Engine

Memory System

SpacetimeDB-backed persistent memory with categories, importance scoring, and real-time subscriptions.

AstroJOE's memory is backed by SpacetimeDB running on OPTX Validator Nodes. The optx-cortex database provides real-time reducers and subscriptions for persistent agent state.

Database: optx-cortex

TablePurpose
memory_entryPersistent agent memory (category, key, value, importance, source, owner)
agent_stateAgent status tracking (status, current_task, metadata)
gaze_attestationJETT Auth gaze verification records
session_logSession start/end tracking
matrix_messageMatrix/Conduit message bridge

Memory Entry Schema

Each memory has:

  • category: system, task, observation, skill, user
  • key: Unique identifier
  • value: Content (string, can contain JSON)
  • importance: 1-10 score for retrieval priority
  • source: Where it came from (hermes, aaron, matrix, etc.)
  • owner: Agent that owns this memory

Reducers (Write Operations)

ReducerArgsPurpose
store_memorycategory, key, value, source, owner, importance, session_idStore or update a memory
touch_memoryidUpdate last-accessed timestamp
delete_memoryidRemove a memory entry
set_agent_stateagent_name, status, current_task, metadataUpdate agent state
store_gaze_attestationsession_id, gaze_hash, entropy_score, positions, verifiedRecord gaze verification
start_sessionsession_type, metadataBegin a new session
end_sessionsession_id, summaryClose a session
process_matrix_messageroom_id, sender, body, directionBridge Matrix message

API Endpoints (via hermes-optx-api)

POST   /api/memory          — Store a memory
GET    /api/memory           — List memories (filter by category, search)
GET    /api/memory/{id}      — Get specific memory
DELETE /api/memory/{id}      — Delete a memory
GET    /api/memory/stats     — Memory statistics
GET    /api/memory/health    — Backend health check

Memory Backends

The hermes-optx-api supports pluggable memory backends:

BackendDescriptionDefault
holographicSQLite + FTS5 full-text search (local)Yes
spacetimedbSpacetimeDB on validator node (real-time, shared)Production
customImplement your own MemoryBackend interface

SpacetimeDB Limitations

  • No CREATE TABLE via SQL (requires Rust module recompile)
  • No ORDER BY (sort client-side)
  • No LIKE operator (filter client-side)
  • SQL is read-only; all writes go through reducers

On this page