# Conversation State Management Specification ## Overview Conversation state management for multi-turn VTM conversations. ## State Schema ```json { "session_id": "uuid", "user_id": "uuid", "context": { "current_workflow": "bridge_action", "workflow_state": {...}, "entities": { "amount": "100", "source_chain": "138", "destination_chain": "1" } }, "conversation_history": [ { "turn": 1, "user": "I want to bridge tokens", "assistant": "Which chains would you like to bridge between?", "timestamp": "2024-01-01T00:00:00Z" } ], "intents": ["bridge_initiation"], "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:05:00Z" } ``` ## Context Preservation ### Context Types **Workflow Context**: Current workflow state **Entity Context**: Extracted entities (amounts, addresses, etc.) **User Context**: User preferences, history **Session Context**: Session metadata ### Context Updates **Triggers**: - User input - Workflow progression - Entity extraction - External events ## Multi-Turn Conversation Handling ### Turn Management **Track**: - Turn number - User input - Assistant response - Extracted entities - Intent changes ### Entity Extraction **Entities**: - Amounts - Addresses - Chain names/IDs - Token symbols - Dates/times ### Disambiguation **Handling Ambiguity**: - Ask clarifying questions - Suggest options - Use context to infer ## Session Timeout and Recovery ### Timeout **Duration**: 30 minutes of inactivity **Action**: Save state, end session **Recovery**: Resume from saved state if user returns ### Recovery **Process**: 1. User returns within timeout window 2. Restore conversation state 3. Continue from last turn 4. Prompt user to continue ## References - Teller Orchestrator: See `teller-orchestrator.md` - Workflows: See `teller-workflows.md`