Skip to navigation

Some features listed below may be pending rollout and not immediately available yet.

Agent Skills general availability

Zep Agent Skills is now generally available.

Read the docs
agent-skillsmcpsecuritybug-fix

Context MCP Server group restrictions with an Okta org authorization server

The allowed groups setting of a Custom OIDC connection to the Context MCP Server now works with an Okta org authorization server. Before, the ID token from that server did not have the groups claim, so the group check could not admit users. Zep now requests the groups scope when your identity provider supports it.

Read the docs
agent-skillsmcpsecuritybug-fix

v4 SDKs 4.1.0

Version 4.1.0 of the v4 SDKs adds the user.get_by_email method and the filters.document_id filter of the graph.episode.list method. You can also list the metadata keys of a graph with the new graph.list_metadata_keys method. A key stays in the list after no episode or message uses the key.

Read the docs
sdkgraphbug-fixdocs

Content policy status of an episode without an evaluation

The content_policy.status field of a v4 episode can now have the value not_evaluated. The value shows that Zep processed the episode without a content policy evaluation, for example because the account has no content policy entitlement. Before, such an episode reported pending.

sdkgraphbug-fixdocs

Content policy repair fixes

A later episode without prohibited content no longer gets a content policy flag because of an earlier dropped or repaired user summary. Before, the next summary update could copy the prohibited text back into the user summary. Zep also drops a repair that returns the original text unchanged.

Read the docs
sdkgraphbug-fixdocs

Mem0 migration guide update

The Mem0 migration guide was updated for v4 ingestion and v4 identifiers.

Read the docs
sdkgraphbug-fixdocs

User retrieval by email in the v4 API

You can now get a user by email with the v4 user.get_by_email method. The match ignores case and leading and trailing whitespace. The method returns HTTP 400 when more than one active user has the email, and when BYOK is active for the account.

Read the docs
sdkgraphbreaking-change

Document filter for the v4 episode list

You can now list the episodes of a document with filters.document_id on the v4 graph.episode.list method. The graph.episode.list_for_document method is removed from the v4 SDKs. The API continues to serve that operation for the 4.0.0 and 4.0.1 SDKs.

Read the docs
sdkgraphbreaking-change

SCIM provisioning (beta)

You can now provision account Members and Groups in Zep from an identity provider (IdP) with SCIM. You can map each IdP Group to a Zep role. SCIM provisioning is in beta and requires the Enterprise plan. Zep turns on SCIM for each Enterprise account on request.

Read the docs
dashboardsecuritygraphsdkbreaking-change

Reserved connector metadata key

The connector key is now reserved in episode metadata and message metadata. A request that adds or updates episode metadata or message metadata with the connector key returns HTTP 400, also when the value is null. User metadata and batch-level metadata can still use the key.

Read the docs
dashboardsecuritygraphsdkbreaking-change

Content policies require the Enterprise plan

Content policies now require the Enterprise plan. Zep also turns on content policies for each Enterprise account on request. An account without these two conditions cannot write a content policy with rules or create a protected graph. The API returns HTTP 403 with content_policy_not_entitled. Zep ingests new episodes of an existing protected graph on such an account without evaluation.

graphsdksecuritybug-fixdocs

Fact timestamps documentation

Documentation about how the episode reference time sets fact timestamps was added to the Facts page.

Read the docs
graphsdksecuritybug-fixdocs

Custom edge attributes without a copy of the fact

Zep now sets a custom edge attribute to null when the fact does not state the data that the attribute describes. Before, extraction could copy the fact text into the attribute.

Read the docs
graphsdksecuritybug-fixdocs

User node of a graph clone for a target user

The v3 graph.clone method can clone a user graph for a target user with target_user_id. The user node of the clone now has the name embedding of the target user. Before, the user node kept the name embedding of the source user. A node search for the name of the target user could then miss the user node.

graphsdksecuritybug-fixdocs

User node update from the v4 API

When you change the first_name, last_name, or email of a user with the v4 user.update method, Zep now updates the user node in the user graph. Before, the user node kept the old name and attributes.

Read the docs
graphsdkbug-fixdocs

Source episodes of nodes and edges

Node and edge responses now list only the source episodes of the node or the edge. Before, the episode lists could contain internal episodes that Zep creates when you add a node, a fact triple, or a hyperedge directly. For an edge, the change applies to episode_uuids in v4 and to episodes in v3.

Read the docs
graphsdkbug-fixdocs

Ontology design best practices

Ontology design best practices were added to the Customizing graph structure page.

Read the docs
graphsdkbug-fixdocs

Webhooks for plans that include webhooks

Zep now sends episode and batch webhooks only for an account whose plan includes webhooks. An account without webhooks on its plan can still disable webhooks and open the webhook portal.

Read the docs
graphsdkdashboardbug-fix

Invalidation of a fact that a later fact ends

When a new fact states that an earlier fact ended, Zep now invalidates the earlier fact. The invalid_at value of the earlier fact is the end date of the new fact. When the new fact has no date, Zep uses the reference time of its episode. Before, the earlier fact stayed valid unless the new fact had a later start date.

Read the docs
graphsdkdashboardbug-fix

Node search from BFS origin nodes

Node search with bfs_origin_node_uuids now returns the entity nodes that the search reaches through observation nodes. Before, observation nodes counted against the node limit of the traversal. The search could then return few or no entity nodes.

Read the docs
graphsdkdashboardbug-fix