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

# Sessions and memory

> Persistent multi-turn conversations and per-user memory.

An agent needs two kinds of state: what was said in this thread, and what the agent knows about this user. Agno gives you both. You do not build a conversation store or a retrieval layer.

```python theme={null}
from agno.agent import Agent
from agno.db.postgres import PostgresDb
from agno.models.openai import OpenAIResponses

db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai")

agent = Agent(
    model=OpenAIResponses(id="gpt-5.5"),
    db=db,
    add_history_to_context=True,
    num_history_runs=5,
    enable_agentic_memory=True,
)

agent.run(
    "My name is Sarah and I prefer email over phone.",
    user_id="sarah@acme.com",
    session_id="thread-42",
)
reply = agent.run(
    "What's the best way to reach me?",
    user_id="sarah@acme.com",
    session_id="thread-42",
).content
# Uses both the thread history and the stored memory about Sarah.
```

## Sessions vs memory

They solve different problems. Use both.

|             | Session history                          | Memory                                                      |
| ----------- | ---------------------------------------- | ----------------------------------------------------------- |
| Stores      | The messages in this conversation thread | Learned facts about the user                                |
| Scope       | One `session_id`                         | One `user_id`, across all their sessions                    |
| Enable with | `add_history_to_context=True`            | `enable_agentic_memory=True` or `update_memory_on_run=True` |
| Answers     | "What did we just discuss?"              | "What do I know about this person?"                         |

## Identifiers

| Identifier   | Distinguishes                         | Maps to in your product                    |
| ------------ | ------------------------------------- | ------------------------------------------ |
| `user_id`    | The person                            | Your auth subject (user ID, email)         |
| `session_id` | A conversation thread for that person | A chat tab, a Slack thread, a support case |

Pass both on every run. Threads are scoped by `session_id`. Memory is scoped by `user_id`.

## Memory: automatic or agentic

| Mode      | Set                          | Use when                            |
| --------- | ---------------------------- | ----------------------------------- |
| Automatic | `update_memory_on_run=True`  | Compute memory after every run.     |
| Agentic   | `enable_agentic_memory=True` | The agent decides using tool calls. |

## Reading memory back

For a profile screen or a debug view, pull a user's memories directly.

```python theme={null}
memories = agent.get_user_memories(user_id="sarah@acme.com")
```

## Long conversations

History grows. Two ways to keep token cost bounded without losing continuity:

| Technique                                           | Effect                                           |
| --------------------------------------------------- | ------------------------------------------------ |
| `num_history_runs=N`                                | Only the last N turns flow into context          |
| Session summaries (`enable_session_summaries=True`) | Older turns are condensed into a running summary |

## Next steps

| Task                              | Guide                                                                  |
| --------------------------------- | ---------------------------------------------------------------------- |
| Put this behind an HTTP API       | [Serve as an API](/use-cases/product-agents/serve-as-an-api)           |
| Carry memory across Slack and web | [Interfaces](/use-cases/product-agents/interfaces)                     |
| Give the agent live data          | [Connecting your data](/use-cases/product-agents/connecting-your-data) |

## Developer Resources

* [Sessions](/sessions/overview)
* [Session management](/sessions/session-management)
* [Memory](/memory/overview)
* [Memory cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/11_memory)
