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

# User Memory

> Let the agent record each end user's preferences and apply them automatically in future conversations.

<Note>
  User Memory is a **Beta** feature, available for orgs on the skills + persistent-memory architecture.
</Note>

Every entry point in this section so far encodes context **you** write, applied uniformly to everyone. User Memory works in the other direction: as people chat with your agent, it quietly records their presentation and style preferences — preferred chart types, default time ranges, how much detail they want — and applies them automatically in future conversations.

Memory is **per user**. Each of your end users has their own saved memory, so the analyst who always wants a weekly bar chart and the executive who wants a monthly one-line summary each get their preference without either affecting the other.

## The Memory tab

Open your agent and go to the **Memory** tab in the configuration panel. It has two sections.

<Frame>
  <img src="https://mintcdn.com/upsolve/Jbl7moVDPeEAJImg/images/ai-agent-builder/memory-tab.png?fit=max&auto=format&n=Jbl7moVDPeEAJImg&q=85&s=705998305605e21b7840669d7833b85f" alt="Memory tab showing saved memory for a selected end user and the working memory template section" width="3448" height="2158" data-path="images/ai-agent-builder/memory-tab.png" />
</Frame>

### Saved memory

The prominent, read-only section: what the agent has actually recorded for the end user selected in the header picker. It's a distilled set of working-memory notes in markdown, written by the agent itself as it observes that user's stated requests and repeated behavior.

Use it to answer "what does the agent think it knows about this user?" — invaluable when debugging why a returning user gets a different style of answer than a new one. If a user's recorded preferences are wrong or stale, admins can **clear** their memory and let it rebuild from scratch.

### Working Memory Template

The advanced section, collapsed by default: a builder-editable template that defines **how** the agent records each user's preferences — what categories it watches for and how it structures its notes. It's stored alongside your other system prompts (as `working_memory_prompt`) and is scoped to the agent version, so template changes follow the same draft-and-publish flow as your other prompt edits.

The **default template works for most agents** — start with it and only customize once you see the recorded memories miss something your users care about.

<Frame>
  <img src="https://mintcdn.com/upsolve/Jbl7moVDPeEAJImg/images/ai-agent-builder/working-memory-template.png?fit=max&auto=format&n=Jbl7moVDPeEAJImg&q=85&s=7e9a48c01467e28e767d841e68afd680" alt="Working Memory Template editor with the default preference categories" width="3456" height="2156" data-path="images/ai-agent-builder/working-memory-template.png" />
</Frame>

## What the default template records

The default template organizes each user's preferences into five categories:

| Category                                   | What it captures                                                                                    |
| ------------------------------------------ | --------------------------------------------------------------------------------------------------- |
| **Data Filtering**                         | Default time range and granularity; dimensions or segments the user filters by                      |
| **Chart Type**                             | Preferred chart types and when to use them (bar for comparisons, line for trends)                   |
| **Output Format**                          | Delivery format (report only, chart + report, CSV); brief vs detailed answers                       |
| **Data Interpretation**                    | How insights should be framed — plain language vs statistical detail, level of caveats              |
| **Frequently referenced entities/metrics** | What the user usually *means* by vague references — used to disambiguate, never applied as defaults |

Within each category, the template separates **Stated** notes (the user explicitly asked for this) from **Observed pattern** notes (inferred from repeated behavior). The distinction matters: stated preferences are strong signals the agent honors confidently, while observed patterns are weaker and yield to an explicit request in the moment.

<Note>
  The "frequently referenced entities" category exists to resolve ambiguity, not to set defaults — "when they say 'our market' they usually mean the EU region" tells the agent how to read a vague reference, not to silently filter every query to the EU.
</Note>

## Memory vs. Skills

Both features let the agent adapt over time, but at different scopes. [Skills](/ai-agent-builder/skills) are know-how that applies to **every user** of the agent. User Memory is preference data that applies to **one** user. A skill teaches the agent how to do a cohort analysis; memory records that *this* user wants cohort analyses shown as tables.

## Next steps

<CardGroup cols={2}>
  <Card title="Skills" icon="graduation-cap" href="/ai-agent-builder/skills">
    Agent-wide know-how that complements per-user memory.
  </Card>

  <Card title="System Prompts" icon="message" href="/ai-agent-builder/system-prompts">
    The always-on prompts the working memory template lives alongside.
  </Card>

  <Card title="Knowledge Base" icon="book-open" href="/ai-agent-builder/knowledge-base">
    Reference documents the agent searches on demand.
  </Card>

  <Card title="Data Model & Schema" icon="database" href="/ai-agent-builder/data-model-schema">
    The foundation every other context entry point builds on.
  </Card>
</CardGroup>
