# Mem0 记忆过期：按日期隐藏临时偏好，清空到期日后恢复检索

已运行真实Mem0日期规范化/到期predicate：过去过期、未来有效、None清除及非法日期拒绝；未执行真实update/search/get或模型。

## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 使用日期字段而非时间戳TTL

expiration_date格式为YYYY-MM-DD，永久记忆用None。本题不编造expires_at字段；到期比较的日历/时区按当前SDK实现核对。

## 2. 先复算隐藏与存储差别

audit.py以固定作者测试日判断temporary不可搜索，但按ID仍在store里。这个字典只是行为参考，不是Mem0返回记录。

## 3. 核对真实SDK日期处理

运行目标SDK契约脚本查看支持字段和日期校验；2026-02-30应拒绝。当前文档虽在/platform路径，也明确提供OSS示例，不能只看URL判断能力。

## 4. 在测试库写入两条记忆

用支持该字段的版本写永久与临时偏好。记录生成的真实记忆ID，避免拿示例字符串假装真实保存成功。

## 5. 将到期日改到过去再查

使用过去日期测试，不需要长时间等待；分别调用search/get_all与get(id)。过期隐藏不应被写成物理删除。

## 6. 明确传None恢复到期设置

调用update时显式传expiration_date=None，检查SDK没有把None误当参数未提供。再搜索同一问题确认记忆重新参与。

## 7. 交付字段与回读对照

按客户端保存字段位置、日期、search结果和get(id)回执。本文只执行作者日期参考，真实Mem0存取、embedding和LLM均未运行。

## 官方依据

- Mem0 官方文档或源码：https://docs.mem0.ai/platform/features/memory-expiration
