Observations
Durable, evidence-backed context that captures meaningful patterns across a graph
Durable, evidence-backed context that captures meaningful patterns across a graph
Available to Flex Plus and Enterprise customers.
An observation is a durable, evidence-backed piece of context that Zep automatically derives from a graph. Each observation captures a meaningful change, decision, commitment, constraint, preference, state transition, recurring pattern, or stable relationship involving one or more entities.
Observations sit alongside facts and entity summaries as a derived construct on the graph, but they answer a different question:
This makes observations especially useful for surfacing context that would otherwise be diluted across many facts: a user’s evolving preferences, a recurring failure mode, a long-running commitment, or the way two entities consistently interact over time.
Observations are detected automatically by analyzing structural patterns in the graph — clusters of facts and entities that together describe the same underlying behavior or relationship. Zep then synthesizes a name and summary for each observation it detects.
Observations are deduplicated and merged: when new evidence fits an existing observation, the existing observation is regenerated with the new evidence merged in. When a newer observation supersedes an older one, the older observation is retired so the graph reflects the current state of what is known.
Observations are read-only — they cannot be created, edited, or deleted directly. They follow the evidence in the graph.
Use the SDK to list observations for a user or graph, fetch a single observation by UUID, or search a graph specifically for observations.
For graph-scoped observations, use get_by_graph_id (Python), getByGraphId (TypeScript), or GetByGraphID (Go) with a graph_id.
List endpoints support UUID-cursor pagination. Pass the UUID of the last item from the previous page as uuid_cursor to fetch the next page.
Observations may be included in the default Context Block when Smart Context Assembly selects them as relevant to the current conversation. To always include them — or to pin a specific count — use a context template. For full control over which observations appear and how they’re formatted, retrieve them directly with the SDK methods above, or build a custom block via advanced context block construction.