Files
Mai/.planning/phases/04-memory-context-management/04-04-PLAN.md
Mai Development 9cdb1e7f6c docs(04): create phase plan
Phase 04: Memory & Context Management
- 4 plan(s) in 3 wave(s)
- 2 parallel, 2 sequential
- Ready for execution
2026-01-27 21:53:07 -05:00

8.2 KiB

phase, plan, type, wave, depends_on, files_modified, autonomous, must_haves
phase plan type wave depends_on files_modified autonomous must_haves
04-memory-context-management 04 execute 3
04-01
04-02
04-03
src/memory/personality/__init__.py
src/memory/personality/pattern_extractor.py
src/memory/personality/layer_manager.py
src/memory/personality/adaptation.py
src/memory/__init__.py
src/personality.py
true
truths artifacts key_links
Personality layers learn from conversation patterns
Multi-dimensional learning covers topics, sentiment, interaction patterns
Personality overlays enhance rather than replace core values
Learning algorithms prevent overfitting to recent conversations
Personality system integrates with existing personality.py
path provides min_lines
src/memory/personality/pattern_extractor.py Pattern extraction from conversations 80
path provides min_lines
src/memory/personality/layer_manager.py Personality overlay system 60
path provides min_lines
src/memory/personality/adaptation.py Dynamic personality updates 50
path provides exports
src/memory/__init__.py Complete MemoryManager with personality learning
MemoryManager
PersonalityLearner
path provides min_lines
src/personality.py Updated personality system with memory integration 20
from to via pattern
src/memory/personality/pattern_extractor.py src/memory/storage/sqlite_manager.py conversation data for pattern analysis sqlite_manager.get_conversations_for_analysis
from to via pattern
src/memory/personality/layer_manager.py src/memory/personality/pattern_extractor.py pattern data for layer creation pattern_extractor.extract_patterns
from to via pattern
src/personality.py src/memory/personality/layer_manager.py personality overlay application layer_manager.get_active_layers
Implement personality learning system that extracts patterns from conversations and creates adaptive personality layers. This enables Mai to learn and adapt communication patterns while maintaining core personality values.

Purpose: Enable Mai to learn from user interactions and adapt personality while preserving core values Output: Working personality learning system with pattern extraction, layer management, and dynamic adaptation

<execution_context> @/.opencode/get-shit-done/workflows/execute-plan.md @/.opencode/get-shit-done/templates/summary.md </execution_context>

@.planning/phases/04-memory-context-management/04-CONTEXT.md @.planning/phases/04-memory-context-management/04-RESEARCH.md @.planning/PROJECT.md @.planning/ROADMAP.md @.planning/STATE.md

Reference existing personality system

@src/personality.py @src/resource/personality.py

Reference memory components

@.planning/phases/04-memory-context-management/04-01-SUMMARY.md @.planning/phases/04-memory-context-management/04-02-SUMMARY.md @.planning/phases/04-memory-context-management/04-03-SUMMARY.md

Task 1: Create pattern extraction system src/memory/personality/__init__.py, src/memory/personality/pattern_extractor.py Create src/memory/personality/pattern_extractor.py with PatternExtractor class:
  1. Implement multi-dimensional pattern extraction following research:

    • Topics: Track frequently discussed subjects and user interests
    • Sentiment: Analyze emotional tone and sentiment patterns
    • Interaction patterns: Response times, question asking, information sharing
    • Time-based preferences: Communication style by time of day/week
    • Response styles: Formality level, verbosity, use of emojis/humor
  2. Pattern extraction methods:

    • extract_topic_patterns(conversations: List[Conversation]) -> TopicPatterns
    • extract_sentiment_patterns(conversations: List[Conversation]) -> SentimentPatterns
    • extract_interaction_patterns(conversations: List[Conversation]) -> InteractionPatterns
    • extract_temporal_patterns(conversations: List[Conversation]) -> TemporalPatterns
    • extract_response_style_patterns(conversations: List[Conversation]) -> ResponseStylePatterns
  3. Analysis techniques:

    • Simple frequency analysis for topics
    • Basic sentiment analysis using keyword lists or simple models
    • Statistical analysis for interaction patterns
    • Time series analysis for temporal patterns
    • Linguistic analysis for response styles
  4. Pattern validation:

    • Confidence scoring for extracted patterns
    • Pattern stability tracking over time
    • Outlier detection for unusual patterns

Follow existing error handling patterns. Keep analysis lightweight to avoid heavy computational overhead. python -c "from src.memory.personality.pattern_extractor import PatternExtractor; pe = PatternExtractor(); print('Pattern extractor created successfully')" Pattern extractor can analyze conversations and extract patterns

Task 2: Implement personality layer management and adaptation src/memory/personality/layer_manager.py, src/memory/personality/adaptation.py, src/memory/__init__.py, src/personality.py Create personality management system:
  1. Create src/memory/personality/layer_manager.py with LayerManager:

    • PersonalityLayer dataclass with weights and application rules
    • Layer creation from extracted patterns
    • Layer conflict resolution (when patterns contradict)
    • Layer activation based on conversation context
    • Methods: create_layer_from_patterns(), get_active_layers(), apply_layers()
  2. Create src/memory/personality/adaptation.py with PersonalityAdaptation:

    • Time-weighted learning (recent patterns have less influence)
    • Gradual adaptation with stability controls
    • Feedback integration for user preferences
    • Adaptation rate limiting to prevent rapid changes
    • Methods: update_personality_layer(), calculate_adaptation_rate(), apply_stability_controls()
  3. Update src/memory/init.py to integrate personality learning:

    • Add PersonalityLearner to MemoryManager
    • Implement learning triggers (after conversations, periodically)
    • Add personality data persistence
    • Provide learning controls and configuration
  4. Update src/personality.py to integrate with memory:

    • Import and use PersonalityLearner from memory system
    • Apply personality layers during conversation responses
    • Maintain separation between core personality and learned layers
    • Add configuration for learning enable/disable
  5. Personality layer application:

    • Hybrid system prompt + behavior configuration
    • Context-aware layer activation
    • Core value enforcement (learned layers cannot override core values)
    • Layer priority and conflict resolution

Follow existing patterns from src/resource/personality.py for personality management. Ensure core personality values remain protected from learned modifications. python -c "from src.memory.personality.layer_manager import LayerManager; lm = LayerManager(); print('Layer manager created successfully')" Personality system can learn patterns and apply adaptive layers

After completion, verify: 1. Pattern extractor analyzes conversations across multiple dimensions 2. Layer manager creates personality overlays from patterns 3. Adaptation system prevents overfitting and maintains stability 4. Personality learning integrates with existing personality.py 5. Core personality values are protected from learned modifications 6. Learning system can be enabled/disabled through configuration

<success_criteria>

  • Pattern extraction covers topics, sentiment, interaction, temporal, and style patterns
  • Personality layers work as adaptive overlays that enhance core personality
  • Time-weighted learning prevents overfitting to recent conversations
  • Stability controls maintain personality consistency
  • Integration with existing personality system preserves core values
  • Learning system is configurable and can be controlled by user </success_criteria>
After completion, create `.planning/phases/04-memory-context-management/04-04-SUMMARY.md`