显著性并不等于延续价值
大多数人构建智能体记忆的方式都是错误的。
他们关注存储。他们使用向量数据库或巧妙的摘要器。他们认为只要保存所有内容,智能体就会无所不知。
他们错了。
当你有数百个会话时,你无法阅读全部内容。如果你的智能体在开始新会话时处于“冷启动”状态,它会浪费时间。如果它带着过多的噪音开始,它就会犯错。
问题在于筛选。大多数人混淆了“显著性”与“延续价值”。
- 显著性告诉你上一个会话中哪些内容比较“响亮”(引人注目)。
- 延续价值告诉你下一个会话为了正常运行需要什么。
关于变量名的激烈争论具有很高的显著性。但如果该名称不影响后续代码,它的延续价值就是零。如果你将其带入后续会话,只会增加噪音。
我运行的记忆流水线基于以下规则:
机械显著性优先。 使用确定性评分器来寻找重要时刻。权重应将“纠错”置于“简单评论”之上。每个高亮内容必须链接回原始转录文本。不要让模型在没有来源的情况下捏造事实。
其次是综合。 仅使用 LLM 为高亮内容增加一层含义。如果你的高亮内容很糟糕,摘要只会是充满自信的胡言乱语。
使用检索时简报。 为每个项目构建一个类似
INDEX.md的文件。智能体在会话开始时读取此文件。不应由模型即时生成此简报。它必须是一个你可以手动打开并编辑的纯文本文件。
要构建更好的记忆,你需要的不仅仅是一份重要事项清单。你需要:
- 两个评分:一个衡量其声量大小(显著性),另一个衡量其对后续的重要性(延续价值)。
- 记忆分类:将活跃决策、操作约束和未完成的任务(open loops)分开。
- 过期日期:每条记忆都必须有“消亡”的理由。如果没有过期机制,上下文会阻塞你的系统。
- 触发器:准确定义某条记忆何时应该出现。
目标是最小化恢复成本。
恢复成本是指智能体追赶上上次中断进度所需消耗的 Token 或分钟数。如果你的记忆流水线只是在做表面功夫,你的恢复成本将居高不下。
停止构建更大的存储空间。开始构建更好的筛选机制。
Source: https://dev.to/jugeni/salience-is-not-carry-value-notes-from-a-running-session-memory-pipeline-4dda
Optional learning community: https://t.me/GyaanSetuAi
