Blog
Ujex Recall — Markdown-first agent memory
Ujex Recall is the long-term memory subsystem of Ujex. Markdown files in your Cloud Storage bucket are the source of truth; Firestore holds the derived BM25 + vector index.
Why markdown
- Human-readable — open any file in a text editor
- Greppable from your laptop (
gcloud storage rsync+grep -r) - YAML frontmatter for structured metadata (type, tags, created, updated)
- Survives any database — the bucket is the truth
Search modes
- BM25 (default, fast, no embedding cost)
- Vector (Vertex AI embeddings, semantic)
- Hybrid (BM25 + vector, max-of-both)
SDKs
ujex-recallon PyPIgithub.com/axysar/ujex/sdks/go/recall@ujex/clienton npm
LangGraph integration
RecallStore as LangGraph BaseStore — drop-in, native.
Compared to alternatives
Mem0 vs Letta vs Zep vs Ujex Recall — when to pick which.
Pricing
Free tier: 100MB markdown, 10k vector queries/mo. Paid plans for higher volume.
FAQ
Where does the data live?
Your Cloud Storage bucket. The Firestore index is derived; you can rebuild it from the bucket at any time.
What if I want a different embedding model?
Vertex AI is the default; OpenAI embeddings as a config option. Bring your own embedding endpoint via the SDK.