AI Agent记忆系统工程实践:四层架构、Mem0与跨会话状态持久化全解
上一篇 DeepSeek V4全面换装华为昇腾950PR:从CUDA到CANN的国产算力里程碑
下一篇 GPT-6 Spud倒计时与技术前瞻:AGI前夜的最后冲刺
摘要
大语言模型本质上是无状态的——每次对话都是全新开始,没有记忆。这是构建真正有用的AI Agent最根本的技术障碍。本文系统讲解AI Agent记忆系统的四层架构:工作记忆(上下文窗口)、情景记忆(外部数据库)、语义记忆(知识与用户画像)、程序记忆(系统提示与工具定义)。深度解析Mem0、Letta(原MemGPT)等主流框架的选型对比,给出向量数据库选型建议,并提供从记忆写入、检索注入、遗忘衰减到完整Agent对话流程的生产级代码实现。
核心结论:2026年AI Agent的核心竞争力已不在于模型性能,而在于记忆质量——谁能让Agent在跨越数周的交互中保持连贯的用户理解,谁就能构建真正意义上的"数字伙伴"。记忆系统是AI Agent从"工具"到"伙伴"的临界技术。
什么是AI Agent记忆系统?
权威定义:AI Agent记忆系统是一套专门为无状态大语言模型提供跨会话信息持久化能力的工程基础设施,涵盖信息的存储(写入)、检索(读取)、注入(上下文融合)和遗忘(衰减删除)四个核心环节,使Agent能在不同时间的对话中保持对用户、任务和环境的持续理解。
如果没有记忆系统,用户每次对话都需要重新介绍自己;Agent无法追踪跨天任务的进度;个性化的AI助理根本无法实现。
一、为什么LLM天生无记忆?
# LLM的无状态本质:每次API调用都是独立的
import openai
# 第一轮对话
resp1 = openai.chat.completions.create(
model="gpt-6",
messages=[
{"role": "user", "content": "我叫张三,我在做一个医疗AI项目"}
]
)
# AI回答:"你好,张三!很高兴认识你,请介绍一下你的医疗AI项目..."
# 第二轮对话(新API调用,没有历史记录)
resp2 = openai.chat.completions.create(
model="gpt-6",
messages=[
{"role": "user", "content": "我之前提到的项目有什么风险?"}
]
)
# AI回答:"抱歉,我不知道你之前提到的是什么项目..."
# 问题:模型不记得"张三"和"医疗AI项目"!
这个问题有三种基础解法,各有局限:
| 方案 | 做法 | 局限 |
|---|---|---|
| 简单历史拼接 | 每次把全部对话历史发给API | 超出上下文窗口;长对话成本爆炸 |
| 滑动窗口 | 只保留最近N轮对话 | 丢失早期重要信息 |
| 摘要压缩 | 用LLM对历史摘要 | 摘要可能丢失细节;增加额外调用成本 |
真正的解法是系统化的记忆架构。
二、四层记忆架构详解
这是2026年工业界最成熟的Agent记忆分层模型,灵感来自人类认知科学:
┌─────────────────────────────────────────────────┐
│ Layer 1: 工作记忆(Working Memory) │
│ 对应:上下文窗口(Context Window) │
│ 生命周期:单次会话内 │
├─────────────────────────────────────────────────┤
│ Layer 2: 情景记忆(Episodic Memory) │
│ 对应:向量数据库中的历史对话记录 │
│ 生命周期:跨会话,可检索 │
├─────────────────────────────────────────────────┤
│ Layer 3: 语义记忆(Semantic Memory) │
│ 对应:用户画像/知识库/事实性信息 │
│ 生命周期:长期,稳定更新 │
├─────────────────────────────────────────────────┤
│ Layer 4: 程序记忆(Procedural Memory) │
│ 对应:系统提示词/工具定义/工作流 │
│ 生命周期:最稳定,开发时确定 │
└─────────────────────────────────────────────────┘
2.1 工作记忆(Layer 1):上下文窗口管理
工作记忆是最快的记忆,直接存在模型的上下文窗口中,无需检索:
from dataclasses import dataclass, field
from typing import Optional
from datetime import datetime
@dataclass
class WorkingMemory:
"""工作记忆:当前会话上下文管理"""
max_tokens: int = 100_000 # 预留给工作记忆的Token数
messages: list[dict] = field(default_factory=list)
current_token_count: int = 0
def add_message(self, role: str, content: str):
"""添加消息并自动管理窗口"""
token_estimate = len(content) // 4 # 粗略估算
# 超出上限时触发压缩
while (self.current_token_count + token_estimate > self.max_tokens
and len(self.messages) > 2):
# 移除最早的消息(保留system prompt)
removed = self.messages.pop(1)
self.current_token_count -= len(removed['content']) // 4
self.messages.append({
"role": role,
"content": content,
"timestamp": datetime.now().isoformat()
})
self.current_token_count += token_estimate
def get_context(self) -> list[dict]:
"""获取可以发送给LLM的消息列表"""
return [{"role": m["role"], "content": m["content"]}
for m in self.messages]
def get_token_usage(self) -> dict:
return {
"current": self.current_token_count,
"max": self.max_tokens,
"usage_ratio": self.current_token_count / self.max_tokens
}
2.2 情景记忆(Layer 2):历史对话的向量检索
情景记忆是跨会话记忆系统的核心,通过向量相似度检索相关历史:
from sentence_transformers import SentenceTransformer
import chromadb
from chromadb.config import Settings
class EpisodicMemory:
"""情景记忆:基于向量数据库的历史对话检索"""
def __init__(self, collection_name: str = "episodes"):
# 初始化向量数据库(Chroma本地存储)
self.client = chromadb.PersistentClient(
path="./memory_store",
settings=Settings(anonymized_telemetry=False)
)
self.collection = self.client.get_or_create_collection(
name=collection_name,
metadata={"hnsw:space": "cosine"} # 余弦相似度
)
# 轻量级embedding模型(本地运行,无需API)
self.encoder = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
def save_episode(
self,
user_id: str,
session_id: str,
content: str,
episode_type: str = "conversation"
) -> str:
"""保存一段对话记录到情景记忆"""
episode_id = f"{user_id}_{session_id}_{datetime.now().timestamp()}"
embedding = self.encoder.encode(content).tolist()
self.collection.add(
documents=[content],
embeddings=[embedding],
metadatas=[{
"user_id": user_id,
"session_id": session_id,
"timestamp": datetime.now().isoformat(),
"type": episode_type,
"importance": self._estimate_importance(content)
}],
ids=[episode_id]
)
return episode_id
def search_episodes(
self,
query: str,
user_id: str,
top_k: int = 5,
min_relevance: float = 0.7
) -> list[dict]:
"""检索与当前查询最相关的历史记录"""
query_embedding = self.encoder.encode(query).tolist()
results = self.collection.query(
query_embeddings=[query_embedding],
n_results=top_k,
where={"user_id": user_id}, # 只检索该用户的记忆
)
episodes = []
for i, (doc, dist, meta) in enumerate(zip(
results['documents'][0],
results['distances'][0],
results['metadatas'][0]
)):
relevance = 1 - dist # 余弦距离转相似度
if relevance >= min_relevance:
episodes.append({
"content": doc,
"relevance": relevance,
"timestamp": meta["timestamp"],
"type": meta["type"]
})
return sorted(episodes, key=lambda x: x["relevance"], reverse=True)
def _estimate_importance(self, content: str) -> float:
"""简单的重要性估算(实际可用LLM判断)"""
important_keywords = ["决策", "喜欢", "不喜欢", "要求", "目标", "习惯", "项目"]
score = sum(1 for kw in important_keywords if kw in content) / len(important_keywords)
return min(score + 0.3, 1.0)
2.3 语义记忆(Layer 3):用户画像与知识库
语义记忆存储稳定的事实性知识,访问频率高、更新频率低:
import json
from pathlib import Path
@dataclass
class UserProfile:
"""用户语义记忆:跨会话的稳定用户信息"""
user_id: str
name: Optional[str] = None
preferences: dict = field(default_factory=dict)
expertise_areas: list[str] = field(default_factory=list)
project_context: dict = field(default_factory=dict)
communication_style: str = "neutral" # formal/casual/technical
last_updated: str = field(default_factory=lambda: datetime.now().isoformat())
class SemanticMemory:
"""语义记忆:用户画像 + 知识库管理"""
def __init__(self, storage_path: str = "./user_profiles"):
self.storage_path = Path(storage_path)
self.storage_path.mkdir(exist_ok=True)
self._cache: dict[str, UserProfile] = {}
def get_user_profile(self, user_id: str) -> UserProfile:
"""获取用户画像,不存在则创建空白画像"""
if user_id in self._cache:
return self._cache[user_id]
profile_file = self.storage_path / f"{user_id}.json"
if profile_file.exists():
data = json.loads(profile_file.read_text(encoding='utf-8'))
profile = UserProfile(**data)
else:
profile = UserProfile(user_id=user_id)
self._cache[user_id] = profile
return profile
def update_profile_from_conversation(
self,
user_id: str,
conversation: str,
llm_extractor # LLM实例,用于提取信息
):
"""从对话中自动提取并更新用户画像"""
profile = self.get_user_profile(user_id)
# 使用LLM从对话中提取结构化信息
extract_prompt = f"""
从以下对话中提取用户信息,以JSON格式返回:
{{
"name": "用户名(如果提到)",
"new_preferences": {{"key": "value"}},
"expertise_areas": ["领域1", "领域2"],
"communication_style": "formal/casual/technical"
}}
对话内容:
{conversation}
只返回JSON,不要其他内容。
"""
extracted = llm_extractor(extract_prompt)
try:
updates = json.loads(extracted)
if updates.get("name"):
profile.name = updates["name"]
profile.preferences.update(updates.get("new_preferences", {}))
profile.expertise_areas = list(set(
profile.expertise_areas + updates.get("expertise_areas", [])
))
if updates.get("communication_style") != "neutral":
profile.communication_style = updates["communication_style"]
profile.last_updated = datetime.now().isoformat()
self._save_profile(profile)
except json.JSONDecodeError:
pass # 提取失败时保持原有画像
def get_profile_context(self, user_id: str) -> str:
"""生成可注入系统提示词的用户画像描述"""
profile = self.get_user_profile(user_id)
parts = []
if profile.name:
parts.append(f"用户名:{profile.name}")
if profile.expertise_areas:
parts.append(f"专业领域:{', '.join(profile.expertise_areas)}")
if profile.preferences:
prefs = '; '.join(f"{k}: {v}" for k, v in profile.preferences.items())
parts.append(f"用户偏好:{prefs}")
if profile.communication_style != "neutral":
parts.append(f"沟通风格:{profile.communication_style}")
return "关于当前用户:\n" + "\n".join(f"- {p}" for p in parts) if parts else ""
def _save_profile(self, profile: UserProfile):
"""持久化用户画像到磁盘"""
profile_file = self.storage_path / f"{profile.user_id}.json"
profile_file.write_text(
json.dumps(profile.__dict__, ensure_ascii=False, indent=2),
encoding='utf-8'
)
2.4 程序记忆(Layer 4):系统提示与工具定义
class ProceduralMemory:
"""程序记忆:Agent行为的配置与工具集"""
def __init__(self, agent_name: str, role: str):
self.agent_name = agent_name
self.role = role
self.tools: dict[str, callable] = {}
self.workflows: dict[str, list] = {}
def register_tool(self, name: str, func: callable, description: str):
"""注册可用工具"""
self.tools[name] = {"func": func, "description": description}
def get_system_prompt(
self,
user_profile_context: str = "",
relevant_memories: str = ""
) -> str:
"""生成完整的系统提示词(含记忆注入)"""
base_prompt = f"""你是{self.agent_name},{self.role}
你的行为准则:
1. 始终保持对话连贯性,主动引用用户历史信息
2. 在回答中体现你对用户的了解,展示记忆能力
3. 如果用户提到了新信息,自然地将其纳入对话上下文
{user_profile_context}
{f"相关历史记忆:{relevant_memories}" if relevant_memories else ""}
"""
return base_prompt
三、完整Agent记忆系统集成
将四层记忆整合为可用于生产环境的Agent:
import openai
from typing import Generator
class MemoryAgent:
"""
具备完整记忆系统的AI Agent
记忆架构:
- Layer 1 WorkingMemory:当前会话上下文
- Layer 2 EpisodicMemory:跨会话历史检索
- Layer 3 SemanticMemory:用户画像
- Layer 4 ProceduralMemory:系统提示+工具
"""
def __init__(
self,
agent_name: str = "AI助手",
model: str = "gpt-6",
working_memory_tokens: int = 80_000
):
self.model = model
# 初始化四层记忆
self.working_memory = WorkingMemory(max_tokens=working_memory_tokens)
self.episodic_memory = EpisodicMemory(collection_name=f"{agent_name}_episodes")
self.semantic_memory = SemanticMemory()
self.procedural_memory = ProceduralMemory(
agent_name=agent_name,
role="一个有记忆的AI助理,能记住用户的偏好和历史对话"
)
self.client = openai.OpenAI()
def chat(self, user_id: str, session_id: str, user_message: str) -> str:
"""
完整的记忆感知对话流程:
1. 检索相关历史(情景记忆)
2. 获取用户画像(语义记忆)
3. 构建增强提示(程序记忆)
4. 更新工作记忆
5. 调用LLM
6. 异步更新长期记忆
"""
# Step 1: 从情景记忆检索相关历史
relevant_episodes = self.episodic_memory.search_episodes(
query=user_message,
user_id=user_id,
top_k=3
)
memory_context = self._format_episodes(relevant_episodes)
# Step 2: 获取用户画像
user_context = self.semantic_memory.get_profile_context(user_id)
# Step 3: 构建系统提示(程序记忆 + 注入长期记忆)
system_prompt = self.procedural_memory.get_system_prompt(
user_profile_context=user_context,
relevant_memories=memory_context
)
# Step 4: 更新工作记忆(添加本次用户消息)
if not self.working_memory.messages:
self.working_memory.add_message("system", system_prompt)
self.working_memory.add_message("user", user_message)
# Step 5: 调用LLM
response = self.client.chat.completions.create(
model=self.model,
messages=self.working_memory.get_context(),
temperature=0.7
)
assistant_message = response.choices[0].message.content
# Step 6: 更新工作记忆(添加AI回复)
self.working_memory.add_message("assistant", assistant_message)
# Step 7: 异步保存到情景记忆(实际生产中应使用后台任务)
episode_content = f"用户:{user_message}\nAI:{assistant_message}"
self.episodic_memory.save_episode(
user_id=user_id,
session_id=session_id,
content=episode_content
)
# Step 8: 定期更新用户画像(每5轮对话更新一次)
msg_count = len(self.working_memory.messages)
if msg_count % 10 == 0: # 每5轮(10条消息)
self._update_user_profile_async(user_id, episode_content)
return assistant_message
def end_session(self, user_id: str):
"""会话结束时执行记忆整理"""
if len(self.working_memory.messages) > 2:
# 生成本次会话摘要并存入情景记忆
conversation_text = "\n".join([
f"{m['role']}: {m['content']}"
for m in self.working_memory.messages[1:] # 跳过system prompt
])
self.episodic_memory.save_episode(
user_id=user_id,
session_id="summary",
content=f"【会话摘要】{conversation_text[:2000]}",
episode_type="session_summary"
)
# 清空工作记忆,为下次会话准备
self.working_memory = WorkingMemory()
def _format_episodes(self, episodes: list[dict]) -> str:
if not episodes:
return ""
parts = ["以下是与当前问题相关的历史对话:"]
for ep in episodes:
time_str = ep["timestamp"][:10] # 只显示日期
parts.append(f"[{time_str},相关度{ep['relevance']:.0%}]\n{ep['content']}")
return "\n\n".join(parts)
def _update_user_profile_async(self, user_id: str, content: str):
"""更新用户画像(简化版,实际应异步执行)"""
# 使用简单LLM调用提取用户信息(节省成本,用小模型即可)
def simple_extractor(prompt):
resp = self.client.chat.completions.create(
model="gpt-4o-mini", # 用小模型节省成本
messages=[{"role": "user", "content": prompt}]
)
return resp.choices[0].message.content
self.semantic_memory.update_profile_from_conversation(
user_id=user_id,
conversation=content,
llm_extractor=simple_extractor
)
使用示例
# 初始化Agent
agent = MemoryAgent(agent_name="小智", model="gpt-6")
user_id = "user_zhangsan"
session_id = "session_20260409_001"
# 第一次对话
print(agent.chat(user_id, session_id, "你好,我叫张三,我在做一个医疗AI诊断系统"))
# → "你好,张三!很高兴认识你。医疗AI诊断系统是个很有意义的项目..."
# 几天后,新的会话
agent.end_session(user_id) # 结束上次会话,保存记忆
agent2 = MemoryAgent(agent_name="小智", model="gpt-6") # 新会话实例
print(agent2.chat(user_id, "session_20260412_001", "我那个项目遇到了一些HIPAA合规问题"))
# → "张三,关于你的医疗AI诊断系统的HIPAA合规问题,这确实是医疗AI的核心挑战..."
# 注意:Agent自动记得用户叫张三,以及他在做医疗AI项目!
四、主流记忆框架选型对比
| 框架 | 核心特点 | 适用场景 | 维护难度 | 开源协议 |
|---|---|---|---|---|
| Mem0 | 简单API,自动记忆管理 | 快速集成,中小型项目 | ⭐ 低 | Apache 2.0 |
| Letta(MemGPT) | Agent主动控制记忆,可自主决定保存什么 | 需要高记忆控制权的复杂Agent | ⭐⭐⭐ 高 | Apache 2.0 |
| LangChain Memory | 与LangChain生态深度集成 | 已有LangChain项目 | ⭐⭐ 中 | MIT |
| LlamaIndex | 与知识库检索高度结合 | RAG + 记忆结合场景 | ⭐⭐ 中 | MIT |
| 自建(本文方案) | 完全可控,灵活定制 | 企业级,高定制需求 | ⭐⭐⭐⭐ 最高 | 自主 |
Mem0快速接入示例
# pip install mem0ai
from mem0 import Memory
m = Memory()
# 存储记忆(自动提取关键信息)
result = m.add(
"我叫张三,我在做医疗AI项目,不喜欢太多代码示例",
user_id="zhangsan"
)
print(result) # 自动提取并存储:姓名、项目、偏好
# 检索记忆
memories = m.search("这个用户在做什么项目", user_id="zhangsan")
for mem in memories:
print(mem['memory'])
# → "用户叫张三,正在做医疗AI诊断系统,偏好简洁回答(少代码)"
# 列出所有记忆
all_memories = m.get_all(user_id="zhangsan")
Letta(MemGPT)核心概念
# Letta的独特之处:Agent自己管理记忆
# Agent可以通过工具调用 core_memory_append(), archival_memory_insert() 等
# 主动控制什么信息值得记忆
# 简化示意:
letta_tools = [
{
"name": "core_memory_append",
"description": "将重要信息追加到核心记忆(永久保留)",
"parameters": {"label": "标签", "content": "要记忆的内容"}
},
{
"name": "recall_memory_search",
"description": "搜索归档的历史记忆",
"parameters": {"query": "搜索词"}
}
]
# Agent在对话中自主决定:"这条信息很重要,我要保存到核心记忆"
五、记忆遗忘机制:避免"记忆污染"
没有遗忘的记忆系统会越来越慢,也会被过时信息干扰:
class MemoryGarbageCollector:
"""记忆垃圾回收器:实现记忆的自然衰减"""
def __init__(self, episodic_memory: EpisodicMemory):
self.memory = episodic_memory
def decay_by_time(
self,
user_id: str,
decay_days: int = 90,
importance_threshold: float = 0.7
):
"""
基于时间的遗忘:
- 重要记忆(importance >= 0.7)永久保留
- 普通记忆超过90天自动删除
"""
from datetime import timedelta
cutoff_date = datetime.now() - timedelta(days=decay_days)
# 查询需要清理的记忆(低重要度 + 超时)
old_memories = self.memory.collection.get(
where={
"$and": [
{"user_id": user_id},
{"importance": {"$lt": importance_threshold}},
{"timestamp": {"$lt": cutoff_date.isoformat()}}
]
}
)
if old_memories['ids']:
self.memory.collection.delete(ids=old_memories['ids'])
print(f"已清理 {len(old_memories['ids'])} 条过期记忆")
def consolidate_memories(self, user_id: str, llm_consolidator):
"""
记忆整合:将多条相似记忆合并为一条(类似人类的记忆整合)
减少存储量,同时保留核心信息
"""
recent_memories = self.memory.collection.get(
where={"user_id": user_id},
limit=50
)
if len(recent_memories['ids']) < 20:
return # 记忆量不足,无需整合
# 用LLM对50条记忆进行整合摘要
all_content = "\n".join(recent_memories['documents'])
consolidation_prompt = f"""
请将以下50条用户记忆整合为10条核心记忆,保留最重要的信息:
{all_content}
返回格式:
1. [整合记忆1]
2. [整合记忆2]
...
"""
consolidated = llm_consolidator(consolidation_prompt)
# 删除原来50条,写入10条整合记忆
self.memory.collection.delete(ids=recent_memories['ids'])
# ... 存入整合后的记忆
六、向量数据库选型指南
| 数据库 | 部署方式 | 适合规模 | 免费 | 性能 | 推荐理由 |
|---|---|---|---|---|---|
| Chroma | 本地/云 | 小型 | ✅ | ⭐⭐⭐ | 入门首选,纯Python,零配置 |
| Qdrant | 本地/云 | 中大型 | ✅(本地) | ⭐⭐⭐⭐ | 性能强,过滤能力优秀 |
| Weaviate | 本地/云 | 中大型 | ✅(本地) | ⭐⭐⭐⭐ | GraphQL接口,关联检索强 |
| Pinecone | 云 | 任意 | ❌(付费) | ⭐⭐⭐⭐⭐ | 托管最省心,生产级别SLA |
| pgvector | PostgreSQL扩展 | 中型 | ✅ | ⭐⭐⭐ | 已有PostgreSQL的首选 |
2026年推荐:对于大多数AI Agent项目,Qdrant是最佳选择——本地运行免费、性能优秀、支持payload过滤(按user_id隔离记忆)、支持多租户。
七、FAQ
Q1:记忆系统会导致用户隐私泄露风险吗?
A:记忆系统确实引入了隐私风险——用户A的信息不能泄露给用户B。工程层面的防护措施:(1) 每次查询必须加 user_id 过滤条件;(2) 数据库级别使用行级安全策略(RLS);(3) 记忆内容加密存储;(4) 实现"右被遗忘"——用户可以清空自己的所有记忆。合规性上,若存储用户对话需遵守当地数据保护法规(如中国《个人信息保护法》)。
Q2:向量检索的召回率不够怎么办?
A:向量检索基于语义相似度,如果用户的查询与历史记忆用词不同,可能召回失败。解决方案:(1) 混合检索:向量检索 + 关键词BM25检索,取并集;(2) 查询扩展:用LLM将用户查询扩展为多个等价表述;(3) 元数据过滤:按时间段、话题标签等过滤缩小候选范围;(4) 重排序:初步检索后用cross-encoder重新排序。
Q3:Mem0和自建记忆系统怎么选?
A:Mem0适合快速验证和中小型项目,它处理了大量细节(记忆提取、去重、更新策略),开箱即用。自建适合企业级场景——Mem0的黑盒性质导致你无法精细控制"什么值得记忆",而企业场景往往对记忆内容有严格要求。建议:先用Mem0验证记忆系统的业务价值,确认有价值后再自建以获得更高可控性。
Q4:Agent记忆系统对话延迟影响有多大?
A:典型配置下的额外延迟:向量检索约50-200ms(本地Qdrant),用户画像读取约5-20ms,记忆写入可以完全异步(不影响响应时间)。总额外延迟约100-200ms,相比LLM本身的1-5s延迟可以忽略不计。如果要进一步优化,可以在用户开始输入时就提前触发记忆检索(打字时预检索)。
上一篇 DeepSeek V4全面换装华为昇腾950PR:从CUDA到CANN的国产算力里程碑
下一篇 GPT-6 Spud倒计时与技术前瞻:AGI前夜的最后冲刺
参考资料
- 腾讯云开发者社区(DeepHub IMBA),《理解 Agent 记忆:从无状态模型到持久化记忆架构》,2026-03-31,https://cloud.tencent.com/developer/article/2648538
- 阿里云开发者社区,《AI Agent 记忆系统:从短期到长期的技术架构与实践》,2026-02-05,https://developer.aliyun.com/article/1710635
- HTMLPAGE,《AI Agent 记忆管理实战:上下文窗口、RAG 与会话持久化》,2026-03-02,https://htmlpage.cn/topics/ai/ai-agent-memory-management-practice
- AI Insight,《Agent 记忆管理:多层级记忆机制设计全景》,2026-03,https://www.ai-insight.org/reports/agent-memory-2026
- 掘金,《AI Agent 记忆机制深度解析:从短期记忆到长期记忆的工程实践》,2026-03-24,https://juejin.cn/post/7620635912632451108
- phppan.com,《AI Agent 的长期记忆:我在工程落地里踩过的坑》,2026-02-08,https://www.phppan.com/2026/02/ai-agent-long-term-memory/
更多推荐
所有评论(0)