> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# Index memory

> Facts indexed as vectors or a graph: the Agent finds them via search or traversal.

export const DocImage = ({src, alt, width, caption}) => <Frame caption={caption}>
    <img src={src} width={width} style={{
  padding: "8px 0"
}} alt={alt} />
  </Frame>;

**Index memory** stores facts the Agent finds by searching. Use it for anything that fits as a "record" rather than free-text notes. At creation, pick between two forms: **Vector** and **Graph**.

## When to use it

* Facts about entities: customer, product, incident profiles
* "Records" that don't fit Wiki text: ingested transcripts, emails, chat logs
* Multi-hop relationship questions ("who else works at the same company as Alice?") → **Graph form**

## Creating one

**Memory → New space → Index (graph/vector)** creates one immediately. After creation, pick `vector` (default) or `graph` under **Settings → Index form**.

<DocImage src="/images/docs/memory-index-tuning.png" alt="Index space Settings: index form (vector/graph), embedding model, advanced retrieval tuning" />

## The two forms

**Vector (default)** facts are embedded and indexed. Semantic-similarity search.

**Graph** facts are stored as entity-relationship triples: `(subject, relationship, object)`.

```
(customer:alice) --[works_at]--> (org:acme)
(order:42)       --[refunded_on]--> (date:2026-07-15)
(order:42)       --[belongs_to]--> (customer:alice)
```

Entities have IDs plus properties (name, created\_at, custom fields). With the Graph form, the Agent gets a traversal capability automatically and can walk relationships.

## The detail page

The primary tab depends on the form:

* **Vector** → **Facts** tab: the fact list. Search box at the top; each row shows the summary, a content preview, a kind badge (`fact`, `preference`, `profile`, `entity`, `episodic`, `event`), and a recurrence count (`×N`). Sorted by recurrence, descending. Hover a row for an X button on the right: click to **Exclude from search**.
* **Graph** → **Graph** tab: entity/edge view; click and drag to explore.
* **Log** tab: events in chronological order (see below).
* **Settings** tab: covered below.

## What you configure in Settings

**Basics** rename the space.

**Flow binding** bind to a specific Flow, or leave unbound and attach per-Agent.

**Scope** which request parameters partition facts. See [Scoping](/build/memory/scoping).

**Access** (optional) partition key + required-permissions gate.

**Index** Index-only section.

* **Index form** `vector` or `graph`
* **Embedding model** pick from providers with keys registered. Blank uses a low-cost default.

**Advanced: retrieval tuning** how the top-k results are ranked.

* **Weights** how to blend relevance, recency, and importance (default 3/1/1)
* **τ (half-life, days)** recency decay half-life. Default 14 days. For domains where older facts are as good as new ones (glossaries, settled procedure), raise τ to reduce recency bias
* **Supersede on conflict** new facts win over conflicting old ones; old ones become history. Off → both coexist and retrieval returns both
* **KG grounding** after the vector search, also pull in facts connected through the graph. Turning it on reveals three knobs:
  * **Depth** hops from the seed (default 1, max 3)
  * **Decay** per-hop score decay (0–1)
  * **Cap** max neighbours to pull in

**Memory agent (curator)** the agent that manages this space. Same fields as [Wiki memory](/build/memory/wiki#what-you-configure-in-settings) (model, policy prompt, multimodal, background writes).

## Attaching to an Agent

In the flow builder, open the Agent, go to the **Memory** tab, and click **Add memory**. Index spaces get a per-space **Retrieval preset** dropdown: leave on recency, or pick a workspace preset to use vector top-k search.

## How facts get written

* **The memory agent, automatically** at the end of a run, pulls entities, facts, and relationships from the conversation and documents. Graph form writes triples; Vector form writes content records.
* **The Agent explicitly** designed into the Agent's prompt.
* **You directly, or via CLI** [`nora memory`](/cli/memory) for pre-seeding known facts or migrating in.

## Entity merging (Graph only)

The same entity referred to in different ways ("Alice", "[alice@company.com](mailto:alice@company.com)") should collapse into a single node. Nora merges automatically based on exact ID and alias matches.

You can also merge by hand: in the Graph tab, select two or more nodes and click **Merge**.

## Clean-up

* **Exclude from search** in the Facts tab, the X button on the hovered row; in the Graph tab, select the node/edge and hit `Delete`. Both soft-delete: the item is hidden from retrieval.
* **Supersede on conflict** one Settings toggle turns on the auto-update policy.
* **Importance decay** facts not retrieved for a while decay per τ and naturally fall out.

See [Forgetting](/build/memory/forgetting) for the full clean-up story.

## Relationship graph vs causal graph

Index (Graph) is the Agent's own entity-relationship memory. The [**causal graph**](/build/causal-graph/overview) is a separate feature you author for answer verification and cause-effect analysis. Similar names, unrelated features: use both if it fits.
