Compare
Ujex vs Letta (MemGPT): Substrate vs Framework
Quick verdict
Letta: full agent framework with three-tier memory built in. Pick when you want batteries-included and the MemGPT model fits your problem. Ujex: substrate (memory + email + ingress + audit + budgets + mobile). Pick when you want to bring your own framework (LangGraph, custom loop) and not rebuild the infra.
Different shapes
| Letta | Ujex | |
|---|---|---|
| Type | Agent framework + memory | Agent substrate (no framework) |
| Memory model | 3-tier: Core / Recall / Archival | Markdown-first (Recall) |
| Email infra | ✗ | ✓ (Postbox) |
| Ingress / webhooks | ✗ | ✓ (Ingress) |
| Budgets | ✗ | ✓ (Governor) |
| Mobile approvals | ✗ | ✓ (Mobile) |
| Audit log (hash-chained) | ✗ | ✓ (Audit) |
| Self-hostable | ✓ Free | ✓ Apache-2.0 SDKs |
| Agent loop included | ✓ | ✗ (BYO) |
Pick Letta if
- Batteries-included framework + memory in one
- The MemGPT three-tier model maps to your problem
- You're starting fresh and don't have a loop already
Pick Ujex if
- You have a framework (LangGraph, Mastra, custom) and want everything else
- You need email + ingress + audit + budgets in the same project as memory
- Self-host with Apache-2.0 SDKs is non-negotiable
Use both
Run Letta as your agent loop with its three-tier memory; use Ujex for Postbox + Ingress + Mobile + Audit. They don't conflict — different layers.
Detailed: Mem0 vs Letta vs Zep vs Ujex Recall.
FAQ
Is Ujex a Letta competitor?
Different layers. Letta is a framework + memory; Ujex is substrate. Many users run both.