memory-systems:Agent 持久記憶與檢索架構設計指南

前言

很多 Agent 把「記憶」等同於當前會話裏的上下文:對話一結束,用戶偏好、實體關係、歷史事實全部丟失。下一輪只能從零追問,或靠人工重複交代。向量 RAG、知識圖譜、時序知識圖譜等方案越來越多,但選型往往變成「先上 Mem0 / Zep / Cognee」,而不是先對齊檢索形態與持久化層級。

下面介紹 memory-systems 這一 Agent Skill。它來自 Agent Skills for Context Engineering 集合,用結構化指南覆蓋跨會話語義記憶、實體追蹤、圖/向量檢索與記憶整合,並說明與同集合裏 filesystem-context、context-compression 等技能的邊界,避免把文件草稿、會話壓縮和 token 優化誤當成「長期記憶」設計。

這是什麼

memory-systems 是一份面向生產 Agent 的 Memory System Design 說明(SKILL.md),不是可執行框架本身。維護方爲 Agent Skills for Context Engineering Contributors;官方路徑:

https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/memory-systems

Skill 元數據中的定位是:在 Agent 系統中處理 持久語義記憶——跨會話知識保留、實體追蹤、時間有效性(temporal validity)、圖或向量檢索、記憶整合(consolidation),以及記憶基準(benchmark)選型。文件型 scratchpad 應交給 filesystem-context,可讀交接摘要交給 context-compression,單次軌跡內的 token 策略交給 context-optimization。

核心功能

何時啓用

在以下情況讓 Agent 加載本 Skill:

  • 需要跨會話持久化知識
  • 在 Mem0、Zep/Graphiti、Letta、LangMem、Cognee 等框架間選型
  • 要在多輪對話中保持實體身份一致
  • 要對累積知識做推理,或設計可擴展的生產記憶架構
  • 要用 LoCoMo、LongMemEval、DMR 等基準評估記憶系統
  • 需要自動實體/關係抽取、可自我改進的動態記憶(如 Cognee)

不要用本 Skill 處理:文件草稿與工具輸出卸載(filesystem-context)、會話壓縮與人工可讀交接(context-compression)、掩碼、前綴緩存與檢索範圍(context-optimization)、基於 RDF 的 BDI 心智狀態(bdi-mental-states)。

核心觀念:從上下文到持久層的譜系

記憶是從易失的 context window 到持久存儲的一條譜系。默認選 能滿足檢索需求的最淺層;資料指出,對部分記憶負載,工具複雜度不如可靠檢索重要(claim-memory-locomo-filesystem-baseline)。僅在檢索質量下降,或需要多跳推理、關係遍歷、「時間旅行」查詢時,再增加圖結構或時間有效性。

生產框架對照

按主導檢索模式縮小候選,再用基準數據驗證預期(無單一基準可定論):

Framework Architecture Best For Trade-off
Mem0 Vector store + graph memory, pluggable backends Multi-tenant systems, broad integrations Less specialized for multi-agent
Zep/Graphiti Temporal knowledge graph, bi-temporal model Enterprise requiring relationship modeling + temporal reasoning Advanced features cloud-locked
Letta Self-editing memory with tiered storage (in-context/core/archival) Full agent introspection, stateful services Complexity for simple use cases
Cognee Multi-layer semantic graph via customizable ECL pipeline Evolving agent memory; multi-hop reasoning Heavier ingest-time processing
LangMem Memory tools for LangGraph workflows Teams already on LangGraph Tightly coupled to LangGraph
File-system Plain files with naming conventions Simple agents, prototyping No semantic search, no relationships

選型要點(摘自官方說明):需要雙時態(事件發生時間與寫入時間)時傾向 Zep/Graphiti;要快上線、託管基礎設施時傾向 Mem0;需要 Agent 深度自省與分層存儲時傾向 Letta;需要可定製 ECL 管道與稠密多層語義圖時傾向 Cognee。

記憶層級

選滿足持久化需求的 最淺層,再按需加深:

Layer Persistence Implementation When to Use
Working Context window only Scratchpad in system prompt 始終存在;注意注意力友好位置
Short-term Session-scoped File-system, in-memory cache 中間工具結果、會話狀態
Long-term Cross-session Key-value store → graph DB 用戶偏好、領域知識、實體註冊表
Entity Cross-session Entity registry + properties 跨會話同一實體身份
Temporal KG Cross-session + history Graph with validity intervals 會變的事實、時點查詢、避免上下文衝突

檢索策略

按查詢形態匹配策略;準確度優先且預算允許時採用混合檢索:

Strategy Use When Limitation
Semantic (embedding similarity) 直接事實查詢 多跳推理易退化
Entity-based (graph traversal) 「關於 X 的一切」 需要圖結構
Temporal (validity filter) 事實隨時間變化 需要有效性元數據
Hybrid 綜合準確度 基礎設施最重

記憶整合與實操路徑

定期做 consolidation,避免記憶無限增長導致檢索變差;原則是 Invalidate but do not discard——失效要標記,歷史仍保留以供時序重建。可在記憶條數閾值、檢索質量下降或定時任務時觸發。

架構升級路徑(官方 Practical Guidance):

  1. 原型:文件系統 + 帶時間戳的結構化 JSON,驗證行爲後再上基礎設施。
  2. 擴展:需要語義檢索與多租戶隔離時,遷到 Mem0 或帶元數據的向量庫。
  3. 複雜推理:需要關係遍歷、時間有效性或跨會話綜合時,引入 Zep/Graphiti 或 Cognee。
  4. 完全自控:需要把記憶操作作爲一等 Agent 動作時,考慮 Letta 或 Cognee。

與上下文集成時:即時加載(just-in-time),勿預灌全部記憶;檢索結果放在上下文開頭或結尾等注意力友好位置。檢索失敗時按順序降級:放寬過濾 → 檢查 valid_until → 衝突時優先較新 valid_from → 寫入失敗則排隊重試且不阻塞回復。

安裝與啓用

本 Skill 爲通用 SKILL.md 文本指令,倉庫內無單獨安裝腳本。常見加載方式(與社區索引 awesome-agent-skills 一致,按所用 Agent 擇一):

Claude Code——將 Skill 目錄或集合倉庫加入技能列表:

/skills add https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering

若平臺支持子路徑,可指向 skills/memory-systems 目錄;具體以 Claude Code 文檔爲準。

Vercel skills CLI——搜索、安裝與管理:

npx skills find memory-systems
npx skills add muratcankoylan/Agent-Skills-for-Context-Engineering
npx skills list

Claude.ai / 其他客戶端:可將 raw SKILL.md 地址粘貼到新對話,或由 Agent 在需要時讀取該 URL(社區說明爲「描述任務即可觸發」,無額外配置項)。

Cursor:將 Skill 內容放入項目或用戶級 Skills 配置後,在構建跨會話記憶、選型框架或設計整合策略時,在對話中明確要求遵循 memory-systems 指南。

啓用後無需改代碼;Agent 在匹配「When to Activate」場景時應加載全文,並可在需要實現細節時參考同目錄 references/implementation.md(向量庫、屬性圖、時序查詢與整合邏輯)。

典型用法

官方在 SKILL.md 中給出三類可對照實現的示例(以下爲原文結構,需自備對應 SDK 與環境)。

示例 1:Mem0 寫入與偏好檢索

from mem0 import Memory

m = Memory()
m.add("User prefers dark mode and Python 3.12", user_id="alice")
m.add("User switched to light mode", user_id="alice")

# Retrieves current preference (light mode), not outdated one
results = m.search("What theme does the user prefer?", user_id="alice")

示例 2:帶有效期的時間點查詢

# Track entity with validity periods
graph.create_temporal_relationship(
    source_id=user_node,
    rel_type="LIVES_AT",
    target_id=address_node,
    valid_from=datetime(2024, 1, 15),
    valid_until=datetime(2024, 9, 1),  # moved out
)

# Query: Where did user live on March 1, 2024?
results = graph.query_at_time(
    {"type": "LIVES_AT", "source_label": "User"},
    query_time=datetime(2024, 3, 1)
)

示例 3:Cognee 攝入與圖檢索

import cognee
from cognee.modules.search.types import SearchType

await cognee.add("./docs/")
await cognee.add("any data")
await cognee.cognify()
await cognee.memify()

results = await cognee.search(
    query_text="Any query for your memory",
    query_type=SearchType.GRAPH_COMPLETION,
)

設計會話時,可先讓 Agent 按 Skill 中的 Guidelines checklist 自檢:從文件系統起步、爲可變事實記錄時間有效性、混合檢索、定期整合、檢索失敗有回退、關注隱私與保留策略、用 LoCoMo 或 LongMemEval 做變更前後對比、監控體量與延遲。

適用場景與注意

適合誰

  • 正在設計或重構 Agent 持久化層的後端與平臺工程師
  • 需要在 Mem0 / Graphiti / Cognee 等之間做技術選型的團隊
  • 要解決跨會話實體一致、事實隨時間變化、多跳推理檢索的產品場景

限制與常見坑(摘自官方 Gotchas)

  • 把所有記憶塞進 prompt:成本高且損害注意力;應 JIT 檢索並過濾。
  • 忽略時間有效性:過期事實會污染上下文。
  • 過早過度工程:部分基準上簡單文件記憶仍可能表現不差;應在實測失敗後再加深結構。
  • 無整合策略:記憶無限增長會拖垮檢索。
  • 讀寫使用不同 embedding 模型:向量空間不兼容,需固定模型或在變更時全量重嵌。
  • 圖 schema 過 rigid:領域演化時易碎;傾向通用關係類型與靈活屬性。
  • 相關但語境錯誤的記憶(如 Python 語言 vs 蟒蛇):應在條目中帶會話/領域元數據並在檢索時過濾。

與同集合技能的銜接:filesystem-context 管草稿與日誌;context-compression 管摘要交接;context-optimization 管單次軌跡內的加載與預算;multi-agent-patterns 管多 Agent 共享記憶;evaluation 管記憶質量與基準選擇。

結尾

跨會話記憶往往是 Agent 產品與「單次聊天機器人」的分水嶺之一。memory-systems 不提供替代框架的代碼,而是把層級、檢索形態、框架對照、整合與評測約束寫成可複用的設計清單,並明確與其他 Context Engineering Skill 的分工。落地時建議從最淺層驗證檢索質量,再按官方 escalation 路徑加深;基準數字僅作 dated evidence,產品宣稱前需重新覈對。

官方 Skill 目錄:

https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/memory-systems

完整指令原文(raw):

https://raw.githubusercontent.com/muratcankoylan/Agent-Skills-for-Context-Engineering/main/skills/memory-systems/SKILL.md

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜