Episode Complete
Complete and score a learning episode to extract patterns and update heuristics.
Purpose
Finalize an episode with outcome scoring, reflection generation, and pattern extraction for future retrieval.
Steps
- •
Gather outcome data:
- •Final verdict (success, partial_success, failure)
- •Total time spent
- •Total tokens used (if applicable)
- •Key artifacts produced
- •Errors encountered
- •
Create TaskOutcome:
rustlet outcome = TaskOutcome { verdict: Verdict::Success, time_ms: total_time, tokens: total_tokens, artifacts: vec![/* paths to created/modified files */], errors: vec![/* any errors encountered */], }; - •
Call complete_episode:
rustmemory.complete_episode(episode_id, outcome).await?;
- •
System processes:
- •Computes RewardScore based on:
- •Success/failure
- •Time efficiency
- •Code quality
- •Generates Reflection:
- •What worked well
- •What could be improved
- •Key learnings
- •Extracts Patterns:
- •Tool sequences
- •Decision points
- •Common pitfalls
- •Computes RewardScore based on:
- •
Update storage:
- •Store in Turso (permanent record)
- •Update redb cache
- •Index by task_type and timestamp
- •Update related patterns and heuristics
- •
Validation:
- •Verify episode was scored
- •Check patterns were extracted
- •Ensure heuristics were updated
Pattern Types Extracted
- •ToolSequence: Common tool usage patterns
- •DecisionPoint: Key decision moments and outcomes
- •ErrorPattern: Common errors and resolutions
- •PerformancePattern: Optimization opportunities
Scoring Rubric
- •Success: Task completed, tests pass, meets requirements
- •Partial Success: Task mostly complete, minor issues
- •Failure: Task incomplete, major issues, tests failing
Example
rust
let outcome = TaskOutcome {
verdict: Verdict::Success,
time_ms: 45000,
tokens: 12000,
artifacts: vec![
"src/storage/batch.rs".to_string(),
"tests/integration/batch_test.rs".to_string(),
],
errors: vec![],
};
memory.complete_episode(episode_id, outcome).await?;
Post-Completion
- •Patterns are now available for future retrieval
- •Heuristics updated for similar tasks
- •Episode stored for long-term learning
- •Embeddings computed (if service configured)