系统学习 AI 学习路径:从 GPU 运行时到推理、微调与 RAG 评估

agent-memory

Agent 记忆:短期上下文、长期向量记忆与遗忘策略

补充说明

Agent 记忆分两层:短期记忆是当前对话/任务的上下文窗口,长期记忆跨会话保存用户偏好、事实和历史。长期记忆常用向量库、KV 存储或结构化数据库;也有情景记忆(发生过什么)、语义记忆(事实)和程序性记忆(怎么做)的划分。

记忆不是“存得越多越好”。要设计写入策略(什么值得记)、读取策略(何时检索)、遗忘策略(何时删除/过期)和隔离策略(用户/租户不能串)。记忆内容同样可能被注入或包含敏感信息,读写都要做权限和内容校验。

常用示例

# 短期:保留最近 N 轮,超出后摘要
messages = recent_messages[-20:]
summary = llm.summarize(old_messages)
messages = [{"role": "system", "content": f"历史摘要:{summary}"}] + messages
# 长期:带元数据的向量记忆,按用户隔离
memory_record = {
    "user_id": user.id,
    "tenant_id": user.tenant_id,
    "type": "preference",
    "text": "用户偏好简洁回答,使用中文",
    "created_at": now(),
    "ttl_days": 180,
}
vector_store.upsert(record_id=..., vector=embed(text), payload=memory_record)

# 读取时强制过滤 user_id/tenant_id
memories = vector_store.search(query_vector, filter={"user_id": user.id}, top_k=5)
# LangGraph checkpointer:按 thread_id 保存对话状态
from langgraph.checkpoint.memory import MemorySaver
graph = builder.compile(checkpointer=MemorySaver())
config = {"configurable": {"thread_id": f"user:{user.id}:chat:{chat_id}"}}
graph.invoke(inputs, config)
记忆治理:
- 写入:只记长期有用、可验证的信息;敏感信息脱敏
- 读取:按用户/租户/场景过滤,控制条数和相关性
- 遗忘:TTL、用户删除、纠错覆盖
- 审计:谁写入、何时读取、被哪个回答使用

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. 短期记忆和长期记忆分别解决什么问题?
  2. 长期记忆为什么必须按用户/租户隔离?
  3. 什么是记忆注入?怎样降低风险?
答案
  1. 短期记忆维护当前对话/任务上下文;长期记忆跨会话保存偏好、事实和历史,支持个性化与连续性。
  2. 否则一个用户的记忆可能被另一个用户检索到,造成隐私泄露;读写都要强制过滤。
  3. 外部内容被写入长期记忆,之后反复影响模型;写入前做来源校验、内容安全检查和权限控制。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令