学完能做什么
你会区分当前上下文、短期记忆、长期记忆和运行状态,能设计一份既可恢复又不过度收集数据的任务记录,并避免把全部历史对话无限塞回模型。
四个概念解决不同问题
| 概念 | 回答的问题 | 生命周期 |
|---|---|---|
| 上下文 | 模型这一次需要看到什么 | 单次调用 |
| 短期记忆 | 当前任务前面发生了什么 | 一次任务或会话 |
| 长期记忆 | 跨任务值得保留的稳定信息是什么 | 明确保留期限 |
| 运行状态 | 程序执行到哪一步、能否恢复 | 任务创建到归档 |
把四者都做成“聊天记录”会导致成本上涨、信息冲突、隐私扩大和难以恢复。
上下文要按需组装
每次调用前,从不同来源选出最小必要信息:
text
系统规则
+ 当前任务与验收条件
+ 最近的关键步骤
+ 当前工具结果
+ 检索到的少量材料
+ 用户已确认的约束
= 本次模型上下文旧工具原始输出、重复寒暄和已经失效的计划不应默认保留。重要事实用结构化字段保存,避免依赖模型从长对话里重新猜。
为任务建立可恢复快照
json
{
"task_id": "task_20260819_001",
"status": "WAITING_CONFIRMATION",
"step": 4,
"objective": "生成周报草稿",
"constraints": ["只使用已批准材料", "不得自动发送"],
"completed_actions": [
{"tool": "search_docs", "result_ref": "result_31"}
],
"pending_action": {
"tool": "save_draft",
"arguments_hash": "sha256:..."
},
"budgets": {"steps_left": 4, "model_calls_left": 2},
"updated_at": "2026-08-19T08:30:00Z",
"version": 3
}原始大结果存到受控对象存储,状态只保存引用、摘要和校验值。恢复时重新校验权限和数据版本,不直接执行旧的待处理动作。
摘要不是事实数据库
对话变长时可以摘要,但摘要会遗漏或改写细节。稳妥做法是分层:
- 任务目标、约束、决策和确认保留结构化原文;
- 普通过程压缩成滚动摘要;
- 工具结果保留不可变引用和内容哈希;
- 摘要记录来源步骤和生成版本;
- 关键动作前回看原始证据,不只信摘要。
长期记忆需要明确写入规则
适合保存的通常是用户主动确认的稳定偏好,例如语言、日期格式或长期项目术语。不适合自动记住临时情绪、一次性密码、未经确认的推断和敏感身份信息。
每条长期记忆至少应有:
text
内容 + 来源 + 创建时间 + 适用范围 + 置信状态 + 到期时间 + 删除方式用户应能查看、修改和删除。系统也要有自动过期和组织保留策略。
处理并发和重复恢复
同一任务可能被两个工作进程同时恢复。使用版本号或租约避免重复执行:
python
snapshot = store.load(task_id)
if snapshot.version != expected_version:
raise ConcurrentUpdate("任务已被其他执行器更新")
store.compare_and_swap(
task_id=task_id,
expected_version=snapshot.version,
next_state=updated_snapshot,
)有副作用的工具仍要使用幂等键。状态锁只能减少并发,不足以覆盖网络超时后的未知结果。
恢复前重新确认现实世界
暂停期间,文件可能被修改、用户权限可能被撤销、余额可能变化。恢复时检查:
- 当前身份和授权是否仍有效;
- 输入材料的版本或哈希是否变化;
- 待执行参数是否仍与用户确认的一致;
- 幂等键是否已有成功结果;
- 时间、成本和步骤预算是否仍充足。
如果关键条件改变,回到等待确认,而不是沿用旧批准。
数据最小化与删除
在设计表结构时同时设计删除路径:
- 把身份信息与任务内容分开,便于按用户删除;
- 敏感字段加密并限制查询角色;
- 日志只保存必要摘要;
- 临时工具结果设置短期过期;
- 备份遵循同样的保留和删除策略;
- 训练、分析等其他用途必须单独说明和授权。
状态设计练习
为“用户上传材料后生成合同检查清单”设计:
- 本次模型上下文必须包含什么?
- 哪些内容留在任务短期记忆?
- 哪些信息绝不能成为长期记忆?
- 在等待用户确认时保存哪些恢复字段?
- 文件变化或权限撤销后如何处理?
- 任务结束 30 天后删除哪些数据?
完成检查清单
- 上下文、短期记忆、长期记忆和运行状态已分开。
- 关键目标、约束、确认和结果使用结构化记录。
- 恢复时会重新校验权限、版本和幂等结果。
- 长期记忆有来源、范围、过期和用户删除入口。
- 日志、临时结果和备份都有数据保留策略。
下一步
下一篇将把检索和引用接入 Agent,让模型在受控材料范围内回答,并能追溯每条关键结论。