Architecture: How to implement persona adaptation so Vitto's behavior evol...

Documentation for Sessions

🏗️ Architecture: How to implement persona adaptation so Vitto's behavior evol...

Date: 2026-03-18
Time: 00:16:16 UTC
Session: gspace1-231.10
Agent: backend
Confidence: 88%
Status: ✅ Documented


📋 Decision Context

Question:

How to implement persona adaptation so Vitto's behavior evolves based on user interactions?

Task: S231.2 Phase 4.2 — Persona adaptation loop


🎯 Decision Made

Chosen:

Created DossierPersonaAdapterService in backend-vitto-api engine module. Injects ProactiveDispatcherService for real notifications. Detects expertise mismatches (e.g., user became more technical) and persona drift (behavioral parameters diverge from observed patterns). Dispatches notifications to the user with adaptation suggestions. 24h per-user cooldown prevents notification spam. Wired fire-and-forget in phase-executor after task success.

Options Considered:

  1. Auto-adjust persona sliders (rejected: too risky for identity features)
  2. Log-only observation (rejected: no user benefit)
  3. Notification-based adaptation suggestions (chosen: safe, actionable, reversible)

💭 Reasoning

Phase 4.2 required connecting two existing but disconnected systems: UserDossierService (tracks expertise, preferences) and Persona (behavioral sliders). The adapter detects when observed behavior diverges from configured persona and suggests adjustments. Rather than auto-modifying persona (risky: could compound errors), it dispatches a notification to the user explaining what it observed and suggesting changes. This human-in-the-loop approach is safer for identity-critical features. Also wired UserDossierService.updateExpertise() in phase-executor.persistUserFacts() to keep expertise current.


📁 Files Involved


🔗 Related


Auto-generated by MCP Smart Consolidation