| name | episode-complete |
| description | Complete and score a learning episode to extract patterns and update heuristics. Use when finalizing a task to enable pattern extraction and future learning. |
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:
let 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:
memory.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
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)