Agent Memory and Context Management

ai-agentMedium
Applicability

When to Use

When agents need to remember past interactions
When context windows are limited
When building personalized agent experiences
Overview

How It Works

This pattern gives AI agents persistent memory using MCP servers. Short-term memory (current conversation) is managed in Redis for fast access, while long-term memory (facts, preferences, past interactions) is stored in PostgreSQL or a vector database. The agent loads relevant memories before each interaction using semantic search, incorporates them as context, and stores new learnings after each interaction. This enables agents that get smarter over time and maintain continuity across sessions.
Implementation

Code Example

typescript
async function getRelevantMemories(userId, currentQuery) {
  // Short-term: recent conversation
  const shortTerm = await redis.lrange(`conversation:${userId}`, 0, 10);
  
  // Long-term: semantic search for relevant facts
  const embedding = await openai.embed({ input: currentQuery });
  const longTerm = await pinecone.query({ vector: embedding, filter: { userId }, topK: 5 });
  
  return {
    recentMessages: shortTerm.map(m => JSON.parse(m)),
    relevantFacts: longTerm.map(m => m.metadata.content)
  };
}

async function storeMemory(userId, interaction) {
  // Short-term
  await redis.lpush(`conversation:${userId}`, JSON.stringify(interaction));
  await redis.ltrim(`conversation:${userId}`, 0, 50);
  
  // Long-term: extract and store facts
  const facts = extractFacts(interaction);
  for (const fact of facts) {
    const embedding = await openai.embed({ input: fact });
    await pinecone.upsert({ vectors: [{ id: generateId(), values: embedding, metadata: { userId, content: fact } }] });
  }
}

Quick Info

Categoryai-agent
ComplexityMedium

Need Architecture Help?

Our team designs custom automation architectures.

Get in Touch
CortexAgent Customer Service

Want to skip the form?

Our team is available to help you get started with CortexAgent.

This chat may be recorded for quality assurance. You can view our Privacy Policy.