Appearance
9.5 多轮任务的状态与记忆
引言:为什么"状态与记忆"是 System Prompt 最难但最关键的部分
真正的工程级应用都是多轮对话系统:多轮推理、多轮规划、多轮写作、多轮 Agent 工作流。在这些场景中,模型会遇到上下文混乱、目标丢失、风格漂移、推理链断裂等问题。
State 是任务执行进度,Memory 是任务相关知识的保留方式。
9.5.1 什么是 State(任务状态)
State 指当前任务进行到什么阶段、用户意图的最新版本、模型需要依据的"工作上下文"。
| 状态内容 | 说明 |
|---|---|
| 任务目标 | current goal |
| 当前子任务 | active subtask |
| 用户最新输入 | latest user intent |
| 历史进度 | progress |
| 持续性要求 | persistent rules |
9.5.2 Memory 的三大类别
| 类别 | 说明 | 示例 |
|---|---|---|
| Persistent Memory | 持久记忆/系统级规则,不可被用户覆盖 | 角色、行为准则、安全规则、输出格式 |
| Task Memory | 任务记忆,只在当前任务中有效 | 用户需求、任务目标、已完成内容 |
| Conversational Memory | 对话记忆/短期记忆 | 用户上一步问题、模型上一步回答 |
9.5.3 哪些要记、哪些不能记
| 必须记 | 不能记 |
|---|---|
| 任务目标(避免失焦) | 用户的随机闲聊 |
| 格式与风格(避免漂移) | 用户没有确认的假设 |
| 用户约束(字数、结构) | 不需要的旧内容 |
| 历史进度(避免重复) | 不相关信息 |
9.5.4 State & Memory 在 System Prompt 中的设计
# State Management(状态管理)
在多轮对话中,你必须维护以下状态:
- 用户的当前目标(current goal)
- 当前子任务(active subtask)
- 已完成的部分(progress)
- 用户明确的约束(constraints)
- 持久规则(persistent rules)
若用户改变目标,你必须更新当前状态。
不得遗忘任务目标、风格或格式要求。9.5.5 Memory 的工程级设计
| 类型 | 说明 |
|---|---|
| Summary Memory | 内容过长时,将关键信息总结为摘要记忆 |
| Rule Memory | 始终遵循的行为准则、安全要求、输出格式 |
| Working Memory | 当前任务中维护的信息:当前步骤、用户最新要求 |
9.5.6 State & Memory 失效时的常见问题
- 风格突然变化、输出格式混乱
- 内容重复、忽略任务要求
- 多轮对话丢失关键细节
- 推理链断裂、规划任务乱序
- 安全边界消失
9.5.7 大厂级模板
# State & Memory Design
你必须维护以下内容:
1. Current Goal(当前任务目标)
2. Active Subtask(当前子任务)
3. User Constraints(用户的限制/要求)
4. Progress Summary(任务进度摘要)
5. Persistent Rules(角色、行为、格式、安全)
你必须:
- 在任务完成前保持目标不变
- 遇到歧义时主动询问用户澄清
- 更新状态以反映用户新的指令
- 保持多轮输出一致且稳定本节小结
关键要点
- State 决定任务的进行方式
- Memory 决定模型需要在多轮中保留哪些信息
- 任务相关的必须记,不相关的不能记
- 状态管理是稳定多轮对话的核心
- 大厂级 System Prompt 都包含明确的状态与记忆机制
第 9 章(System Prompt 工程)已全部完成。接下来我们将进入第 10 章 · 推理控制技术。


