## How does it work? (at a glance)

- You send Supermemory text, files, and chats.
- Supermemory [intelligently indexes them](/content/docs/concepts/how-it-works/index.html) and builds a semantic understanding graph on top of an entity (e.g., a user, a document, a project, an organization).
- At query time, we fetch only the most relevant context and pass it to your models.

## Supermemory is context engineering.

### Ingestion and Extraction

Supermemory handles all the extraction, for [any data type that you have](/content/docs/concepts/content-types/index.html).

- Text
- Conversations
- Files (PDF, Images, Docs)
- Even videos!

And then, we offer three ways to add context to your LLMs:

### Memory API — Learned user context

Supermemory learns and builds the memory for the user. These are extracted facts about the user that:

- [Evolve on top of existing context about the user](/content/docs/concepts/graph-memory/index.html), **in real time**
- Handle **knowledge updates, temporal changes, forgetfulness**
- Creates a **user profile** as the default context provider for the LLM.

_This can then be provided to the LLM, to give more contextual, personalized responses._

### User profiles

Having the latest, evolving context about the user allows us to also create a [**User Profile**](/content/docs/concepts/user-profiles/index.html). This is a combination of static and dynamic facts about the user that the agent should **always know**. Developers can configure supermemory with what static and dynamic contents are, depending on their use case.

- Static: Information that the agent should **always** know.
- Dynamic: **Episodic** information, about last few conversations, etc.

This leads to a much better retrieval system, and extremely personalized responses.

### RAG - Advanced semantic search

Along with the user context, developers can also choose to do a search on the raw context. We provide full RAG-as-a-service, along with:

- Full advanced metadata filtering
- Contextual chunking
- Works well with the memory engine

See the full API Reference tab for detailed endpoint documentation.

All three approaches share the **same context pool** when using the same user ID (`containerTag`). You can mix and match based on your needs.

## Next steps

[**Quickstart** \ Make your first API call in minutes](/content/docs/quickstart/index.html)

[**How it Works** \ Understand the knowledge graph architecture](/content/docs/concepts/how-it-works/index.html)
