agent为什么需要记忆?
LLM本身是无状态的,上下文窗口context有限,每次推理调用都是成本
有记忆能补充上下文,依据这个记忆来整合推理,而非每次都从新开始
解决:当前会话内的上下文连贯性+跨会话的知识持久化
对应短期记忆和长期记忆
1、短期记忆的载体是LLM 的context window。包括在这次会话中用户的输入、工具调用和模型输出。如果对话边长,整个的内容太多
3种方式控制context
- 上下文缩减,对历史的信息做摘要或整合,把细节丢掉换空间(可能存在摘要的完整性和准确性问题
- 上下文卸载,把完整内容存到外部存储,context留引用的ID,需要时候再取(把记忆内容放到另一个空间,可能存在检索不准的问题?
- 上下文隔离,多agent架构拆给子agent,每个agent只有自己那部分精简指令,主agent只收结果(记忆也设计多agent?每个agent还要处理自己的prompt和记忆
【Langchain摘要,google ADK压缩窗口,agentscope渐进压缩策略】