

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 最佳實務
<a name="agentic-memory-best-practices"></a>

## 記憶體生命週期管理
<a name="agentic-memory-bp-lifecycle"></a>
+ 針對**短期記憶體使用 TTL** – 在記憶體項目上設定適當的 TTL 值，以自動使暫時性資訊過期。針對工作階段內容，請使用 30 分鐘到 24 小時TTLs。對於長期使用者偏好設定，請使用較長TTLs 或無限期保留。
+ **實作記憶體衰減** – Mem0 提供內建的衰減機制，可隨著時間移除不相關的資訊。當代理程式累積更多互動時，設定這些項目以防止記憶體膨脹。
+ **重複刪除記憶體** – 儲存新記憶體之前，請先使用向量相似性搜尋檢查類似的記憶體是否已存在。更新現有的記憶體，而不是建立重複項目。

## 向量索引組態
<a name="agentic-memory-bp-index"></a>
+ **選擇正確的索引類型** – `FLAT`用於更小型的記憶體存放區 （低於 100，000 個項目），其中可進行精確搜尋。`HNSW` 用於近似最接近的鄰搜尋提供更大規模效能的大型商店。
+ **選取適當的維度** – 將內嵌維度與您的模型相符。Amazon Titan Text Embeddings V2 會產生 1024 維向量。OpenAI 的 text-embedding-3-small 會產生 1536 維向量。
+ **使用 COSINE 距離指標** – 對於來自 Amazon Titan 和 OpenAI 等模型的文字內嵌，COSINE 距離通常是測量語意相似性最適當的指標。

## 多使用者隔離
<a name="agentic-memory-bp-isolation"></a>
+ **依使用者 ID 範圍記憶體** – 儲存和搜尋記憶體時一律包含 `user_id` 參數，以防止使用者之間洩漏資訊。
+ **使用 TAG 篩選條件進行有效的隔離** – 查詢向量索引時，請先使用 TAG 篩選條件 （例如 `@user_id:{user_123}`) 依使用者預先篩選結果，再執行 KNN 搜尋。這會執行為單一原子操作，同時提供隔離和效能。

  ```
  # Example: TAG-filtered vector search for user isolation
  results = client.execute_command(
      "FT.SEARCH", "agent_memory",
      f"@user_id:{{{user_id}}}=>[KNN 5 @embedding $query_vec]",
      "PARAMS", "2", "query_vec", query_vec,
      "DIALECT", "2",
  )
  ```

## 大規模的記憶體管理
<a name="agentic-memory-bp-scale"></a>
+ **設定最大記憶體政策** – 在 ElastiCache 叢集`maxmemory-policy allkeys-lru`上設定 ，以在叢集達到其記憶體限制時自動移出least-recently-used記憶體項目。
+ **監控記憶體用量** – 使用 Amazon CloudWatch 指標來追蹤記憶體使用率、快取命中率和向量搜尋延遲。設定高記憶體用量的警示，以主動管理容量。
+ **規劃容量** – 每個記憶體項目通常需要大約 4-6 KB （嵌入維度 × 4 個位元組 \+ 中繼資料）。1 GB ElastiCache 執行個體可以儲存約 170，000–250，000 個記憶體項目，具體取決於內嵌大小和中繼資料。