Add full monorepo: virtual-banker, backend, frontend, docs, scripts, deployment
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
100
docs/specs/vtm/conversation-state.md
Normal file
100
docs/specs/vtm/conversation-state.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# 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`
|
||||
|
||||
Reference in New Issue
Block a user