189 lines
4.6 KiB
Markdown
189 lines
4.6 KiB
Markdown
# FuseMind Memory System Architecture
|
|
|
|
## Overview
|
|
FuseMind implements a sophisticated memory system that combines psychological memory models with modern LLM capabilities. The system is designed to be modular and extensible, allowing for gradual implementation and refinement.
|
|
|
|
## Core Concepts
|
|
|
|
### Memory Types
|
|
1. **Episodic Memory**
|
|
- Stores specific events and experiences
|
|
- Includes temporal and emotional context
|
|
- Used for conversation history and user interactions
|
|
|
|
2. **Semantic Memory**
|
|
- Stores general knowledge and facts
|
|
- Includes relationships between concepts
|
|
- Used for system knowledge and agent capabilities
|
|
|
|
3. **Procedural Memory**
|
|
- Stores skills and procedures
|
|
- Includes conditions and exceptions
|
|
- Used for agent behaviors and capabilities
|
|
|
|
4. **Life Event Memory**
|
|
- Stores significant life events
|
|
- Tracks emotional impact and phases
|
|
- Influences memory formation and retrieval
|
|
|
|
### Emotional Context
|
|
- Tracks emotional state (mood, energy, stress, focus)
|
|
- Manages emotional triggers and biases
|
|
- Influences memory formation and retrieval
|
|
- Handles emotional volatility and stability
|
|
|
|
### Temporal Context
|
|
- Tracks life events and their duration
|
|
- Manages memory decay and importance
|
|
- Handles period-specific biases
|
|
- Influences memory relevance
|
|
|
|
## Technical Implementation
|
|
|
|
### Memory Service
|
|
The `MemoryService` class handles all memory operations:
|
|
- Memory storage and retrieval
|
|
- Emotional state management
|
|
- Life event tracking
|
|
- Memory consolidation
|
|
|
|
### Database Schema
|
|
Memories are stored with the following structure:
|
|
```typescript
|
|
interface DatabaseMemory {
|
|
id: string;
|
|
type: MemoryType;
|
|
content: string; // JSON stringified
|
|
temporal: string; // JSON stringified
|
|
emotional: string; // JSON stringified
|
|
connections: string; // JSON stringified
|
|
created_at: Date;
|
|
updated_at: Date;
|
|
}
|
|
```
|
|
|
|
### React Integration
|
|
The system provides a `useFusemindMemory` hook for React components:
|
|
```typescript
|
|
const {
|
|
activeMemories,
|
|
emotionalState,
|
|
storeMemory,
|
|
retrieveMemories,
|
|
updateEmotionalState
|
|
} = useFusemindMemory();
|
|
```
|
|
|
|
## Implementation Roadmap
|
|
|
|
### Phase 1: Core Memory System
|
|
- [x] Basic memory types and interfaces
|
|
- [x] Memory service implementation
|
|
- [x] React integration
|
|
- [ ] Database integration
|
|
|
|
### Phase 2: Emotional Context
|
|
- [ ] Emotional state tracking
|
|
- [ ] Trigger management
|
|
- [ ] Bias handling
|
|
- [ ] Emotional influence on memory
|
|
|
|
### Phase 3: Life Events
|
|
- [ ] Life event tracking
|
|
- [ ] Event phase management
|
|
- [ ] Recovery and healing
|
|
- [ ] Temporal context influence
|
|
|
|
### Phase 4: LLM Integration
|
|
- [ ] Context window management
|
|
- [ ] Embedding storage and retrieval
|
|
- [ ] Prompt template management
|
|
- [ ] Memory-augmented generation
|
|
|
|
## Usage Examples
|
|
|
|
### Storing a Memory
|
|
```typescript
|
|
const memory: MemoryUnit = {
|
|
id: generateId(),
|
|
type: 'episodic',
|
|
content: {
|
|
data: { /* memory content */ },
|
|
metadata: { /* additional info */ }
|
|
},
|
|
temporal: {
|
|
created: new Date(),
|
|
modified: new Date(),
|
|
lastAccessed: new Date(),
|
|
decayRate: 0.1,
|
|
importance: 0.8
|
|
},
|
|
emotional: {
|
|
valence: 0.5,
|
|
arousal: 0.3,
|
|
emotionalTags: ['positive', 'exciting']
|
|
},
|
|
connections: []
|
|
};
|
|
|
|
await memoryService.storeMemory(memory);
|
|
```
|
|
|
|
### Retrieving Memories
|
|
```typescript
|
|
const memories = await memoryService.retrieveMemory({
|
|
query: 'search term',
|
|
context: {
|
|
currentTask: 'task description',
|
|
emotionalState: 'current state'
|
|
},
|
|
filters: {
|
|
type: 'episodic',
|
|
timeRange: [startDate, endDate]
|
|
}
|
|
});
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
1. **Memory Formation**
|
|
- Always include temporal and emotional context
|
|
- Consider current life events
|
|
- Track memory importance and decay
|
|
|
|
2. **Memory Retrieval**
|
|
- Use appropriate filters
|
|
- Consider emotional context
|
|
- Account for temporal relevance
|
|
|
|
3. **Life Event Management**
|
|
- Track event phases
|
|
- Monitor emotional impact
|
|
- Handle event transitions
|
|
|
|
4. **Emotional State**
|
|
- Update state gradually
|
|
- Consider multiple factors
|
|
- Handle state transitions
|
|
|
|
## Future Enhancements
|
|
|
|
1. **Advanced Memory Processing**
|
|
- Machine learning for memory importance
|
|
- Automated memory consolidation
|
|
- Dynamic decay rates
|
|
|
|
2. **Enhanced Emotional Context**
|
|
- Multi-dimensional emotional states
|
|
- Complex trigger patterns
|
|
- Emotional memory networks
|
|
|
|
3. **Improved LLM Integration**
|
|
- Context-aware prompting
|
|
- Memory-augmented generation
|
|
- Dynamic context management
|
|
|
|
4. **Visualization Tools**
|
|
- Memory network visualization
|
|
- Emotional state tracking
|
|
- Life event timeline |