——让 AI 拥有“长期理解力”的工程化方法*
一句话总结:
记忆系统不是“让模型变聪明”,而是让智能体“不会重复犯同样的错”。 记忆工程是现代 AI智能体中最被低估、同时也是最关键的能力之一。
如果你的智能体出现过以下问题
- 上下文一长就失忆
- 连续任务无法承接
- 用户偏好记不住
- 工具调用规则老是忘
- 多轮对话逻辑断裂
- Agent 在一个长任务中迷路、跑偏
- A 工作流执行正常,B 工作流立即忘光
那么你现在缺少的不是模型,而是:一个完整的 Memory Architecture(记忆架构)。今天这篇,你将系统掌握:
- 记忆工程的 4 层结构化模型
- 哪些内容应该记忆?哪些不能记忆?
- 如何避免错记、幻觉记忆、污染记忆?
- 工作流智能体的“任务记忆模板”
- 用户画像(User Profile)的工程设计
- 工具使用记忆(Tool Memory)的最佳实践
- 长任务执行的“状态记忆(State Memory)”
- 以及:最终可复用的 Memory Engineering 框架
这篇会非常工程化,属于可以直接上生产环境的那种。
一、记忆是什么?不是文本,而是“结构化事实”
所有初学者都在做一个错误事情:把用户话当成“记忆内容”塞进 prompt 或 vector store。这是错的。记忆真正的定义:
记忆 = Agent 在未来决策时必须持有的结构化事实(Structured Facts)。
所以,记忆不等于:“用户说过这个,我就记住”。而是:“这个信息对未来决策是否有效、有用、且稳定?”记忆必须满足三件事:
| 条件 | 解释 |
|---|---|
| 稳定性 | 未来长时间有效,不会频繁变化 |
| 显著性 | 和智能体的任务强相关 |
| 显著性 | 可决策性 未来会影响模型的行动/选择 |
二、Memory Engineering 的 4 层架构(重点)
真正的记忆系统 = 4 个记忆层 + 2 个过滤器 这是行业里用得最稳定、可规模化的架构。
- 0️⃣ 短期上下文(Context)
- 1️⃣ 工作记忆(Working Memory)
- 2️⃣ 长期记忆(Long-term Memory)
- 3️⃣ 程序性记忆(Procedural Memory)
- 4️⃣ 语义记忆(Semantic Memory)
- ——(两个过滤器:Extraction Filter + Relevance Filter)
0️⃣ 短期上下文(一次对话的 context window)
特点:
- 存活时间:几十秒~几分钟
- 作用:模型即时推理
- 不存储
- 任务中断即失效 这不是“记忆”,只是模型的活跃上下文。
1️⃣ 工作记忆(Working Memory)
——任务级别的短期记忆(Session Memory)** 用途:
- 在一段任务过程保存必要的数据
- 跨多轮对话保持状态
- 多工具调用维持一致性
- 避免模型遗忘关键变量 典型内容:
- 当前任务目标
- 用户当前需求
- 当前草稿、分析、计算结果
- 未完成子任务
例子(写文章 agent):
{
"task": "生成文章",
"stage": "outline",
"draft": "",
"style": "专业、工程化",
"target_length": "1800-2200字"
}
工作记忆在任务结束时 自动清空。
2️⃣ 长期记忆(Long-term Memory)
——用户画像 + 偏好系统** 这是智能体“个性化能力”的根基。 属于长期稳定、不随任务清空的信息。 存储两类内容:
(A)用户偏好(Preference Memory)
如:
- 喜欢文章风格:工程化
- 排版偏好:H2、H3、短句
- 项目方向:大模型 + 工程化实践
- 禁忌:不要口语化表达
- 文件输出格式偏好:Markdown
(B)用户画像(User Profile)
如:
- 身份:测试工程师
- 核心任务:构建 AI 文章体系、自动化
- 技能水平(用于动态解释深浅):中高级 长期记忆必须通过: 显著性过滤(Significance filtering) 稳定性过滤(Stability filtering) 判断是否值得保存。
3️⃣ 程序性记忆(Procedural Memory)
——Agent 的动作规则、工具规则,这是最重要、最容易被忽视的一层。 内容包含:
- 工具调用规范
- 输入输出 schema
- 失败重试策略
- 约束条件
- 工作流规则
- 安全限制
- 模型行为边界
例子:
{
"tool_rules": {
"search": "需要明确检索关键词",
"write_file": "必须指定合法路径,不得覆盖用户未授权文件"
},
"agent_rules": {
"always_finalize_tasks": true,
"use_react_for_complex_tasks": true
}
}
你可以把它理解为:“Agent 的操作系统”。程序性记忆不会随着用户变化,只随系统升级变化。
4️⃣ 语义记忆(Semantic Memory)
——外部事实知识(如 RAG)这层是:
- 向量数据库
- 结构化知识库
- 文档库
- 域知识
- 产品/接口/数据库 schema
- 框架、模型能力文档
这类信息不是“记住用户说过什么”,而是:Agent 需要的外部真实世界知识。
- 测试工程师的 API 文档
- 产品 PRD
- 技术规范
- 你的文章结构模板
- 你的写作手册
语义记忆 = “Agent 的长期知识库”。
三、记忆过滤器:不是什么都能记
记忆工程最关键的是“过滤”,避免 AI 存垃圾记忆。
1)Extraction Filter
(从对话中抽取有效事实) LLM 负责判断:
“这句话包含事实吗?需要 structured extraction 吗?”
例如: 用户说:
“文章风格不要太口语化。”
提取为:
{
"fact": "user_style_preference",
"value": "避免口语化"
}
2)Relevance & Stability Filter
(事实是否值得保存?) 判断:
- 会长期影响决策吗?
- 是偏好还是一次性?
- 是否可能很快变化?
- 是否与任务强相关?
拒绝存储:
- 情绪
- 一次性信息
- 模糊信息
- 不相关信息
- 即时变化的信息
四、Memory Engineering 的 3 份核心模板
(A)用户偏好记忆模板(Preferences Memory Template)
{
"writing": {
"style": "专业、工程化、结构化",
"tone": "清晰、信息密度高",
"format": "Markdown",
"avoid": ["口语化", "冗长", "无结构内容"]
},
"interaction": {
"explain_level": "专业,但避免啰嗦",
"step_by_step": true
}
}
(B)工作记忆模板(Working Memory Template)
{
"task_goal": "",
"subtasks": [],
"current_stage": "",
"intermediate_results": {},
"constraints": {},
"final_deliverable": ""
}
(C)程序性记忆(Tools + Rules Template)
{
"tools": {
"search_api": {
"required_fields": ["query"],
"retry_policy": "3 retries",
"usage_example": "... ..."
},
"write_file": {
"required_fields": ["path", "content"],
"safety": "cannot overwrite unapproved paths"
}
},
"agent_rules": {
"multi_step_reasoning": "ReAct",
"must_verify_results": true,
"halt_on_uncertainty": true,
"fallback_mechanism": "ask_for_clarification"
}
}
五、长任务记忆(State Memory)如何保证 Agent 不迷路?
长任务最怕两种情况:
- ❌ 执行到一半忘记前面的步骤
- ❌ 多工具调用间状态不一致
解决方案:在每一步执行后更新 State Memory(状态记忆)。 示例(文章生成任务):
{
"task": "写文章",
"stage": "生成大纲",
"outline": [
"什么是 Prompt Drift",
"工程化 Prompt 的 SOPS 框架"
],
"next_action": "开始写正文"
}
状态记忆的关键是:
- 每次行动后的更新
- 每个阶段有明确状态
- 可恢复(resumeable)
- 可检查(verifiable)
六、记忆污染与错记的 4 大防护机制
这是最常见的坑。
1)记忆必须结构化存储,不存自然语言
❌ “用户说他比较喜欢偏工程化风格。” ✔ "style": "engineering, structured"
2)记忆必须最小化(Minimal Memory)
只存:
- 对任务关键
- 长期有效
- 可决策信息
3)记忆必须可编辑、可清除(可塑性)
允许:
- 用户修改偏好
- 用户要求删除某段记忆
- 系统自动淘汰旧偏好
4)记忆不能当作真理(Hallucination Guard)
所有写入记忆的内容必须来自:
- RAG 文档
- 结构化 extraction
- 用户明确陈述
模型自己的推理不能写入记忆。
七、最终的 Memory Architecture(可直接使用)
把所有层级组合起来:
─────────────
0. Context(短期上下文)
─────────────
1. Working Memory(任务级记忆)
─────────────
2. Long-term Memory(用户偏好 + 用户画像)
─────────────
3. Procedural Memory(工具 + 规则)
─────────────
4. Semantic Memory(知识库)
─────────────
并在写入前经过:
- Extraction Filter
- Relevance Filter 这是目前最稳定、可工程落地、可扩展的记忆工程体系。
记忆不是“记住更多”,而是“保留必要、可行动的事实”。** 今天你已经拿到一个可作为工程规范的 Memory Framework:
- 4 层记忆结构
- 2 大过滤器
- 3 类模板
- 状态记忆机制
- 防污染原则
- 可规模化的完整架构
能把记忆工程做好的 Agent,才是真正有连续性、可用性、可扩展性的 Agent。