Agents need short-term (conversation), long-term (vector store), and entity memory for continuity.
Agent Memory Systems
# 1. Short-term memory (conversation history)
class ShortTermMemory:
def __init__(self, max_messages: int = 20):
self.messages = []
self.max_msgs = max_messages
def add(self, role: str, content: str):
self.messages.append({"role":role,"content":content})
if len(self.messages) > self.max_msgs:
self.messages = self.messages[-self.max_msgs:]
# 2. Long-term memory (vector store)
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
from langchain.schema import Document
class LongTermMemory:
def __init__(self):
self.store = Chroma(embedding_function=OpenAIEmbeddings())
def remember(self, text: str, metadata: dict = {}):
self.store.add_documents([Document(page_content=text, metadata=metadata)])
def recall(self, query: str, k: int = 5) -> list[str]:
docs = self.store.similarity_search(query, k=k)
return [d.page_content for d in docs]
# 3. Entity memory (track key entities)
# 4. Episodic memory (past task results)
# 5. Procedural memory (tool usage patterns)