Expand description
§Pattern Extractor
Extracts reusable patterns from completed episodes:
- Tool sequences that worked well
- Decision points with outcomes
- Error recovery strategies
- Context-based patterns
§Example
use do_memory_core::extraction::PatternExtractor;
use do_memory_core::{Episode, TaskContext, TaskType, TaskOutcome, ExecutionStep};
let context = TaskContext::default();
let mut episode = Episode::new("Test task".to_string(), context, TaskType::Testing);
// Add some execution steps
for i in 0..3 {
let step = ExecutionStep::new(i + 1, format!("tool_{}", i), "Action".to_string());
episode.add_step(step);
}
episode.complete(TaskOutcome::Success {
verdict: "Done".to_string(),
artifacts: vec![],
});
let extractor = PatternExtractor::new();
let patterns = extractor.extract(&episode);
// Patterns may be extracted based on episode contentStructs§
- Pattern
Extractor - Pattern extractor
Constants§
- MAX_
SEQUENCE_ LENGTH - Maximum sequence length for tool sequence patterns
- MIN_
PATTERN_ SUCCESS_ RATE - Minimum success rate to extract a pattern
- MIN_
SEQUENCE_ LENGTH - Minimum sequence length for tool sequence patterns
Functions§
- deduplicate_
patterns - Remove duplicate patterns from a list
- rank_
patterns - Rank patterns by relevance/quality