Episode Start
Start a new learning episode in the self-learning memory system.
Purpose
Create a new episode record with proper context for the memory backend to learn from execution patterns.
Steps
Understand the task: Parse the task description and identify:
-
Task type (implementation, debugging, refactoring, testing)
-
Domain (storage, patterns, retrieval, testing, etc.)
-
Language context (Rust/Tokio/async patterns)
Prepare TaskContext: Ensure you have:
-
language : "rust"
-
domain : One of [storage, patterns, retrieval, embedding, testing, ci]
-
tags : Array of relevant tags (e.g., ["turso", "async", "tokio"])
Create episode: Call SelfLearningMemory::start_episode(task_description, context)
-
Task description should be clear and concise (1-2 sentences)
-
Include relevant context from the user's request
Store episode_id: Keep the episode ID for logging subsequent steps
Initialize step logging: Prepare to log execution steps with:
-
Tool used
-
Action taken
-
Latency/tokens (if applicable)
-
Success status
-
Observations
Storage Requirements
-
Persist to Turso (durable storage)
-
Cache in redb (fast access)
-
Store context as JSON blob
Example
let context = TaskContext { language: "rust".to_string(), domain: "storage".to_string(), tags: vec!["turso".to_string(), "async".to_string()], };
let episode_id = memory .start_episode( "Implement async batch pattern updates", context ) .await?;
Notes
-
Always validate that both Turso and redb connections are healthy
-
Use anyhow::Result for error handling
-
Log any initialization failures with context