February 2026 deprecation wave

Guide to the February 2026 deprecation wave

This page covers four deprecation categories that take effect in February 2026.

V2 SDK deprecation

The V2 SDK is being deprecated in favor of the V3 SDK. This involves several naming and architectural changes to make the API clearer and more consistent.

Key changes

Sessions → Threads

In V2, you worked with sessions to manage conversation history. In V3, these are now called threads.

Groups → Standalone Graphs

V2’s groups have been replaced with graphs in V3. The name “groups” was confusing, as these were actually arbitrary knowledge graphs that could hold any kind of knowledge. Using these to hold knowledge/context for a group of users was just one possible use case.

In V3, there are two types of graphs:

  • User graphs: Automatically created for each user to store their personal knowledge
  • Standalone graphs: Created explicitly via graph.create(), functionally equivalent to V2 group graphs, used as arbitrary knowledge graphs for any purpose

Message role structure changes

The message role structure has been updated:

  • role_type is now called role
  • role is now called name

Removed session features

The following session-related methods have been removed:

  • session.end / sessions.end - No replacement needed, not necessary to end threads in Zep
  • session.classify - Feature removed, no replacement
  • session.extract - Feature removed, use external structured output services
  • session.synthesize_question - Feature removed, no replacement
  • session.search / sessions.search / memory.search - Use the default context block or search the graph directly

Migration table

V2 Method/Variable/TermV3 Method/Variable/Term
memory.get(session_id)thread.get_user_context(thread_id)
memory.get_session(session_id)thread.get(thread_id, limit=..., cursor=..., lastn=...)
memory.add_sessionthread.create
memory.addthread.add_messages
memory.deletethread.delete
memory.list_sessionsthread.list_all
memory.get_session_messagesthread.get
memory.get_session_message(session_id, message_uuid)graph.episode.get(uuid_=message_uuid)
memory.update_message_metadata(session_id, message_uuid, metadata)thread.message.update(message_uuid, metadata={...})
memory.end_sessionsLoop through thread.delete(thread_id) for each thread
memory.add_session_factsthread.add_messages(), graph.add_fact_triple(), or graph.add()
memory.search_sessionsgraph.search() or thread.get_user_context()
group.addgraph.create
group.get_all_groupsgraph.list_all
group.getgraph.get
group.deletegraph.delete
group.updategraph.update
sessionthread
session_idthread_id
groupgraph
group_idgraph_id
role_typerole
rolename
memory.search_memoryUse thread.get_user_context() or graph.search()
memory.update_sessionNo direct equivalent - thread metadata has been removed
user.get_sessionsuser.get_threads
message.get (by UUID)graph.episode.get(uuid_=episode_uuid)
message.updatethread.message.update(message_uuid, metadata={...})
group.get_edgesgraph.edge.get_by_graph_id(graph_id) using standalone graphs
group.get_nodesgraph.node.get_by_graph_id(graph_id) using standalone graphs
group.get_episodesgraph.episode.get_by_graph_id(graph_id) using standalone graphs
graph.episode.get_by_group_id(group_id, ...)graph.episode.get_by_graph_id(graph_id, lastn=...)
user.get_factsUse thread.get_user_context()
session.get_factsUse thread.get_user_context()
group.get_factsUse graph.search()
fact.getgraph.edge.get(uuid_="uuid")
fact.deletegraph.edge.delete(uuid)

Fact rating deprecation

Fact ratings are being deprecated entirely. This includes:

  • The minRating query parameter
  • The fact_rating_instruction field on users, sessions, groups, and graphs
  • The min_fact_rating field in graph search queries
  • Methods for retrieving facts directly by rating

What to use instead

For customizing what facts are extracted

Use custom ontology and/or custom user summary instructions to guide fact extraction. These provide more precise control over what information Zep extracts and stores.

For retrieving relevant facts

Use the default Zep context block via getUserContext / get_user_context, or create custom context templates. These methods return the most relevant facts based on semantic similarity, full text search, and graph-based search methods rather than an arbitrary rating threshold. Custom context templates allow filtering to the most relevant custom entity or edge types for your domain. See Retrieving Context for details.

Migration table

DeprecatedReplacement
minRating query parameterRemove - use context block relevance instead
fact_rating_instruction fieldUse custom ontology or user summary instructions
min_fact_rating in search queriesRemove - rely on default relevance ranking

Mode parameter deprecation

The mode parameter on getUserContext / get_user_context is being deprecated. Previously this parameter could be set to “summary” or “basic” to control how context was returned. The summarization logic has been removed in favor of a fast, structured context format.

What to do

Remove the mode parameter from your getUserContext calls. The context block now returns a structured format with user summary and structured facts. See Retrieving Context for details on the new format.

Migration table

DeprecatedReplacement
thread.get_user_context(thread_id, mode="summary")thread.get_user_context(thread_id)
thread.get_user_context(thread_id, mode="basic")thread.get_user_context(thread_id)

Min score parameter deprecation

The min_score parameter in graph search queries is being deprecated. This parameter was used to filter search results by a minimum relevance score threshold.

What to do

Remove the min_score parameter from your graph.search() calls. Zep returns a re-ranker score with search results that you can use to manually filter results if needed. However, there is no minimum re-ranker score parameter because the interpretation of the re-ranker score can vary dramatically depending on which re-ranker is used. For more information about re-ranker scores, see Searching the Graph - Reranker Score.

You should rely on the default relevance ranking rather than filtering by an arbitrary score threshold.

Migration table

DeprecatedReplacement
min_score parameter in graph.search()Remove - rely on default relevance ranking