检索增强生成(RAG)、智能体与产品落地
记忆、状态与长期上下文
学习目标
- 区分会话上下文、应用状态和长期记忆。
- 理解哪些信息应该持久化,哪些不应该。
- 能为学习助手设计最小状态模型。
核心概念
会话上下文是当前对话中模型能看到的消息和材料。它适合处理短期连续问题,例如“继续刚才的答案”。应用状态是系统记录的事实,例如用户完成了哪些章节、项目步骤是否提交。长期记忆是跨会话保留的偏好或事实,例如用户喜欢简短回答、目标是构建检索增强生成应用。
这些信息不能混在一起。学习进度应该由数据库维护,模型通过工具读取;用户偏好需要明确保存和更新规则;敏感信息则需要更严格的权限和删除能力。
长期上下文不等于把所有历史消息都塞进提示词。通常需要摘要、检索、权重和过期策略。
示例与拆解
学习助手状态模型:
1{ 2 "session_context": { 3 "current_question": "下一章学什么?", 4 "recent_topic": "提示词基础" 5 }, 6 "app_state": { 7 "completed_chapters": ["prompt-basics"], 8 "active_roadmap": "ai-llm-foundations" 9 }, 10 "user_memory": { 11 "preferred_answer_style": "short_with_examples", 12 "goal": "构建人工智能知识助手" 13 } 14}
模型回答时应优先使用 app_state 判断进度,再用 user_memory 调整表达方式。不能让模型凭记忆猜测用户已经学完哪些章节。
常见误区
- 误区一:把聊天记录当数据库。聊天记录不适合作为唯一事实来源。
- 误区二:默认保存所有用户信息。长期记忆需要用户可见和可控。
- 误区三:每次请求都传全部历史。应只传与当前任务相关的摘要或检索结果。
小练习
为一个人工智能学习助手列出 5 类需要保存的信息,并分别标注为会话上下文、应用状态或长期记忆。
实操检查点
为每类信息补两个字段:谁可以更新、什么时候过期。长期记忆如果没有更新和删除规则,就会变成不可控的隐性状态。
1{ 2 "name": "preferred_answer_style", 3 "type": "user_memory", 4 "updated_by": "user_explicit_setting", 5 "expires": "until_user_changes_or_deletes" 6}
学习进度这类事实必须来自应用状态,不能让模型根据聊天记录自行推断。
随堂测验
完成本章测验,重点检查你是否能区分不同类型的上下文。
本章总结
记忆、状态和长期上下文解决不同问题。可靠人工智能产品要把事实状态放在系统里,把模型作为读取和解释这些状态的组件。
下一步学习指引
下一章学习智能体与工作流的边界,判断什么时候需要更开放的自主执行。