Long-Term Memory for
AI Assistants.

Recall, understand, and extract data from chat histories. Power personalized AI experiences.

Your Assistant will never forget a user.
Zep ensures your Assistant remembers past conversations, and resurfaces them when relevant.
Classify intent, emotion, and more.
Identify your user's intent, build semantic routers, and trigger events, all in milliseconds.
Turn dialog into structured data.
Emails, phone numbers, dates, names, and more, extracted quickly and accurately.
Blazing Fast.
Retrieve, analyze, and extract in milliseconds. Your users never wait.
We don't send your data to third-party LLM services.
Get running in minutes.

SDKs for your favorite languages and frameworks.


Perpetual Memory

Automagically populate prompts with a summary of relevant past conversations, no matter how distant.

Zep summarizes, embeds, and executes retrieval pipelines over your Assistant's chat history.

Easily Drop into LangChain

Zep's ChatHistory class drops into LangChain and is compatible with the LangChain Expression Language.

session_id = "<unique identifier for your user's session>"

classes = [
	"sales interest", 
	"needs technical support", 
	"payment question"

# Classify the current chat dialog
start_time = time.time()
result = await client.memory.aclassify(session_id, classes)
end_time = time.time()

elapsed_ms = (end_time - start_time) * 1000

print(f"Elapsed time: {elapsed_ms:.2f} ms")

> sales interest
> Elapsed time: 204 ms
Available in Limited Beta

Dialog Classifier

Instantly and accurately classify chat dialog. Understand user intent and emotion. Route chains based on semantic context, and trigger events.

Understand Intent
Classify Emotion
Semantic Routers
Trigger Events
Coming Soon! Contact Us to Learn More!

Extract Structured Data from dialog

Quickly extract business data from chat conversations. Understand what your Assistant should ask for next in order to complete its task.

Run Biz Processes
Build User Profiles
Populate API Calls
Fill "Forms"
class LeaveRequest(BaseModel):
    leave_type: Optional[Literal["vacation", "parental", "sick"]] = None
    start_date: Optional[FutureDate] = None
    end_date: Optional[FutureDate] = None

start_time = time.time()
result = await client.memory.extract(session_id, LeaveRequest, last_n=5)
end_time = time.time()

elapsed_ms = (end_time - start_time) * 1000

print(f"Elapsed time: {elapsed_ms:.2f} ms")

# The Assistant still needs to request start and end dates
> LeaveRequest(leave_type="parental", start_date=None, end_date=None)

> Elapsed time: 471 ms
# search for documents using both text and metadata
query = "Is it easy to find vegan food in Iceland?"
  metadata_query = {
  "where": {"jsonpath": '$[*] ? (@.baz == "qux")'},

# use Maximal Marginal Relevance for search re-ranking
result = await collection.asearch(

Data Collections

Add business data and documents relevant to the current conversation to your prompts. No vector database needed.

Blazing fast Search Reranking ensures you're providing your Assistant relevant, not redundant data.

Manage Users & their Chat Sessions

Users and their Chat Sessions are first-class citizens in Zep, allowing you to easily manage user interactions with your Assistant.

Associate your own metadata with Users or Sessions to power stateful experiences across chat sessions.

Manage Privacy

Comply with corporate and regulatory mandates for records retention while ensuring compliance with privacy regulations such as CCPA and GDPR.

Archive Messages

Meet corporate and regularity records retention mandates.

Right To Be Forgotten

Fulfill requests with a single API call or via the Zep Web App.

Backed By