Memory / State:管理上下文和长期信息
Memory / State 是 AI 学习路线的第八章。
前面几章已经让 AI 可以表达需求、输出结构化结果、调用工具、使用知识库、评估效果,并围绕目标执行任务。到了这一章,我们要解决连续性问题:怎样让 AI 记住用户偏好、项目事实、任务进度和长期上下文。
很多 AI 使用体验差,原因并不复杂:每次都要重新解释项目背景,每次都要重复说明启动命令,每次都要提醒输出格式,每次中断后都要重新描述任务进度。Memory / State 的价值,就是让 AI 在多次对话、多次任务、多步执行之间保持连续。
这一章要解决的问题是:
如何管理短期上下文、长期记忆和任务状态,让 AI 能持续理解用户、项目和当前进度。
学完这一章,你应该能做到三件事:
- 区分短期上下文、长期记忆和任务状态
- 设计用户偏好、项目记忆和会话状态的保存方式
- 为记忆增加查看、更新、删除和隐私控制机制
1. Memory / State 是什么
Memory 指 AI 系统保存下来的长期信息。
常见 memory 包括:
- 用户常用语言
- 用户偏好的输出风格
- 项目技术栈
- 项目启动命令
- 常见错误处理方式
- 历史决策
- 常用模板
- 用户明确要求保存的信息
State 指当前任务或当前会话的运行状态。
常见 state 包括:
- 当前目标
- 已完成步骤
- 当前计划
- 工具调用结果
- 中间结论
- 等待用户确认的事项
- 失败次数
- 下一步动作
可以简单理解:
- Memory 更偏长期信息
- State 更偏当前进度
两者一起使用,AI 才能在任务中保持连续。
2. 为什么需要 Memory / State
没有 Memory / State 的 AI,容易出现这些问题:
- 用户每次都要重复背景
- 项目启动命令反复询问
- 上一次任务进度丢失
- Agent 中断后无法继续
- 输出风格不稳定
- 常见错误反复排查
- 团队经验无法沉淀
- 隐私信息缺少管理入口
Memory / State 能带来几个直接收益:
- 减少重复解释
- 提升任务连续性
- 保持输出风格一致
- 复用项目经验
- 支持长任务恢复
- 让 Agent 更容易规划下一步
- 为审计和回放提供基础
AI 系统越长期使用,Memory / State 的价值越明显。
3. 短期上下文
短期上下文是当前对话里模型可以直接看到的信息。
它通常包括:
- 最近的用户消息
- 最近的助手回复
- 当前任务说明
- 临时粘贴的代码、日志和文档
- 本轮工具调用结果
短期上下文的特点:
- 使用方便
- 更新很快
- 受上下文窗口限制
- 会随着对话变长而被压缩或丢弃
适合放在短期上下文里的内容:
- 当前问题
- 当前文件片段
- 当前错误日志
- 当前用户确认
- 当前工具输出摘要
不适合只放在短期上下文里的内容:
- 项目长期启动命令
- 用户长期偏好
- 关键历史决策
- 反复使用的流程模板
短期上下文适合处理当前任务,长期信息需要进入 memory。
4. 长期记忆
长期记忆用于保存跨会话复用的信息。
常见长期记忆包括:
- 用户偏好
- 项目事实
- 常用命令
- 目录结构说明
- 历史问题解决方案
- 团队约定
- 常用输出格式
- 用户明确保存的笔记
示例:
{ "type": "project_memory", "project": "example-api", "key": "start_command", "value": "npm run dev", "source": "用户确认", "updated_at": "2026-06-01"}长期记忆要有来源。没有来源的记忆容易引入错误。
建议记录:
- 记忆内容
- 适用范围
- 来源
- 更新时间
- 可信度
- 是否可删除
- 是否包含敏感信息
5. 用户偏好
用户偏好能让 AI 更贴合使用习惯。
常见用户偏好包括:
- 使用简体中文
- 技术术语保留英文
- 回答要简洁
- 输出要带命令和路径
- 做完修改后说明改动点
- 测试优先跑真实命令
- 避免某些表达方式
- 对高风险操作先确认
示例:
{ "scope": "global", "type": "user_preference", "content": "用户偏好简体中文,技术术语保留英文。", "source": "用户明确要求", "updated_at": "2026-06-01"}用户偏好要避免过度推断。适合保存用户明确说过、反复表现稳定、对后续任务有帮助的信息。
6. 项目记忆
项目记忆用于保存特定仓库或项目的信息。
常见项目记忆包括:
- 技术栈
- 启动命令
- 测试命令
- 部署命令
- 目录说明
- 关键服务
- 常见错误
- 环境变量说明
- 本地验证方式
示例:
{ "scope": "project", "project_path": "D:/myproject/example", "type": "command", "key": "health_check", "value": "curl http://localhost:3000/health", "source": "已运行验证", "updated_at": "2026-06-01"}项目记忆必须绑定项目路径或项目标识。用户经常切换项目时,跨项目误用记忆会带来风险。
7. 任务状态
任务状态用于保存当前任务进度。
Agent 和长任务尤其需要任务状态。
常见字段:
- goal
- plan
- completed_steps
- current_step
- observations
- pending_questions
- blocked_reason
- next_action
- status
示例:
{ "goal": "生成 AI 工程化学习路线剩余章节", "plan": ["生成 07", "生成 08", "生成 09"], "completed_steps": ["生成 07"], "current_step": "生成 08", "status": "in_progress"}任务状态要及时更新。状态过期后,Agent 会基于错误进度继续执行。
8. 会话状态
会话状态用于记录当前对话中的临时信息。
常见会话状态包括:
- 当前工作目录
- 当前分支
- 当前用户目标
- 最近一次命令结果
- 当前打开的文件
- 用户刚刚确认或拒绝的事项
会话状态生命周期通常比任务状态更短。它服务于当前对话,不一定需要长期保存。
示例:
{ "cwd": "C:/Users/admin/Documents/New project 14", "active_task": "生成 07-12 章节", "last_check": "已确认缺少 07-12 文件"}会话状态可以帮助 AI 减少重复检查,但关键操作前仍然要做当前环境验证。
9. 记忆更新
记忆不能只新增,也要更新。
常见更新场景:
- 启动命令改变
- 项目目录调整
- 用户偏好改变
- 旧方案被废弃
- 依赖版本升级
- 历史问题有了新解决方法
更新策略:
- 同一 key 保留最新版本
- 历史版本可归档
- 记录更新时间
- 记录更新来源
- 对冲突记忆进行标注
- 用户明确纠正时优先采用新信息
示例:
{ "old_value": "npm run dev", "new_value": "pnpm dev", "reason": "项目切换到 pnpm", "updated_by": "用户确认", "updated_at": "2026-06-01"}记忆更新要谨慎。错误记忆会比没有记忆更麻烦。
10. 隐私删除机制
Memory / State 可能包含敏感信息,必须支持删除。
敏感信息包括:
- token
- API key
- 密码
- 手机号
- 身份证号
- 个人地址
- 内部客户数据
- 财务数据
- 未公开业务信息
隐私机制建议包含:
- 用户可以查看记忆
- 用户可以删除记忆
- 用户可以修改记忆
- 敏感字段默认不保存
- 保存前进行脱敏
- 删除后同步清理索引和缓存
- 访问记忆记录审计日志
示例规则:
1. 不保存完整 token。2. 不保存用户密码。3. 保存项目命令时去掉密钥参数。4. 用户要求删除记忆时,必须删除对应条目。5. 涉及隐私的记忆需要标记 sensitive=true。隐私删除机制是 Memory 系统进入真实使用的底线。
11. Memory / State 实战练习
可以按下面顺序练习:
- 记录用户常用技术栈
- 记录项目启动命令
- 记录项目测试命令
- 记录常见错误处理方式
- 让 Agent 保存上一次任务进度
- 给记忆增加来源字段
- 给记忆增加更新时间
- 给记忆增加查看入口
- 给记忆增加更新入口
- 给记忆增加删除入口
每个练习都可以检查三个问题:
- 这条记忆是否有明确来源
- 这条记忆是否绑定正确范围
- 这条记忆是否包含敏感信息
12. 阶段验收标准
学完这一章,可以用下面的问题检查自己:
- 我能不能区分短期上下文、长期记忆和任务状态?
- 我能不能设计用户偏好的保存格式?
- 我能不能把项目记忆绑定到具体项目?
- 我能不能记录 Agent 的任务进度?
- 我能不能处理记忆冲突?
- 我能不能更新过期记忆?
- 我能不能让用户查看、修改和删除记忆?
- 我能不能避免保存敏感信息?
- 我能不能在使用记忆前判断是否适用当前项目?
- 我能不能让记忆真正减少重复解释成本?
如果这些问题大多数都能做到,说明 Memory / State 阶段已经基本合格。
13. 本章总结
Memory / State 的核心是让 AI 在多次对话和多步骤任务之间保持连续。
一套可用的 Memory / State 设计,建议至少包含:
- 短期上下文
- 长期记忆
- 用户偏好
- 项目记忆
- 任务状态
- 会话状态
- 记忆来源
- 记忆更新
- 隐私删除机制
- 权限和审计
Memory / State 让 AI 从临时问答走向持续协作。它能减少重复解释,保留项目经验,并支持 Agent 在长任务中恢复进度。
这一章的目标很明确:让 AI 记住该记住的内容,忘掉该删除的内容,并在正确范围内使用记忆。