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