# Concepts

Engram organizes and processes memories for your AI applications. Here's how the core concepts work together.

| Concept                                 | Description                                                                                                                                                                                                      |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Memories](memories.md)                 | Discrete pieces of information stored in Engram, automatically embedded as vectors for semantic search.                                                                                                          |
| [Groups](groups.md)                     | A named configuration bundle. Each group contains topics (what to remember) and a pipeline (how to process). Most projects start with a single group.                                                            |
| [Topics](topics.md)                     | A category of memory within a group. Each topic defines what kind of information to extract, like `UserKnowledge` or `ConversationSummary`.                                                                      |
| [Scopes](scopes.md)                     | Controls memory visibility. Every memory belongs to a project. Topics can additionally require a `user_id` and custom `properties` (e.g. `conversation_id`) for isolation.                                       |
| [Input data types](input-data-types.md) | The three content formats Engram accepts: `string`, `pre-extracted`, and `conversation`.                                                                                                                         |
| [Pipelines](pipelines.md)               | The processing flow that turns raw input into stored memories. Steps include extracting facts, transforming with context, and committing to storage. _Configurable pipelines are available on enterprise plans._ |
| [Search](search.md)                     | Search retrieval strategies for finding memories: vector, BM25, and hybrid.                                                                                                                                      |

## How concepts relate

Below is an overview of Engram's key concepts and how they relate to each other:

![Weaviate Engram Concepts](/assets/docs/engram/_includes/concepts.png)

- You send [**input data**](input-data-types.md) (text, a conversation, or pre-extracted facts) along with [**scope**](scopes.md) parameters (`user_id` and any `properties` the target topic requires) that control how the memories are isolated.
- The input is routed to a [**group**](groups.md), which bundles [**topics**](topics.md) with a [**pipeline**](pipelines.md) — one group per use case.
- **Topics** tell the pipeline what kinds of information to extract (e.g. `UserKnowledge`, `ConversationSummary`) and which **scopes** are required.
- The **pipeline** extracts facts from the input, deduplicates and merges them with existing data, and commits the results to storage.
- The output is a set of [**memories**](memories.md) — vector-embedded, categorized by topic, and isolated by scope so each user's data stays separate.

## Questions and feedback

Have a question or feedback? Here's how to reach us.

::::card-grid
:::card{title="Community Forum" href="https://forum.weaviate.io/c/support" icon="messages-square"}
Ask questions and connect with other developers on our **Community forum**.
:::

:::card{title="Support" href="/guides/support-overview" icon="life-buoy"}
Weaviate Cloud user or customer? Find the right channel on the **Support page**.
:::
::::

## Related pages

- [Agents](./agents-index.md)
- [AI-assisted Weaviate code generation](./ai-assisted-vibe-coding-index.md)
- [APIs](./apis-index.md)
- [Authorization and authentication](./authorization-and-authentication-index.md)
- [Benchmarks](./benchmarks-index.md)
- [Best practices](./best-practices-index.md)
- [Client libraries](./clients-index.md)
- [Client Libraries / SDKs](./client-libraries-index.md)
- [Cloud](./cloud-index.md)
- [Cloud account management](./cloud-account-management-index.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
