状态与记忆
跨多个步骤工作的智能体需要连续性。它必须知道任务是什么、哪些行动已经生效、还有什么未解决、以及哪些信息以后可能有用。把这一切都称作“记忆”,会模糊不同的正确性与治理要求。
状态记录系统当前接受为真的内容;记忆存储可能再次有用的信息。被检索出的记忆只是候选输入,而非权威状态。
架构应当明确由谁维护事实,以及状态和记忆各自的更新规则、范围、有效性、来源、保留与删除方式。模型可以提出更新建议,但由应用代码决定它成为状态还是记忆。
分离各类记录
Section titled “分离各类记录”| 记录 | 目的 | 典型示例 |
|---|---|---|
| 权威状态(authoritative state) | 正确执行所需的当前公认事实 | 订单状态、已批准的行动、活动中的目标、剩余预算 |
| 事件记录(event record) | 对实质性尝试与变更的仅追加式记账 | 请求的行动、授予的审批、写入已确认 |
| 检查点(checkpoint) | 一次边界明确的运行所使用的恢复点 | 当前阶段、待生效的影响、状态版本、限额 |
| 派生视图(derived view) | 面向特定消费方的可再计算投影 | 仪表盘状态或面向模型的任务摘要 |
| 记忆候选(memory candidate) | 为未来可能复用而提出的信息 | 偏好、可复用发现、先前任务结果 |
| 产物(artifact) | 被状态引用的持久工作产物 | 报告、计划、代码补丁、证据包 |
一个存储系统可以同时承载其中若干类,但其语义应当保持区分。对话记录通常更接近事件日志;它并不会自动构成当前任务状态。摘要是派生视图;它不应悄然抹去生成它的事实。
权威状态需要所有者与明确结构
Section titled “权威状态需要所有者与明确结构”对于每个实质性字段,定义:
- 哪个系统是事实来源(source of truth);
- 谁或什么可以提出并提交更改;
- 有效取值与合法转换;
- 版本、观察时间与时效性要求;
- 冲突与并发行为;
- 审计与保留要求;以及
- 模型如何接收一个范围明确的状态投影。
当正确性依赖精确值时,使用领域标识符与具有明确类型的字段。文字说明可以解释状态,但不应成为金额、权限、接收方、测试结果或已提交影响的唯一表示。
控制回路应基于已验证的行动结果来更新状态。若写入超时,记录 outcome_unknown 并与权威记录系统(system of record)对账。不要让模型从一条含糊的文本消息中在“可能成功了”和“重试”之间自行选择。
并发与版本控制
Section titled “并发与版本控制”长时间运行且有多个参与者的任务,很容易出现基于旧状态的写入。智能体暂停时,人可能更正了一个值;两个执行者可能基于同一版本完成工作;一次重试可能在取消之后才到达。
常见控制包括:
- 乐观版本检查或对比并设置(compare-and-set,CAS);
- 针对副作用请求使用幂等性键(idempotency key);
- 用于限定所有权的租约(lease),在需要时包含到期与栅栏(fencing);
- 仅追加事件加确定性投影;
- 显式的合并或冲突状态;以及
- 在关键性提交前先读回(read-back)。
正确机制取决于数据存储与后果。架构上的要求是以策略来呈现并解决冲突,而不是把它隐藏在“最后写入者胜出(last writer wins)”的叙述之中。
记忆是一套完整生命周期,而非向量数据库
Section titled “记忆是一套完整生命周期,而非向量数据库”记忆在写入与读取时都需要决策:
observe information ↓propose a memory candidate ↓validate source, scope, consent, sensitivity, and usefulness ↓store with provenance, validity, retention, and owner ↓retrieve for a named future decision ↓recheck permission, relevance, freshness, and conflicts ↓include as attributed context or update authoritative state through its normal path嵌入与相似度检索可以实现检索的一部分。它们并不能界定应当记住什么、它是否仍然为真、谁可以看到它、或人如何更正它。
MemGPT 探索了一种分层记忆设计,在有限的模型上下文与外部存储之间移动信息(Packer et al., 2023)。Generative Agents 将观察流与检索、反思与规划相结合于一个模拟环境中(Park et al., 2023)。这些系统是外部记忆管理的有用研究示例。它们并未确立一种通用于生产的分类法或正确性保证。
按用途、范围与有效性对记忆分类
Section titled “按用途、范围与有效性对记忆分类”诸如情景记忆、语义记忆、程序性记忆等标签有助于比较研究,但要把机制落实到工程中,还需要以下字段:
| 维度 | 问题 |
|---|---|
| 预期用途 | 这是用于恢复任务、个性化交互、复用发现,还是改进流程? |
| 对象与所有者 | 它涉及用户、团队、租户、系统,还是公共领域?由谁控制? |
| 范围 | 哪些任务、产品、身份与模型可以使用它? |
| 来源 | 由人陈述、自系统观察、由模型生成,还是推断而来? |
| 有效性 | 它是长期偏好、有明确时限的事实,还是不确定的假设? |
| 敏感性 | 是否包含个人、机密、受监管或与安全相关的信息? |
| 保留 | 何时到期,删除由哪些法律或产品规则约束? |
| 替代(supersession) | 更正如何与旧条目关联并在其之上被优先采用? |
技能是有所有者与版本的程序性指导,不只是从一次运行中提取的记忆。持久的领域知识通常应存放在受治理的知识源中,而不是作为未审核的智能体记忆逐渐堆积。
写入策略:有选择地记忆
Section titled “写入策略:有选择地记忆”“记住一切”会带来成本、隐私暴露、矛盾与检索噪声。仅在命名了未来用途且收益足以支撑治理时才存储。
有用的写入闸门会询问:
- 保留该信息是否被允许且有必要?
- 该来源是否有权断言它?
- 它是一条观察信息、用户陈述、推断,还是模型生成的假设?
- 同样的需求是否可以由权威状态或被引用的产物来满足?
- 适用的范围、到期时间、置信度与更正路径是什么?
- 记住它是否会让相关人感到意外?
对推断需特别谨慎。“用户请求简短回答”是一条事件;“用户总是偏好简洁交流”是一种概括,可能是错的。保持区分。
读取策略:检索不等于确立事实
Section titled “读取策略:检索不等于确立事实”在检索时,先按主体(principal)、租户、目的、同意、敏感性与时间进行过滤,然后再考虑相似度。接着按任务相关性、来源权威性、时效性与置信度进行排序。连同内容一起返回来源与有效性的元数据。
当某条记忆与当前用户输入或权威状态冲突时,当前的经授权证据通常优先。一些冲突应当触发澄清,而不是自动适用优先级规则。上下文管道应将被检索的记忆标识为记忆,而不是将其无形地合并进治理指令中。
隐私与用户控制
Section titled “隐私与用户控制”记忆使数据在交互之间保持持久性,因此用户与运营者需要有意义的控制。产品与用户体验(UX)将负责呈现,但架构必须支持:
- 对实质性已存记忆的可见性;
- 更正、删除与遗忘;
- 在适当情况下按范围或全局启用;
- 保留与到期的强制执行;
- 租户与身份隔离;
- 删除对索引、缓存与派生视图的传播;以及
- 记录在决策中为何使用了某条记忆。
NIST AI 600-1 建议记录溯源与数据流,并在 GAI 生命周期中考虑隐私风险(NIST, 2024)。具体控制由本地法律与政策要求决定。
将对话记录当数据库
Section titled “将对话记录当数据库”当前事实从包含修订与猜测的对话中被重建。将权威状态单独存储,并把它投影到上下文中。
在没有未来目的的情况下不断扩张保留,提升隐私风险与检索噪声。应用写入策略并默认到期。
生成的摘要变成了事实来源
Section titled “生成的摘要变成了事实来源”有损的解释覆盖了源记录。将其保留为带溯源与再生成规则的派生视图。
相似性凌驾于范围之上
Section titled “相似性凌驾于范围之上”语义上接近的记忆跨越用户、租户、目的或时间边界。在排序前进行授权与范围过滤。
把推断当作事实存储
Section titled “把推断当作事实存储”模型的猜测成为稳定画像。标注推断、置信度、来源与到期;当后果重大时要求确认。
无声的最后写入者胜出(last-writer-wins)
Section titled “无声的最后写入者胜出(last-writer-wins)”并发的智能体或人覆盖了更新的状态。使用版本与显式冲突处理。
仅从主表删除
Section titled “仅从主表删除”嵌入、缓存、摘要与备份仍会暴露已删除内容。定义删除传播与记录其边界。
创建两份独立的约定:
State contract- source of truth, schema, legal transitions, versioning- writers, validators, concurrency and reconciliation- checkpoint and resume fields- model-visible projection and freshness
Memory contract- named future use, subject, owner, scope, and source- write gate, sensitivity, consent, validity, expiry- retrieval filters and ranking- conflict, correction, supersession, deletion, and audit- 是否区分了权威状态、事件历史、检查点、派生视图、记忆与产物?
- 每个实质性状态字段是否都有事实来源与受控的更新路径?
- 是否通过版本或显式冲突处理了陈旧写入、重试与并发参与者?
- 记忆是否有明确的未来用途和写入策略?
- 记忆是否连同来源、范围、有效性、敏感性、保留与所有者一起存储?
- 是否在记忆排序前应用了授权与租户过滤?
- 被检索的记忆在使用前是否经过归因与再验证?
- 当前证据是否能够更正或替代旧记忆?
- 人们在需要时是否可以检查、更正与删除实质性记忆?
- 删除与到期是否会传递到索引、缓存与派生视图?
参考文献及其使用方式
Section titled “参考文献及其使用方式”- Packer et al., “MemGPT: Towards LLMs as Operating Systems” — 管理有限模型上下文与外部分层的研究示例;用于说明记忆迁移,而非通用的生产架构。
- Park et al., “Generative Agents: Interactive Simulacra of Human Behavior” — 在仿真环境中结合存储观察、检索、反思与规划的同行评审研究示例。
- NIST AI 600-1, Generative Artificial Intelligence Profile — 支持溯源、隐私、数据治理与全生命周期评估的跨行业风险管理资料。
- Microsoft, “Guidelines for Human-AI Interaction” — 支持近期交互连续性、谨慎适配、粒度化反馈、全局控制与行为变更告知的同行评审论文。