介紹記憶儲存服務的系統架構、資料模型、Scope 多租戶、適用性評估和效能評測,協助技術決策者判斷產品是否匹配業務情境。
系統架構
記憶儲存服務採用全託管 Serverless 架構,使用者通過 API 與服務互動,底層資源由平台自動管理。資料流轉過程如下:
調用
AddMemories介面,傳入對話訊息(messages)或純文字(text)。系統將原始訊息儲存為短期記憶。
系統從訊息中提取可檢索的長期記憶單元,並持久化儲存到Table Store。
調用
SearchMemories介面時,服務結合語義檢索和文本檢索能力,並支援 Rerank 排序,返回相關長期記憶。
資料模型
記憶庫的資料按以下實體組織。
實體 | 說明 |
MemoryStore | 記憶庫,管理記憶資料的頂層容器 |
Memory | 長期記憶,從對話或文本中提取的可檢索資訊 |
Message | 短期記憶,寫入的原始會話訊息記錄 |
MemoryStore
MemoryStore 是記憶庫,管理記憶資料的頂層容器。先建立記憶庫,再向記憶庫寫入訊息、檢索記憶或查詢審計記錄。
常見用法:
按應用建立獨立記憶庫。
按環境建立獨立記憶庫,例如開發、測試、生產。
按業務線建立獨立記憶庫。
記憶庫名稱只能包含字母、數字和底線,最長 32 個字元。
Memory
Memory 是長期記憶。服務在寫入對話訊息或文本後,會提取可長期儲存和檢索的資訊,並產生記憶單元。
一條長期記憶通常包含:
記憶 ID。
記憶文本。
Scope。
中繼資料。
建立時間。
版本和替換關係等管理資訊。
長期記憶可通過 SearchMemories 檢索,也可通過 ListMemories、GetMemory、UpdateMemory 和 DeleteMemory 管理。
Message
Message 是短期記憶,即寫入記憶庫的原始會話訊息記錄。AddMemories 寫入時傳入的 messages 會被儲存為原始訊息,可通過 ListMemoryStoreMessages 查詢。
短期記憶介面要求填寫完整 Scope,即 appId、tenantId、agentId 和 runId 均需提供,且不允許使用萬用字元。
記憶寫入
記憶服務支援以下兩種方式寫入記憶:
對話訊息寫入:通過
AddMemories介面傳入messages數組。服務儲存原始訊息為短期記憶,並從中提取長期記憶單元。文本寫入:通過
AddMemories介面傳入text欄位,直接提交純文字內容。服務從文本中提取可檢索的長期記憶。
寫入時需指定 Scope 資訊,其中 appId 必填,tenantId、agentId、runId 為空白時自動補為 __default__。寫入不允許使用萬用字元 *。
記憶檢索
SearchMemories 支援使用自然語言檢索長期記憶。服務結合語義檢索和文本檢索能力,並支援 Rerank 排序,預設啟用 Rerank。
檢索時 appId 和 tenantId 為必要欄位,agentId 和 runId 可使用萬用字元 * 擴大檢索範圍。
中繼資料
長期記憶支援附加中繼資料(metadata)。中繼資料可用於儲存業務自訂資訊,例如記憶來源、標籤和優先順序等。中繼資料隨記憶單元一起儲存,檢索結果中會返回對應的中繼資料欄位。
請求審計
服務記錄記憶程式庫要求,可通過 ListMemoryStoreRequests 查詢請求日誌。審計記錄包含操作類型、響應狀態、延遲和失敗原因等欄位,適用於排查寫入、檢索和管理操作中的問題。
Scope 多租戶
Scope 用於表示記憶資料的歸屬和隔離邊界。記憶服務使用 appId / tenantId / agentId / runId 四級 Scope。
欄位 | 說明 |
| 應用標識,通常對應一個業務應用或產品 |
| 租戶或使用者標識 |
| Agent 標識 |
| 會話、運行或任務標識 |
Scope 的層級為:
appId > tenantId > agentId > runId核心規則:
寫入時,
appId必填,其他欄位為空白時補為__default__。寫入不允許使用萬用字元*。檢索長期記憶時,
appId和tenantId必填,agentId和runId可使用*實現跨 Agent 或跨會話檢索。查詢短期記憶時,四個欄位均為必填且不允許萬用字元。
檢索樣本:
agentId=""、runId="":檢索該租戶下所有 Agent、所有會話的記憶。agentId="sales_assistant"、runId="*":檢索該租戶下指定 Agent 的所有會話記憶。
常見檢索範圍樣本
檢索範圍 | Scope 設定 | 適用情境 |
當前會話內 |
| 只希望使用當前會話歷史 |
跨會話 |
| 同一 Agent 在多次會話中複用使用者偏好 |
跨 Agent、跨會話 |
| 多個 Agent 共用使用者記憶 |
Scope 與多記憶庫的選擇
MemoryStore 支援按應用、環境或業務線建立獨立記憶庫。當資料屬於同一應用中的不同使用者或 Agent 時,推薦使用 Scope 在同一記憶庫內隔離,管理成本更低,且支援萬用字元跨 Scope 聯合檢索。當不同業務域需要完全獨立的資料空間時,建議建立多個記憶庫。
適用性評估
推薦使用的情境:
智能客服、銷售助手、企業助手等對話型應用。
需要跨會話記住使用者偏好、配置和歷史選擇的個人助理。
多 Agent 協作情境下的共用記憶管理。
需要保留原始會話記錄並支援審計排查的 Agent 應用。
需要在大規模租戶和大量記憶資料下保持穩定檢索效能的生產系統。
需要評估的情境:
對記憶寫入即時性要求極高的情境(記憶提取是非同步過程,存在處理延遲)。
需要自訂記憶提取策略的情境(當前為系統自動提取)。
不推薦的情境:
純結構化資料查詢(建議使用Table Store寬表模型或關係型資料庫)。
僅需簡單的上下文視窗管理、不需要持久化記憶(可直接使用 LLM 的上下文視窗)。
效能評測結果
從檢索準確率、檢索延時和儲存規模三個維度對錶格儲存記憶服務進行了評測,並與業界主流記憶方案 Mem0 進行了對比。
維度 | Table Store記憶服務 | 行業對比 |
綜合檢索準確率 | 76.34% | 較 Mem0(64.20%)提升約 18.9%(12.14 百分點),處於行業第一梯隊 |
P50 檢索延時 | ~155 ms | 同類方案通常 200-500 ms,降低約 75% |
已驗證儲存規模 | 億層級條記憶,可水平擴充無上限 | 同類方案多為百萬至千萬級 |
Token 節省 | 84%+ | 回答語義品質幾乎無損(BERTScore F1: 0.8378 vs 全量注入 0.8535) |
上述資料用於展示服務能力邊界,實際效果會受到資料規模、查詢方式、網路環境、模型配置和業務資料分布影響。以下是各維度詳細評測。
檢索準確率
評測基準:LoCoMo 資料集
LoCoMo 是當前記憶系統評測領域最具代表性的基準之一。與早期評測集只覆蓋 3-5 輪短對話不同,LoCoMo 平均每條測試資料包含 300 輪對話、跨 35 個會話,貼近真實使用者與 AI 助手長期互動的情境。
LoCoMo 原始定義了五類推理問答(單跳、多跳、時間推理、開放領域、對抗性問題),基於其中四類進行了評測。
評測維度 | 含義 | 日常對話中的典型情境 |
單跳推理 | 從單次會話中直接定位事實 | "我上次說我喜歡喝什麼來著?" |
多跳推理 | 綜合多個會話中的資訊得出答案 | "根據我的飲食偏好和體檢報告,推薦一份午餐" |
時間推理 | 理解時間軸索和先後順序 | "我先說想換工作,後來又說留下了,現在的想法是?" |
開放領域 | 結合使用者歷史資訊與外部常識推理 | "我說過我對花生過敏,沙爹醬能吃嗎?" |
評測結果:
記憶庫方案 | 單跳推理 | 多跳推理 | 時間推理 | 開放領域 | 綜合準確率 |
記憶儲存服務 | 64.42% | 81.93% | 77.67% | 57.99% | 76.34% |
Mem0 | 68.97% | 61.70% | 58.26% | 50.00% | 64.20% |
在單跳推理(直接檢索單條事實)上 Mem0 略優 6.6%,但在更貼近真實複雜度的多跳推理和時間推理情境中,Table Store分別提升超過 30%——當使用者的問題需要 AI 把多次對話串聯起來、理解時間先後做出判斷時,Table Store記憶服務的檢索品質明顯更高。
檢索延時
測試條件為單記憶庫 120 萬租戶、1 億+ 條記憶資料的超大規模情境,且不開啟Rerank的情境。
TopK | 平均延時 | P50 延時 | P95 延時 |
5 | 164 ms | 155 ms | 269 ms |
10 | 198 ms | 174 ms | 288 ms |
50 | 234 ms | 222 ms | 384 ms |
億級資料量下 P50 延時穩定在 200 ms 左右,即使返回 Top50 結果,P95 也在 384 ms 以內。換個直觀說法:即使一個百萬日活 App 的所有使用者記憶匯總到一個庫裡,每次對話中的記憶檢索依然能在 200 毫秒內完成,使用者幾乎感知不到等待。如果開啟Rerank,檢索延時會增長200-300毫秒。
儲存規模
單記憶庫已驗證支援 120 萬租戶、1 億+ 條記憶的儲存與檢索。基於Table Store的分布式架構,系統支援水平擴充,無理論上限——無需按租戶數量做分庫分表的容量規劃,業務增長時儲存層自動跟上。
Token 成本
維度 | Plan A(全量注入) | Plan B(Memory Storage) |
總 Token 消耗 | 18,768,794 | 2,873,531 |
相比 Plan A 節省 | -- | 84.7% |
BERTScore F1(語義品質) | 0.8535 | 0.8378 |
Memory Storage 記憶儲存方案實現了 84%+ 的 Token 節省,且回答語義品質幾乎無損。