Concepts

Temporal Memory

Timeline, time-aware nodes, and how to reason about "when"

Temporal memory

HyperMemory provides two layers of temporal awareness: timestamps on graph objects and a dedicated timeline system.

Node and edge timestamps

Every node and edge carries creation and update metadata, stored in SurrealDB with automatic tracking.

Timeline system

HyperMemory includes a timeline backed by PostgreSQL (separate from SurrealDB and Qdrant).

Auto-logging

Meaningful tool calls automatically produce human-readable diary entries in the timeline. Bootstrap tools (hm_get_overview, hm_list_files, etc.) are skipped — only substantive operations are logged.

Explicit writes

Use hm_timeline_write to record decisions, milestones, or events explicitly:

{
  "entry": "Decided to migrate from REST to GraphQL for the public API"
}

Temporal recall

Use hm_timeline to search the timeline with filters:

FilterDescription
queryFull-text search (PostgreSQL tsvector)
periodTime period filter (e.g. “last week”, “this month”)
date_rangeSpecific start/end dates
node_keyFilter entries related to a specific node

The timeline is not loaded automatically — it is only recalled on explicit request via hm_timeline. This keeps normal recall fast and focused on the graph.

Freshness as an agent policy

  • Before trusting a long-lived fact, the agent can check when it was last updated and compare to the current time.
  • For compliance-grade answers, use document nodes and human-approved sources rather than a single description that might drift.

Best practices

Store explicit dates in data when timing matters, e.g. {"valid_from": "2026-04-01", "review_by": "2026-07-01"}. This makes both search and dashboard filtering straightforward.

Use hm_timeline_write for decisions and milestones — these create a clear audit trail separate from the graph.

Next steps