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

# 使用 mem0 存储

`mem0` 后端使用 [Mem0](https://mem0.ai/) 记忆库作为长期记忆存储。它是托管服务，由 Mem0 负责记忆的抽取、存储与检索，无需自建向量库或本地 embedding，**生产推荐**。

## 何时使用

* 生产环境，需要托管的记忆服务；
* 希望由 Mem0 自动完成记忆的抽取与管理；
* 已有 Mem0 账号与 API Key，或可通过火山引擎凭证自动换取。

## 依赖

```bash lines theme={null}
pip install mem0
```

## 使用示例

```python lines theme={null}
from veadk import Agent
from veadk.memory.long_term_memory import LongTermMemory

ltm = LongTermMemory(backend="mem0", app_name="ltm_demo")

agent = Agent(
    name="demo",
    instruction="回答用户问题，必要时用 `load_memory` 工具检索过往对话。",
    long_term_memory=ltm,
)
```

也可以通过 `backend_config` 显式传入配置：

```python lines theme={null}
from veadk.memory.long_term_memory import LongTermMemory
from veadk.configs.database_configs import Mem0Config

ltm = LongTermMemory(
    backend="mem0",
    index="ltm_demo",
    backend_config={
        "index": "ltm_demo",
        "mem0_config": Mem0Config(
            api_key="your-mem0-api-key",
            base_url="https://api.mem0.ai/v1",
        ),
    },
)
```

## 参数

### 构造参数

`backend_config` 支持以下配置项：

| 参数 | 类型 | 默认值 | 说明 |
| :- | :- | :- | :- |
| `index` | `str` | 无默认，由 `LongTermMemory` 传入 | 记忆索引名。Mem0 后端对命名无限制。 |
| `mem0_config` | `Mem0Config` | 自动从 `DATABASE_MEM0_*` 环境变量读取 | Mem0 客户端配置。 |

### Mem0 配置

`mem0_config` 为 `Mem0Config`，环境变量前缀 `DATABASE_MEM0_`：

| 配置项 | 环境变量 | 类型 | 默认值 | 说明 |
| :- | :- | :- | :- | :- |
| `api_key` | `DATABASE_MEM0_API_KEY` | `str` | `""` | Mem0 API Key。 |
| `api_key_id` | `DATABASE_MEM0_API_KEY_ID` | `str` | `""` | 用于自动换取 API Key，与 `project_id` 二者提供其一即可。 |
| `project_id` | `DATABASE_MEM0_PROJECT_ID` | `str` | `""` | 用于自动换取 API Key。 |
| `base_url` | `DATABASE_MEM0_BASE_URL` | `str` | `""` | Mem0 服务端点，例如 `https://api.mem0.ai/v1`。 |

### API Key 获取顺序

若直接提供了 `api_key`，则直接使用；否则会尝试用 `api_key_id` 或 `project_id` 自动换取 API Key；两者都缺失时会报错。

## 环境变量配置

```bash lines theme={null}
# 方式一：直接提供 API Key
export DATABASE_MEM0_API_KEY="your-mem0-api-key"
export DATABASE_MEM0_BASE_URL="https://api.mem0.ai/v1"

# 方式二：通过 api_key_id 或 project_id 自动换取
export DATABASE_MEM0_API_KEY_ID="your-api-key-id"
export DATABASE_MEM0_PROJECT_ID="your-project-id"
```

<Note>
  若未直接提供 `api_key`，VeADK 会尝试用 `api_key_id` 或 `project_id` 自动换取 API Key；两者都没有则报错。
</Note>
