Appearance
12.5 提示链状态管理(State Management)
引言:为什么提示链必须管理"状态"
大模型不会"自动记住"你的状态。如果没有明确的状态管理策略,在多阶段任务中将出现模型忘记上一步内容、混淆步骤、任务链中断等问题。Prompt State Management 确保每个步骤都能在明确、正确、可控的状态下运行。
12.5.1 什么是提示链"状态"
状态(State)指的是:在任务流程中,每一个步骤所需要的上下文、变量、历史信息、结构化数据集合。
| 状态内容 | 说明 |
|---|---|
| 当前步骤 | Step ID |
| 已完成的子任务 | 历史记录 |
| 中间结构结果 | 如大纲 |
| 限制条件 | 约束 |
| 变量 | 主题、参数、风格设定 |
12.5.2 最常失败的三类状态问题
| 问题 | 说明 |
|---|---|
| 状态丢失 | 模型突然忘记主题、步骤、前文 |
| 状态污染 | 模型把不同步骤的输出混在一起 |
| 状态漂移 | 模型突然改变原本规则(风格、格式等) |
12.5.3 三种工程级状态管理方法
| 方法 | 说明 | 适用场景 |
|---|---|---|
| 显式状态管理 | 将状态显式写入 Prompt | 稳定、可控、易 debug |
| 结构化状态对象 | 使用 JSON 作为"状态容器" | 可扩展、易于程序读取 |
| 外部状态管理 | 状态放在内存/数据库/Session | 企业系统、多模型协作 |
12.5.4 七种核心状态管理技术
| 技术 | 说明 |
|---|---|
| 状态封装 | 把所有关键状态放在一个结构块内 |
| 状态冻结 | 步骤完成后冻结输出,不允许修改 |
| 状态校验 | 每一步检查是否满足输入要求 |
| 状态提醒 | 在每一步 Prompt 中加入当前状态说明 |
| 状态隔离 | 不同步骤之间的数据彼此隔离 |
| 状态压缩 | 对长上下文压缩成短描述 |
| 状态回滚 | 如果生成错误,回到上一状态重做 |
12.5.5 状态管理模板
# 状态管理规则
1. 当前状态 = {state}
2. 本状态对应任务 = {task_description}
3. 本状态必须输出 = {required_output_format}
4. 不允许执行的行为 = {forbidden_actions}
5. 若输入不完整,必须立即要求澄清
6. 状态结束后不得引用下一阶段任务12.5.6 常见错误
| 错误 | 后果 |
|---|---|
| 每一步没有明确的状态说明 | 模型混乱 |
| 状态中混入无关内容 | 状态污染 |
| 未冻结上一阶段状态 | 模型任意改写 |
| 状态过长 | token 超限 |
本节小结
关键要点
- 状态管理是 Prompt 系统的核心
- 模型是无状态的,必须人为构建"状态系统"
- 三种方式:显式状态、结构化状态、外部状态
- 必须加入状态验证、防污染、防漂移机制
状态管理是 Pipeline 的关键,接下来我们将学习:Pipeline 综合案例。


