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

# Multi-Tenancy

> Ryumem supports multiple levels of isolation for secure data management.

Ryumem is designed as a multi-tenant system from the ground up, supporting secure isolation between customers and users.

## Isolation Levels

1. **Customer Level**: Strict isolation. Data from one customer is never accessible to another. Enforced via API keys.
2. **User Level**: Logical separation within a customer. Use `user_id` to scope memories to specific end-users.
3. **Session Level**: Further scoping via `session_id` for specific interaction contexts (conversations, tasks).
4. **Agent Level**: Optional `agent_id` to identify which agent created the memory.

## Usage

```python theme={null}
from ryumem import Ryumem

ryumem = Ryumem(server_url="http://localhost:8000")

# Add episode with multi-tenancy scoping
ryumem.add_episode(
    content="User prefers dark mode and compact layouts.",
    user_id="user_123",             # Required: User-level isolation
    session_id="settings_session",  # Required: Session-level grouping
    agent_id="preferences_agent",   # Optional: Agent identifier
)

# Search within user scope
results = ryumem.search(
    query="What are the user's preferences?",
    user_id="user_123",             # Required: Scopes search to this user
    session_id="settings_session",  # Required: Session context
)
```

## Parameters

| Parameter    | Required | Description                                      |
| ------------ | -------- | ------------------------------------------------ |
| `user_id`    | Yes      | User identifier for data isolation               |
| `session_id` | Yes      | Session identifier for grouping related episodes |
| `agent_id`   | No       | Optional agent identifier                        |
