# 数据迁移

Agora 将所有数据存储在设备上，并提供完整的导入/导出功能。你拥有你的数据——迁入、迁出、备份。

## 导出

将数据导出为单个 `.agora` 文件——一个包含 Agora 存储的所有内容的便携存档。

### 导出内容

你选择包含什么：

| 类别 | 内容 |
|----------|----------|
| **对话与消息** | 所有聊天历史、消息树、分支 |
| **记忆** | 活跃记忆和所有已保存的记忆文件 |
| **系统提示词** | 所有自定义系统提示词模板 |
| **设置** | 应用配置和偏好 |
| **API 密钥** | 所有已配置的 API 密钥 |

!!! danger "API 密钥警告"
    API 密钥以**明文**导出。拥有 `.agora` 文件的任何人都可以读取你的密钥。仅在你信任目标并安全处理文件时启用 API 密钥导出。

### 如何导出

1. 前往 **设置 → 数据控制**
2. 点按 **导出数据**
3. 选择要包含的类别
4. 点按 **导出**
5. 选择保存 `.agora` 文件的位置

---

## 导入

从之前的 `.agora` 导出恢复数据。

### 导入策略

导入时，你选择 Agora 如何处理设备上已存在的数据：

| 策略 | 行为 |
|----------|----------|
| **合并** | 添加新项目，保留现有项目。如果存在相同 ID 的项目，导入版本覆盖它。 |
| **替换** | 清除选定类别中的所有现有数据，然后导入。全新的开始。 |
| **跳过** | 仅导入没有冲突的项目。现有项目保持不变。 |

!!! tip
    大多数情况下使用**合并**——它安全地添加新数据同时保留设备上已有的内容。

### 如何导入

1. 前往 **设置 → 数据控制**
2. 点按 **导入数据**
3. 选择 `.agora` 文件
4. 查看导入预览——查看文件内容（导出日期、版本、内容计数）
5. 选择导入策略
6. 点按 **导入**

!!! danger "API 密钥警告"
    如果导出文件包含 API 密钥，Agora 在导入前警告你。密钥以明文导入。仅在你信任文件来源时继续。

---

## 第三方导入 {#third-party-import}

从其他 AI 聊天平台导入对话。

### 从 Claude 导入

从 Claude 导出文件导入对话：

1. 从 [Claude](https://claude.ai/) 导出数据（设置 → 导出数据）
2. 在 Agora 中，前往 **设置 → 数据控制 → 第三方 → 从 Claude 导入**
3. 选择导出的 JSON 文件
4. 查看预览——查看对话数和消息数
5. 选择**合并**或**替换**策略
6. 点按 **导入**

!!! note
    Agora 从 Claude 的 JSON 导出格式导入对话。附件会在预览中被检测并显示。附件本身不被导入——仅导入消息文本。

### 从 ChatGPT 导入

从 ChatGPT 导出 `.zip` 文件导入对话：

1. 从 [ChatGPT](https://chatgpt.com/) 导出数据（设置 → 数据控制 → 导出）
2. 在 Agora 中，前往 **设置 → 数据控制 → 第三方 → 从 ChatGPT 导入**
3. 选择 `.zip` 文件
4. 查看预览
5. 选择**合并**或**替换**策略
6. 点按 **导入**

!!! note
    用户和助手消息均被导入。消息角色被保留。

---

## 文件格式

`.agora` 文件是基于 JSON 的存档。如果你有技术背景，可以使用标准工具检查或处理它。该格式设计为向前和向后兼容。

---

## 自动备份

Agora 可以按计划自动备份你的数据。你不需要记得去导出——Agora 会为你处理。

### 工作原理

- 自动备份使用 Android WorkManager 在后台定期运行
- 当备份到期时，Agora 将所有数据（API 密钥除外）导出到配置的目录
- 只有备份失败时才会显示通知——成功的备份是静默的
- 旧备份会根据你的保留设置自动删除

### 配置

1. 前往 **设置 → 数据控制 → 自动备份**
2. 切换**自动备份**开关
3. 设置**备份额率**——选择 1 天、3 天、5 天、1 周或 1 个月
4. 选择**导出内容**——选择要包含的类别（API 密钥不包含在自动备份中）
5. 设置**备份目录**——点按选择文件夹（默认为 `Download/Agora/Backup`）
6. 切换**自动删除旧备份**开关，设置**删除时限**

!!! info "删除时限约束"
    删除时限必须长于备份额率。例如，如果你每周备份，备份可以在 1 个月或 1 年后自动删除——不会更短。这可以防止在新备份创建之前删除你唯一的备份。

!!! note
    自动备份使用 Android 的 WorkManager 确保可靠性，即使应用关闭或设备重启。在 Doze 模式下，备份可能会稍许延迟以节省电量。

---

## 最佳实践

- **定期导出**作为备份——将文件保存在安全的地方
- **启用自动备份**实现免手动计划保护
- **不要在常规导出中包含 API 密钥** ——仅用于完整设备迁移
- **增量导入使用合并** ——替换是破坏性的
- **导入前预览** ——检查导出日期和内容计数以确认是正确的文件
