观察
观察是从多条原始事实和经验中自动合并出的高层模式。它不是单条事实的简单保存,而是系统在积累多条相关记忆后,对其中重复、相似或持续出现的信息进行归纳,形成更稳定的理解。
例如,系统多次记录到:用户偏好暗色模式+用户关闭了亮色模式自动切换+用户多次选择深色主题。那么这些原始事实可以被合并为一条观察:用户持续偏好暗色模式。
如何产生
多条原始事实和经验在经过系统自动整合后,会形成更稳定的记忆。观察是在存储之后,由系统的知识整合机制自动产生。当用户或 Agent 持续写入记忆后,系统会先提取原始事实和经验,再对相关内容进行分组和合并。如果多条事实和经验反复指向同一个模式,系统就会使用 LLM 将它们提炼为一条更高层的观察。
作用
如果系统只保存原始事实和经验,Agent 可能会反复看到很多相似记录;而有了观察后,Agent 可以直接理解为合并后的高层模式,减少重复信息干扰。因此,观察能减少上下文噪声,并提升检索和推理的稳定性。
| 作用 | 说明 |
|---|---|
| 合并重复信息 | 将多条相似事实和经验整合成一条更清晰的模式 |
| 提升检索质量 | 观察的检索优先级高于普通原始事实和经验,更容易被召回 |
| 支持综合推理 | 反思可以基于观察进行更稳定的总结和判断 |
| 生成心智模型基础 | 观察可以作为心智模型生成的重要依据 |
新鲜度状态
每条观察都有新鲜度状态,反映它被近期证据支持的程度。这样可以让系统在使用长期记忆时兼顾历史信息和近期变化。
| 状态 | 含义 |
|---|---|
| new | 新生成的观察,仍在积累证据 |
| strengthening | 近期有更多证据支持,观察正在增强 |
| stable | 长期有稳定证据支持,可信度较高 |
| weakening | 近期支持证据减少,观察可能发生变化 |
| stale | 长时间没有新证据支持,观察可能已经过时 |
例如,如果用户过去多次选择暗色模式,系统可能形成"用户持续偏好暗色模式"的观察。但如果用户近期开始频繁切换到亮色模式,这条观察的状态可能从 stable 逐渐变为 weakening,甚至 stale。
Consolidation 整合
Consolidation 整合是存储后的后台合成流程,用于将分散的事实和经验进一步整理为更高层的观察。它不会影响存储主流程的返回,但会影响观察何时生成、何时可被检索或反思使用。
存储返回后异步运行
当存储正常完成后,系统会解析当前记忆库的配置。如果配置中启用了观察,系统会提交一个后台 Consolidation 任务。该任务以异步方式运行,不会阻塞存储返回。因此,存储成功只代表事实和经验类的记忆已经写入完成,并不代表观察生成完成,即不能假设存储返回后观察立即可用。
观察层的维护
在该阶段,系统会将新写入的事实和经验,和已有的相关观察一起交给 LLM 处理。LLM 会根据新旧信息之间的关系,对观察进行创建、更新、删除等操作。
一致性保证
为了保证观察层与底层数据保持一致,当源记忆或文档被删除时,系统会同步维护相关观察。
成本、延迟和一致性预期
启用观察后,存储记忆的主流程仍然可以快速返回,但系统会额外增加一条后台 LLM 工作流。
生产环境需要关注以下影响:
| 影响项 | 说明 |
|---|---|
| LLM 成本 | Consolidation 会额外调用 LLM,调用次数受 batch size、重试和事实和经验数量影响。 |
| 后台延迟 | 从新的事实和经验写入到观察生成之间存在异步延迟,不能假设立即可见。 |
| 失败重试 | LLM 限流、超时或格式失败可能导致 failed_consolidation 增加,需要监控和恢复。 |
| 在线检索变化 | 默认检索会把观察加入候选池,返回结果可能从多条原始事实和经验变成一条综合观察。 |
| 追溯源事实时的 token 开销 | 对源事实的追踪 include.source_facts 或在反思阶段包括源事实时会增加响应体和上下文 token。 |
使用建议
观察是"长期、可复用、跨会话、可演化"的记忆形式。它适合帮助系统沉淀稳定模式,但并不替代原本的事实和经验记忆,也不适用于所有查询场景。
优势
| 优势 | 说明 | 边界 |
|---|---|---|
| 压缩长期知识 | 将多条相关事实和经验合成一条更稳定的长期认知,减少上下文开销。 | 不是所有事实都会合并;合并效果依赖材料表达、提示词和 consolidation LLM 判断。 |
| 保留证据链 | 观察能记录来源;启用 include.source_facts 时,检索阶段会返回源事实的 id 和明细。 |
审计或逐字引用仍应回到底层原本的事实和经验及原始文档切片。 |
| 支持知识演化 | 新事实可以更新已有观察,并保留旧版本。 | 下游答案是否变好还取决于检索/反思阶段是否用到相关观察。 |
| 改善长期问题的记忆检索 | 默认检索可以同时召回客观事实、主观经验和观察这三类记忆。 | 某次具体事件、原始措辞、精确出处仍然更适合事实和经验类记忆。 |
| 改善反思推理的输入 | 反思可以使用更高层的观察作为证据输入。 | 不应理解为所有小样本都会从错变对;事实和经验足够全时也可能答对。 |
使用场景
观察更适合用于长期稳定、反复出现、需要跨会话理解的问题,例如:
- 用户长期偏好;
- 客户画像;
- 稳定项目背景;
- 跨会话反复出现的问题;
- "现在是否仍然成立"的演化问题。
对于需要还原具体事实、原始表达或精确来源的问题,建议仍使用事实和经验,例如:
- 某次具体事件;
- 原始措辞;
- 精确出处;
- 需要逐条审计的证据。
常见误区
- 存储返回后观察已经可用:观察是通过后台任务异步合成。
- 观察会替代事实和经验:事实和经验仍然保留,观察是额外的长期知识层。
- 观察模块的提示词是对默认提示词的补充:会替换默认提示词文本。如果写得过窄,可能导致观察变少;但通用处理规则仍会保留。
- 开启观察一定提升所有问题准确率:主要改善长期偏好、跨会话模式和演化类问题。具体事件查询仍可能更依赖事实和经验类型的记忆。
评价此篇文章
