Trusted by:

Framework and Platform Agnostic

Develop agents in Python, TypeScript, or Go - with any framework or none at all.

Python

TypeScript

Go

LangChain

AutoGen

Ready for Production and Scale

Instant Memory Retrieval

Get relevant results from memory in milliseconds. Scale to millions of users with ease.

Granular Memory Controls

Tailor memory extraction and relevance with custom rating frameworks and controls.

Secure and Privacy Compliant

Be assured with SOC 2 Type II compliance. Zep also offers privacy controls to support CCPA and GDPR compliance.

Add Agent Memory in Minutes

With minimal code changes, enable your agent with rich, relevant context from chat and business data.

 
# Add a chat message to the graph
await zep_client.memory.add(session_id, messages=[
	Message(role="Jane", role_type="user", content="I can't log in!")
])
# Add business data to the graph
await zep_client.graph.add(user_id=user_id, type="json", data={"account_status": "suspended"})

# get memory relevant to the current conversation
memory = zep_client.memory.get(session_id="session_id")
print(memory.context)

"""FACTS and ENTITIES represent relevant context to the current conversation.
# These are the most relevant facts and their valid date ranges
# format: FACT (Date range: from - to)
<FACTS>
  - Emily is experiencing issues with logging in. (2024-11-14 02:13:19+00:00 - present) 
  - Emily's account has a suspended status due to payment failure. (2024-11-14 02:03:58+00:00 - present) 
...
</FACTS>"""
 
 
// Add a chat message to the graph
await zepClient.memory.add("session_id", [
    { role: "Jane", roleType: "user", content: "I can't log in!" }
]);

// Add business data to the graph
await zepClient.graph.add(userId, "json", { account_status: "suspended" });

// Get memory relevant to the current conversation
const memory = await zepClient.memory.get("session_id");
console.log(memory.context);

```
FACTS and ENTITIES represent relevant context to the current conversation.
# These are the most relevant facts and their valid date ranges
# format: FACT (Date range: from - to)
<FACTS>
  - Emily is experiencing issues with logging in. (2024-11-14 02:13:19+00:00 - present) 
  - Emily's account has a suspended status due to payment failure. (2024-11-14 02:03:58+00:00 - present) 
...
</FACTS>
```
 
 
client.Memory.Add(context.TODO(), "sessionId", &v2.AddMemoryRequest{
	Messages: []*v2.Message{{Content: "I can't log in!", RoleType: v2.RoleTypeUser}},
})

client.Graph.Add(context.TODO(), &v2.AddDataRequest{
	UserId: userID, Type: "json", Data: map[string]interface{}{"account_status": "suspended"},
})

memory, _ := zepClient.Memory.Get(context.TODO(), "session_id")
fmt.Println(memory.Context)

```
FACTS and ENTITIES represent relevant context to the current conversation.
# These are the most relevant facts and their valid date ranges
# format: FACT (Date range: from - to)
<FACTS>
  - Emily is experiencing issues with logging in. (2024-11-14 02:13:19+00:00 - present) 
  - Emily's account has a suspended status due to payment failure. (2024-11-14 02:03:58+00:00 - present) 
...
</FACTS>
```
 

Backed by Leading Investors

And angels at industry-leading companies including Vercel, Google, and Airtable.

Y Combinator

Engineering Capital

Step Function

Build Consistent and Correct LLM Apps

Build your agent in Python, TypeScript, or Go using your favorite framework, or none at all.

Speed

Up to 80% faster than DIY with major LLM providers

Zep won't slow down your user experience. Long-term memory recall, dialog classification, data extraction and more run in a fraction of the time of similar functionality implemented using leading LLM vendors.

Get Started