Architecture: How to fix 6 WhatsApp UX issues and make Vitto feel intellig...

Documentation for Sessions

🏗️ Architecture: How to fix 6 WhatsApp UX issues and make Vitto feel intellig...

Date: 2026-03-13
Time: 15:11:31 UTC
Session: gspace1-214.2
Agent: angular
Confidence: 92%
Status: ✅ Documented


📋 Decision Context

Question:

How to fix 6 WhatsApp UX issues and make Vitto feel intelligent rather than robotic?

Task: Execute S211.4 Vitto Conversational Intelligence plan


🎯 Decision Made

Chosen:

Three-layer fix: (1) Consolidate message flow — ACK/progress/quick-reply share a budget of max 2 pre-response messages, emitter created AFTER ACK. (2) Add query_system_status tool inline in tool-registry — Vitto can access its own alerts/health data via ProactiveMonitorService. (3) Context-aware responses — skip agent loop for greetings (saves ~500 tokens), suppress generic quick reply buttons for short/greeting responses, contextual button labels instead of "Go deeper", language-boundary persona directive, MessageSid dedup guard, digest memory persistence.

Options Considered:


💭 Reasoning

Root causes from real WhatsApp conversation: duplicate greeting = ACK + LLM response for fast tier (fixed by reordering emitter after ACK with shared budget); "What next?" spam = enricher always fires for >20 chars (raised to 80, suppressed for greetings/fast tier); can't query alerts = no tool bridges ProactiveMonitorService to agent loop (added inline in tool-registry following existing pattern); "Mira mijo" = humorLevel:2 + formality:1 + no language guard (reduced humor to 1, raised formality to 2, added language boundary directive); "Go deeper" useless = triggers same loop (replaced with contextual labels). Anticipated: greeting wastes agent loop (added fast-path), digest not in memory (added persistence after delivery).


📁 Files Involved


🔗 Related


Auto-generated by MCP Smart Consolidation