databaseConversation Memory Deep Dive

NeurosLink AI's Conversation Memory feature enables AI models to maintain context across multiple turns within a session, creating more natural and coherent conversations.

🧠 Overview

The conversation memory system provides:

  • Session-based memory: Each conversation session maintains its own context

  • Turn-by-turn persistence: AI remembers previous messages within a session

  • Automatic cleanup: Configurable limits to prevent memory bloat

  • Session isolation: Different sessions don't interfere with each other

  • In-memory storage: Fast, lightweight storage for conversation history

  • Universal Method Support: Works seamlessly with both generate() and stream() methods

  • Stream Integration: Full conversation memory support for streaming responses

⚙️ Configuration

Environment Variables

# Enable/disable conversation memory
NEUROLINK_MEMORY_ENABLED=true

# Maximum number of sessions to keep in memory
NEUROLINK_MEMORY_MAX_SESSIONS=50

# Maximum number of turns per session
NEUROLINK_MEMORY_MAX_TURNS_PER_SESSION=50

Programmatic Configuration

🚀 Usage Examples

Basic Usage with Session ID

Streaming Support

The conversation memory system now fully supports streaming responses with the same memory persistence:

Mixed Generate/Stream Conversations

You can seamlessly mix generate() and stream() calls within the same conversation:

Session Isolation Example

📊 Memory Management

Turn Limits

When the number of conversation turns exceeds maxTurnsPerSession, older messages are automatically removed:

Session Limits

When the number of active sessions exceeds maxSessions, the least recently used sessions are removed:

🔌 API Reference

Memory Statistics

Session Management

🧪 Test Results

The conversation memory system has been thoroughly tested and validated:

✅ Test Suite Results

Test Case
Status
Description

Basic Memory

✅ PASS

AI correctly remembers information across turns

Session Isolation

✅ PASS

Sessions remain completely separate

Turn Limits

✅ PASS

Automatic cleanup when limits exceeded

Session Limits

✅ PASS

LRU eviction of old sessions

API Functions

✅ PASS

Clear operations work correctly

Example Test Output

💡 Best Practices

1. Session ID Strategy

2. Memory Limits

3. Error Handling

🔧 Technical Implementation

Architecture

Message Format

🔍 Troubleshooting

Common Issues

Memory not persisting between calls

  • Ensure sessionId is consistent across calls

  • Verify conversationMemory.enabled is true

  • Check that sessionId is a valid string

Performance issues with large conversations

  • Reduce maxTurnsPerSession limit

  • Implement session cleanup strategies

  • Monitor memory usage statistics

Session isolation not working

  • Verify different sessionId values are being used

  • Check for session ID conflicts or duplicates

Debug Logging

📈 Performance Characteristics

  • Memory Usage: ~1KB per conversation turn

  • Lookup Time: O(1) for session retrieval

  • Cleanup Time: O(n) for session limit enforcement

  • Concurrency: Thread-safe in-memory operations

The conversation memory system is designed for production use with efficient memory management and robust error handling.

Last updated

Was this helpful?