--- title: AI Psychologist App (Nolvu) created: '2026-05-25' updated: '2026-05-25' type: entity namespace: personal tags: [project, psychology, reflect-app, ios, startup] sources: - personal/projects/psychologist-app/session-design.md - personal/projects/psychologist-app/analytics.md - personal/projects/psychologist-app/onboarding-archetypes.md confidence: medium related: - "[[personal-os-architecture]]" - "[[concepts/executor-orchestrator]]" --- # AI Psychologist App (Nolvu) Mobile app providing AI-powered therapy sessions. Also referred to as "reflect app" or "nolvu" in vault. Status: active development (May 2026). ## Architecture — Dual-Agent Session Design Two-bot system handling a single user session: ``` Bot 1: Analyst ("Психолог") → analyzes user in 3rd person ("user avoids...") → generates 1-2 questions per batch ↓ Bot 2: Narrator ("Посредник" / Mediator) → translates to 1st person ("you avoid?") → produces structured question JSON for UI ↓ UI (deterministic algorithm) → serves questions one at a time → collects answers → passes numbered summary back to Analyst ``` **Key principle:** question delivery is a deterministic algorithm, not an LLM call. Agent generates a batch once; UI manages sequencing. ## Session Flow ``` OPEN: character animation → intro (1-2 sentences + max 2 history hooks) → topic selection DIALOGUE: Analyst generates questions (3rd person) → Narrator translates (1st person JSON) → UI queues → user answers → numbered summary → next batch INSIGHT: Analyst crystallizes observation → Narrator reformulates for user CLOSE: [backend] Analyst writes session summary + updates profile.md Narrator: warm closing phrase + next session date "One last thing" (optional open input) → close or reschedule flow ``` ## State Persistence Session state saved at every step (not only on close): ```json { "session_id": "2026-05-19", "phase": "dialogue", "current_question_idx": 2, "answered": [...], "last_activity_ts": 1747612800 } ``` Abandoned sessions (last_activity_ts > 20h, not closed): backend cron forces partial close → Analyst writes partial summary → profile.md updated. ## Analytics — Privacy-First (GDPR) - **No Google Analytics.** PostHog (self-hosted or EU Cloud, free tier). - **Split identity:** `user_id` ≠ `analytics_session_id` — no cross-table join. - Demographics stored as buckets (age: 25-34, country: ISO code) — not PII. - Never log: message text, questionnaire answers, full IP, timestamp+user_id pair. Key funnel metric: **Session 1 completion rate** (target > 50%). ## Onboarding "Resonance questionnaire" — cards with real audience voice phrases (e.g. "Устала быть сильной") that encode 5 variables in 4 words. User picks up to 2. Classification maps to archetype for session personalization. ## See Also - [[concepts/executor-orchestrator]] — related multi-agent orchestration pattern - [[personal-os-architecture]] — system context in which this is developed