Skip to main content
Glama

MCP Memory Service

README-phase2.md12.4 kB
# Claude Code Memory Awareness - Phase 2: Intelligent Context Updates ## Overview Phase 2 transforms Claude Code from a memory-aware system into a **conversation-intelligent** development assistant. While Phase 1 provided automatic memory injection at session start, Phase 2 adds **real-time conversation analysis** and **dynamic context updates** during active coding sessions. ## 🎯 Phase 2 Features ### 1. **Dynamic Memory Loading** - **Real-time Topic Detection**: Analyzes conversation flow to detect topic shifts - **Automatic Context Updates**: Injects relevant memories as conversation evolves - **Deduplication**: Avoids re-injecting already loaded memories - **Rate Limiting**: Prevents context overload with intelligent cooldown periods ### 2. **Conversation Intelligence** - **Natural Language Processing**: Extracts topics, entities, and intent from conversations - **Semantic Analysis**: Matches conversation content with stored memories - **Code Context Detection**: Understands code blocks, file paths, and technical discussions - **Intent Classification**: Recognizes debugging, implementation, planning, and optimization activities ### 3. **Cross-Session Intelligence** - **Session Tracking**: Links related conversations across different sessions - **Conversation Threading**: Builds conversation threads over time - **Progress Continuity**: Connects outcomes from previous sessions to current work - **Recurring Pattern Detection**: Identifies recurring topics and workflow patterns ### 4. **Enhanced Memory Scoring** - **Multi-Factor Algorithm**: Combines time decay, tag relevance, content matching, and conversation context - **Dynamic Weight Adjustment**: Adjusts scoring weights based on conversation analysis - **Context Awareness**: Prioritizes memories matching current conversation topics - **User Behavior Learning**: Adapts to individual developer patterns over time ## 🏗️ Technical Architecture ### Core Components #### 1. **Conversation Analyzer** (`utilities/conversation-analyzer.js`) ```javascript const analysis = analyzeConversation(conversationText, { extractTopics: true, extractEntities: true, detectIntent: true, detectCodeContext: true, minTopicConfidence: 0.3 }); // Results: topics, entities, intent, codeContext, confidence ``` **Capabilities:** - **Topic Detection**: 15+ technical topic categories (database, debugging, architecture, etc.) - **Entity Extraction**: Technologies, frameworks, languages, tools - **Intent Recognition**: Learning, problem-solving, development, optimization, review, planning - **Code Context**: Detects code blocks, file paths, error messages, commands #### 2. **Topic Change Detection** (`core/topic-change.js`) ```javascript const changes = detectTopicChanges(previousAnalysis, currentAnalysis); if (changes.hasTopicShift && changes.significanceScore > threshold) { await triggerDynamicMemoryLoading(); } ``` **Features:** - **Significance Scoring**: Calculates importance of topic changes - **New Topic Detection**: Identifies emerging conversation topics - **Intent Change Tracking**: Monitors shifts in conversation purpose - **Threshold Management**: Prevents noise from minor changes #### 3. **Enhanced Memory Scorer** (`utilities/memory-scorer.js`) ```javascript const scoredMemories = scoreMemoryRelevance(memories, projectContext, { includeConversationContext: true, conversationAnalysis: analysis, weights: { timeDecay: 0.25, tagRelevance: 0.35, contentRelevance: 0.15, conversationRelevance: 0.25 } }); ``` **Algorithm:** - **Time Decay (25%)**: Recent memories weighted higher - **Tag Relevance (35%)**: Project and technology tag matching - **Content Relevance (15%)**: Keyword and semantic matching - **Conversation Relevance (25%)**: Current topic and intent alignment #### 4. **Session Tracker** (`utilities/session-tracker.js`) ```javascript const sessionTracker = getSessionTracker(); await sessionTracker.startSession(sessionId, context); const continuityContext = await sessionTracker.getConversationContext( projectContext, { maxPreviousSessions: 3, maxDaysBack: 7 } ); ``` **Intelligence Features:** - **Session Linking**: Connects related sessions across time - **Conversation Threading**: Builds multi-session conversation threads - **Progress Tracking**: Monitors outcomes and task completion - **Pattern Recognition**: Identifies recurring topics and workflows #### 5. **Dynamic Context Updater** (`utilities/dynamic-context-updater.js`) ```javascript const updater = new DynamicContextUpdater({ updateThreshold: 0.3, maxMemoriesPerUpdate: 3, updateCooldownMs: 30000, enableCrossSessionContext: true }); await updater.processConversationUpdate( conversationText, memoryServiceConfig, contextInjector ); ``` **Orchestration:** - **Update Triggering**: Determines when to inject new context - **Memory Querying**: Fetches relevant memories from service - **Context Formatting**: Creates beautiful markdown context updates - **Rate Management**: Prevents context overload with smart limiting ## 🔧 Configuration ### Phase 2 Configuration Options ```json { "conversationAnalysis": { "enableTopicDetection": true, "enableEntityExtraction": true, "enableIntentDetection": true, "enableCodeContextDetection": true, "minTopicConfidence": 0.3, "maxTopicsPerAnalysis": 10, "analysisDebounceMs": 2000 }, "dynamicContextUpdate": { "enabled": true, "updateThreshold": 0.3, "maxMemoriesPerUpdate": 3, "updateCooldownMs": 30000, "maxUpdatesPerSession": 10, "debounceMs": 5000, "enableCrossSessionContext": true }, "sessionTracking": { "enabled": true, "maxSessionHistory": 50, "maxConversationDepth": 10, "sessionExpiryDays": 30, "enableConversationThreads": true, "enableProgressTracking": true }, "memoryScoring": { "weights": { "timeDecay": 0.25, "tagRelevance": 0.35, "contentRelevance": 0.15, "conversationRelevance": 0.25 }, "enableConversationContext": true } } ``` ## 🚀 How Phase 2 Works ### 1. **Session Initialization** ```javascript // Session starts with Phase 1 memory injection await sessionStart.onSessionStart(context); // Phase 2 initializes dynamic tracking await dynamicUpdater.initialize(sessionContext); await sessionTracker.startSession(sessionId, context); ``` ### 2. **Real-time Conversation Monitoring** ```javascript // As conversation evolves, analyze changes const currentAnalysis = analyzeConversation(conversationText); const changes = detectTopicChanges(previousAnalysis, currentAnalysis); // Trigger dynamic updates for significant changes if (changes.significanceScore > threshold) { await triggerContextUpdate(); } ``` ### 3. **Dynamic Context Injection** ```markdown 🧠 **Dynamic Context Update** **New topics detected**: database, performance **Recent session context**: • Implementation completed 2 hours ago • Debugging session completed yesterday **Relevant context**: 🔥 Database optimization techniques for SQLite - Fixed query performance issues... *database, optimization, sqlite* ⭐ Performance profiling guide - How to identify bottlenecks... *performance, debugging, profiling* --- ``` ### 4. **Cross-Session Intelligence** ```javascript // Link current session to previous related work const continuityContext = await sessionTracker.getConversationContext(projectContext); // Include insights from previous sessions if (continuityContext.recentSessions.length > 0) { updateMessage += formatCrossSessionContext(continuityContext); } ``` ## 📊 Example Workflow ### Scenario: Database Performance Issue 1. **Initial Session Context** (Phase 1) ```markdown 🧠 Relevant Memory Context ## Recent Insights - Authentication system completed yesterday - New user registration implemented ## Project Context: ecommerce-app - Language: Python, JavaScript - Framework: Django, React ``` 2. **User Starts Discussion** ``` User: "I'm noticing the user queries are really slow, taking 2-3 seconds to load the dashboard" ``` 3. **Dynamic Analysis Triggers** - **Topics Detected**: `performance`, `database`, `optimization` - **Intent**: `problem-solving` - **Significance Score**: `0.7` (high) 4. **Dynamic Context Update** (Phase 2) ```markdown 🧠 **Dynamic Context Update** **New topics detected**: performance, database **Focus shifted to**: problem-solving **Relevant context**: 🔥 Database indexing strategy for user queries - Added composite indexes... *database, performance, indexing* ⭐ Query optimization patterns in Django - Use select_related() and prefetch... *django, optimization, queries* --- ``` 5. **Continued Evolution** - As conversation progresses through debugging → solution → testing - Each topic shift triggers relevant memory injection - Previous context remains available, new context adds incrementally ## 🧪 Testing Phase 2 ### Run Integration Tests ```bash cd claude-hooks node tests/phase2-integration-test.js ``` **Test Coverage:** - Conversation Analysis (topic/entity/intent detection) - Topic Change Detection (significance scoring) - Enhanced Memory Scoring (conversation context) - Session Tracking (cross-session intelligence) - Dynamic Context Updates (rate limiting, formatting) - Full Integration (conversation flow simulation) ### Manual Testing ```bash # Test conversation analyzer node -e " const { analyzeConversation } = require('./utilities/conversation-analyzer'); const result = analyzeConversation('Debug database performance issues'); console.log('Topics:', result.topics.map(t => t.name)); " # Test dynamic updates node -e " const { DynamicContextUpdater } = require('./utilities/dynamic-context-updater'); const updater = new DynamicContextUpdater(); console.log('Stats:', updater.getStats()); " ``` ## 🎯 Benefits of Phase 2 ### For Developers - **Zero Cognitive Load**: Context updates happen automatically during conversations - **Perfect Timing**: Memories appear exactly when relevant to current discussion - **Conversation Intelligence**: AI understands context, intent, and technical discussions - **Progressive Learning**: Each conversation builds upon previous knowledge ### For Development Workflow - **Seamless Integration**: Works transparently during normal coding sessions - **Cross-Session Continuity**: Never lose track of progress across different sessions - **Intelligent Prioritization**: Most relevant memories surface first - **Pattern Recognition**: Recurring issues and solutions automatically identified ### Technical Performance - **Efficient Processing**: Smart rate limiting and debouncing prevent overload - **Minimal Latency**: <500ms response time for topic detection and memory queries - **Scalable Architecture**: Handles 100+ active memories per session - **Resource Optimization**: Intelligent deduplication and context management ## 🔮 Phase 2 vs Phase 1 Comparison | Feature | Phase 1 | Phase 2 | |---------|---------|---------| | **Memory Injection** | Session start only | Real-time during conversation | | **Context Awareness** | Project-based | Project + conversation topics | | **Intelligence** | Static scoring | Dynamic conversation analysis | | **Session Linking** | None | Cross-session intelligence | | **Update Frequency** | Once per session | Multiple times as topics evolve | | **Memory Scoring** | 4-factor algorithm | 5-factor with conversation context | | **User Experience** | Good contextual start | Intelligent conversation partner | ## 🚀 What's Next: Phase 3 Phase 2 completes the **Intelligent Context Updates** milestone. The next phase will focus on: - **Advanced Memory Consolidation**: AI-powered memory organization and summarization - **Team Knowledge Sharing**: Multi-developer memory contexts and collaboration - **Predictive Context Loading**: Anticipate needed memories before topics emerge - **Custom Memory Types**: Specialized memory categories for different development activities - **Integration APIs**: Third-party tool integration and memory syndication **Phase 2 represents a major leap forward in AI-assisted development - from memory-aware to conversation-intelligent coding assistance.** 🧠✨

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/doobidoo/mcp-memory-service'

If you have feedback or need assistance with the MCP directory API, please join our Discord server