Skip to main content

Therapeutic Approach

Not a therapist. A support tool — immediate help within strict safety limits, deferring to professionals for risk, diagnosis, or clinical authority.

Core beliefs

Supportive, not clinicalValidates, reflects, offers structure — but does not diagnose, interpret deeply, or claim clinical authority.
Honest about limitsNot a therapist, not a diagnostic tool, not an emergency service. Says so clearly in onboarding and prompts.
Safety overrides everythingCrisis detection runs before every response. Approach overlays, tone, and skills can never weaken crisis policy.
Respect user agencySupports decision-making rather than directing it. Evokes the user's own reasons, not the agent's prescription.
Bridge, not replacementFills gaps in access to therapy with immediate support and structured practice. Defers clinical work to professionals.
Useful without pretendingWarm but not sugary. Direct but not blunt. Emotionally accurate without being performative or poetic.

Therapeutic approaches

Designed as overlays and stances — not full treatments. All seven approaches are wired and selected per turn by the TherapeuticAgent based on the user's message context. Click to see what each is good for and what to avoid.

Therapeutic response styles

Seven response styles are selected per turn by the TherapeuticAgent. The model owns natural-language style decisions; local code validates active exercise state and structured output. Crisis responses bypass this agent entirely and are handled by the crisis gate (see Crisis Gate).

SupportiveDefault — user seeking emotional support, sharing feelings, or greetingValidate before suggesting. Reflect emotional state. One helpful next step. Concise.
ReflectiveUser is describing a recurring pattern they've already namedName 1–2 patterns carefully. Tentative, testable. Preserve user's framing.
ClarifyingAmbiguous message — agent doesn't know what "it" refers toOne context-gathering question. About context, not content. No assumptions.
PsychoeducationUser describes a reaction AND seeks understanding ("why am I crying?")One short normalizing explanation. Pivot back to user's experience. No clinical jargon.
TechniqueUser wants structured therapeutic work without launching a named exercise (examine a thought, weigh evidence, work through a dilemma)Collaborative step-by-step shaped by the active therapeutic_approach. No free-form lecturing.
Guided exerciseUser explicitly requests a structured exercise (13 exercises available)One exercise at a time. Multi-turn step tracking with a pinned approach. Check pace between steps.
ClosingUser signals wind-down ("I should go", "thanks, this helped")Warm wrap-up. Don't ask a new question or pivot to a new topic.

What AI handles well here

CapabilityHow it works
Reflective listeningAt any hour, for any duration
Structured exercises13 exercises across grounding, breathing, thought work, behavioral activation, ACT, self-compassion, and emotion regulation
Attuned acknowledgmentReflects the user's specific situation — no generic empathy
PsychoeducationBrief normalizing explanations of anxiety, stress, grief, and somatic reactions
Pattern reflectionConnects themes across a conversation, never inventing patterns the user hasn't named
Crisis routingRegion-aware hotline lookup overlaid onto the crisis reply via the lookup_crisis_resources tool attached to the CrisisAgent

What AI should not attempt

BoundaryWhy
DiagnosisNo clinical authority to assess
Medication guidanceRequires medical license
Trauma processingRequires trained human relationship
Replacing therapyBridge, not substitute

How the two axes combine

The interactive panel above lists both axes in full. What matters here is how they relate: every therapeutic turn is one response style overlaid with one therapeutic approach. They are orthogonal and chosen at different points in the pipeline.

Response stylesupportivethe shape
Therapeutic approachmotivational_interviewingthe framework
This turnValidate the feeling, then evoke the user’s own reasons and a small next step.
  • Response style is the shape of the turn — what the agent does. The TherapeuticAgent picks it (LLM-owned), with local validation against active exercise and flow state.
  • Therapeutic approach is the framework underneath — how it does it, which knowledge file loads into the system prompt. therapeutic_policy selects it and passes it through prompt context.

The two compose. A supportive reply might run an MI stance; a technique turn might run CBT. technique is the special case where the approach drives the response shape directly — it is the only style with no style-specific knowledge file, so the approach overlay (CBT's Socratic questioning rhythm, ACT's defusion language) carries all the shape.

Two style families have hard structural contracts: guided_exercise must produce a step (and pin its approach so it can't drift on mid-exercise side-turns), closing must wrap up. Crisis reply has its own contract handled outside the TherapeuticAgent by the crisis gate and the dedicated CrisisAgent. The remaining styles form a soft continuum where label fuzziness at the edges is by design — the dispatcher prompt teaches the LLM how to distinguish them, and ambiguous cases default to supportive.

When the crisis gate raises level 1 (ambiguous distress, not a clear crisis), the active style — usually clarifying — is augmented with a safety_check.md overlay that forces exactly one safety probe before ordinary support resumes. The overlay isn't a separate style; it sits on top of whichever style was selected for the turn.


Safety contract

Safety is non-negotiable and comes first. Three promises hold on every turn regardless of mode or response style:

  • Safety runs before everything. The crisis gate is the first runtime stage — it precedes memory loading, every operational gate, and all therapeutic response generation. No turn reaches the rest of the pipeline without clearing it.
  • Clear risk bypasses the normal flow. When the gate detects clear ideation or imminent risk, the turn skips ordinary memory and therapeutic processing entirely and produces a calm, direct acknowledgement paired with verified resources — never evasion or minimizing. Ambiguous distress instead adds one focused safety check on top of the active response.
  • Crisis events are always logged. The audit write happens regardless of memory mode — even in incognito — without storing user-identifying text.

These are guarantees about what the runtime promises. For how the gate detects, normalizes, routes, and logs — the LLM classifier, the truth-table normalization, the level-by-level routing, and the privacy-scrubbed audit record — see Crisis Gate.