feat(memory): add episodic memory implementation (Issue #90)

Implements the episodic memory service for storing and retrieving
agent task execution experiences. This enables learning from past
successes and failures.

Components:
- EpisodicMemory: Main service class combining recording and retrieval
- EpisodeRecorder: Handles episode creation, importance scoring
- EpisodeRetriever: Multiple retrieval strategies (recency, semantic,
  outcome, importance, task type)

Key features:
- Records task completions with context, actions, outcomes
- Calculates importance scores based on outcome, duration, lessons
- Semantic search with fallback to recency when embeddings unavailable
- Full CRUD operations with statistics and summarization
- Comprehensive unit tests (50 tests, all passing)

Closes #90

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-05 02:08:16 +01:00
parent bd988f76b0
commit 3554efe66a
8 changed files with 2472 additions and 4 deletions

View File

@@ -1,8 +1,17 @@
# app/services/memory/episodic/__init__.py
"""
Episodic Memory
Episodic Memory Package.
Experiential memory storing past task completions,
failures, and learnings.
Provides experiential memory storage and retrieval for agent learning.
"""
# Will be populated in #90
from .memory import EpisodicMemory
from .recorder import EpisodeRecorder
from .retrieval import EpisodeRetriever, RetrievalStrategy
__all__ = [
"EpisodeRecorder",
"EpisodeRetriever",
"EpisodicMemory",
"RetrievalStrategy",
]