Agent 工程实践 / 06 · 共 12 篇

Agent 工程实践 / 06

跨会话记忆:保存、检索与注入

外部状态 / 跨会话记忆的保存与使用

跨会话偏好从保存到实际使用,要经过检索和注入。外部档案更新后,当前对话里已经形成的副本也不会自动替换。

保存、检索与注入需要分别确认。本例区分用户、档案版本和本轮输入,观察记忆更新与撤销如何生效。

查看交互演示 ↓

机制分析

从一句原话,到本轮输入中的偏好

在演示会话甲中,用户甲提出“先给例子,再讲原理”。原话先进入当前会话,候选提取再生成一张偏好卡,带有用户、来源和主题。候选可以只在本次使用;选择保存后,写入器才把它归入外部档案,成为有效记录。

转入同一用户的会话乙,当前对话与工作台清空,外部档案仍保留。新任务是解释缓存原理。模型参数没有变化,档案中的一条记录也不会自行出现在输入里:检索先把相关偏好取到读取区,注入才把副本放进本轮输入。

状态尚不能据此断言的事
原话已表达尚不能断言它已经持久保存
档案已保存尚不能断言新任务检索到了它
副本已检索尚不能断言它已进入模型输入
记忆已注入尚不能保证模型一定正确使用或遵从

为什么撤销后,当前输入还可能带旧偏好?

外部档案和本轮输入是两个对象。更新为“先给结论”,改变的是有效记录与后续检索;已取出的第一版副本仍然留在读取区或输入台。撤销也不会倒流删除已经交给模型的内容,需要重新检索和重建输入,才能让新状态进入后续调用。

这不意味着所有记忆产品都使用相同流程,而是这类副本式设计需要面对的状态一致性问题。界面里一个“已删除”提示,不能同时代表存储撤销、缓存失效和当前推理上下文的更新。

工程取舍

记得更多,也可能带入更多过时信息

自动保存,还是明确选择?

自动提取能减少操作,但容易把临时任务条件当成长期偏好。让用户明确选择或提供可撤销的候选,有助于校正保存范围。无论采用哪种方式,记录来源、适用主题与有效状态,都比存下一句没有来历的“用户喜欢这样”更便于后续判断。

每次检索,还是复用已取出的副本?

复用副本可以减少读取成本,却可能继续持有旧版本;每轮重新取用有额外开销,也需要处理并发更新。可以在副本中携带记录版本与有效状态,在关键调用前决定是否重建。对偏好变化的容忍度,与对权限撤销或敏感状态的要求并不相同,应分别设计。

长期默认与本轮要求冲突时怎么办?

用户长期偏好“先举例”,但这次明确要求“只给结论”,应让当前指令的适用范围清楚可见。本例把本轮显式要求置于长期默认偏好之前;真实系统还要组织好不同来源的指令和内容,不能只靠把旧偏好附在上下文末尾,就认为冲突已经解决。

落到实现

记忆检索也需要身份与范围

查到相似记录,不代表有权使用。应先限定用户与访问范围,再结合主题选择适用内容。排障时分别检查有效档案、检索副本和已注入内容,能判断问题来自归属错误、检索漏召回、旧副本或模型使用偏差。

本页只使用虚构用户和本地演示状态,不保存真实偏好到账号或服务器。会话切换清空的是演示工作台,不等于真实产品必须删除历史会话数据库;保存外部记录也没有训练或更新模型参数。

长期记忆的价值,在于让适用的记录在合适的时刻进入当前任务。存档数量之外,仍要检查身份、版本和实际注入。

交互演示 · 跨会话记忆读写装置

比较保存、检索、注入,以及更新后的旧副本
00:00 / 00:00
当前会话输入台点击名称了解组件作用
会话切换甲 乙会话甲 / 用户甲候选 · 待保存用户乙用户甲历史版本外部记忆 · 按用户取用有效记录 0读取区本轮任务偏好副本模型
当前会话内容0 条
当前用户有效档案0 条
本轮注入记忆0 条
旁白字幕点击“连续讲解”,观察保存、检索和注入的区别。
记忆档案与更新实验

亲手操作 · 保存、检索与注入分开

当前会话
外部档案
本轮使用
外部档案尚未保存
读取与注入尚未检索

只有写入归档后才算保存;取出副本后还要注入。本页使用虚构数据,档案只在本页演示状态中保留。

状态对照 · 外部原件与本轮副本

有效档案
已取出的副本
本轮已注入

检索规则、候选提取和回答均为教学预设;保存、过滤、版本与注入由本页代码执行。没有重新训练模型。

对照实验:用户、更新、撤销与当前副本

更新或撤销只影响外部有效记录与后续检索。已经取出、注入的旧副本保留,直到重建本轮输入;本例将当前显式要求置于长期默认偏好之前,不代表所有模型都能保证遵从。

同一用户的两个演示会话 · 不读取真实用户资料 · 不持久化到账号、服务器或浏览器档案 · 离开页面后自动暂停

登录后收藏评论 0

登录后发表评论

暂无评论。