What makes it interesting
The core technical challenge is contextual memory at scale. Rather than dumping full conversation history into the prompt, the system builds a structured, evolving model of each user across sessions. After each conversation ends, an extraction pipeline identifies insights, commitments, value discoveries, and behavioral patterns, stores them as embeddings, and updates a rolling narrative summary (~150 words) of the user's current life situation. When a new session starts, semantically relevant memories are retrieved via vector search and assembled into the system prompt alongside curated philosophical knowledge.
This means Theia can reference a commitment a user made three weeks ago, notice a recurring pattern across unrelated threads, and respond with appropriate context — without ever loading a full transcript.
Key features
- Semantic memory system — episodic memories and a rolling life summary, retrieved via vector search at session start
- Frankl knowledge base — 45+ hand-curated entries on logotherapy concepts, clinical methods, and case study patterns; retrieved semantically to ground responses philosophically
- Journey page — users can view their extracted memories, values, and commitments organized as a personal narrative
- Commitment lifecycle tracking — active, completed, on-hold, and abandoned states with check-in history
- Document upload — users attach personal documents (PDFs, Word, Markdown) that are chunked, embedded, and retrieved semantically
- Usage tracking and billing — per-message cost tracking with a free tier, Stripe subscriptions, and admin exemptions
- Admin tooling — thread/session browser with debug mode showing Claude's internal reasoning and retrieved context per message
- Safety layer — OpenAI Moderation API screens all messages before they reach the LLM; crisis responses surface hotline resources and soft-lock the coaching dialogue
Tech: NextJS · Claude Sonnet 4.5 · OpenAI text-embedding-3-large · MongoDB
