Files
obsidian-vault/wiki/entities/psychologist-app.md
T

3.0 KiB

title, created, updated, type, namespace, tags, sources, confidence, related
title created updated type namespace tags sources confidence related
AI Psychologist App (Nolvu) 2026-05-25 2026-05-25 entity personal
project
psychology
reflect-app
ios
startup
personal/projects/psychologist-app/session-design.md
personal/projects/psychologist-app/analytics.md
personal/projects/psychologist-app/onboarding-archetypes.md
medium
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):

{
  "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_idanalytics_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