Agent 状态与记忆

agent_state_and_memory2026-09-03 00:08:37

Agent 状态与记忆描述 Agent 在任务过程中保存什么,以及这些信息如何参与后续决策。状态回答“任务现在进行到哪里”,记忆回答“过去有哪些信息可能在以后再次有用”。

三个容易混淆的概念

  • 上下文:当前这一轮模型实际看到的输入;
  • 状态:应用保存的当前任务事实,例如计划、步骤、文件版本和审批结果;
  • 记忆:从过去交互或任务中保留下来、可在未来检索的信息。

状态和记忆可以存放在数据库、文件或内存中,但只有被装入上下文后,模型才能利用它们。

Agent 状态

典型状态包括:

  • 当前目标、约束和完成条件;
  • 计划中的步骤及其待处理、进行中、完成或失败状态;
  • 已执行的工具调用、返回结果和错误;
  • 已生成的中间产物及其版本或路径;
  • 重试次数、时间、成本和权限确认;
  • 等待用户或外部系统处理的事项。

状态应尽量结构化,并由运行框架维护。仅把“我已经完成第几步”写在自然语言对话中,容易出现模型陈述与真实系统状态不一致的问题。

运行轨迹

运行轨迹是任务随时间发生的事件序列,例如:

用户请求 → 模型决策 → 工具调用 → 工具结果 → 状态更新 → 下一次决策

轨迹适合审计、调试和评测;当前状态则是从这些事件中得到的最新快照。两者同时保存,可以回答“现在是什么状态”和“为什么变成这个状态”。

短期记忆与长期记忆

  • 短期记忆服务于当前任务,常由最近消息、工作笔记和阶段性摘要组成;
  • 长期记忆跨任务或跨会话存在,可以保存稳定偏好、项目事实、已验证经验和可复用知识;
  • 情景记忆记录过去发生过的具体事件;
  • 语义记忆保存从事件或资料中提炼出的事实与概念。

这些名称是常见设计方式,不要求每个 Agent 都实现全部类型。简单 Agent 可能只需要结构化任务状态和最近若干轮消息。

用户记忆

用户记忆是长期记忆在个性化、跨会话场景中的具体形式。它只保存与特定用户有关、未来可能复用的信息,并需要处理来源、时间、冲突、隐私以及用户的查看、更正和删除权。详见 用户记忆。

记忆读写流程

  1. 判断新信息是否值得长期保存;
  2. 去除凭据、无关日志和未经验证的推测;
  3. 保存内容、来源、时间、适用范围和置信信息;
  4. 在新任务中根据相关性、时效性和重要性检索候选记忆;
  5. 解决重复或冲突,并将少量相关内容装入上下文;
  6. 当事实变化时更新、失效或删除旧记忆。

设计原则

  • 让数据库或工具结果成为可验证事实的来源,不让模型自行宣布状态已改变;
  • 为写操作设置明确规则,避免把每段对话都永久保存;
  • 记忆应带来源与时间,时效性强的信息在使用前重新验证;
  • 用户应能查看、更正和删除与自己有关的长期记忆;
  • 敏感数据遵循最小保存、最小访问和到期清理原则;
  • 评测不仅检查“能否记住”,也检查“能否在正确时机取回且不误用”。

相关词条

参考资料

本页目录