检索
功能总览
memory 模块提供了一套先进的、以任务为中心的长期记忆系统。
其核心目标是让代理能够从经验中学习、避免重复错误并持续提升任务完成能力。
核心功能
-
记忆存储与检索
- 核心单元: 记忆以Memo对象的形式存在,每个Memo包含一个insight(帮助完成任务的见解、技巧或信息)和一个可选的关联task。
- 向量化存储: 使用PostgreSQL配合pgvector扩展作为底层向量数据库。当存储一个Memo时,模块会使用LLM(在_prompter.py中)为insight或task生成多个"主题"(topics),并将这些主题的向量表示(Embeddings)存入数据库,映射到对应的Memo。
- 智能检索: 当代理接到新任务时,模块首先泛化任务描述,然后为泛化后的任务生成查询主题,通过向量相似度从数据库中检索出候选Memo。
-
多阶段LLM过滤与验证
- 这是一个关键特性,确保了检索到的记忆高度相关。
- 任务泛化: 在检索前,使用LLM(prompter.generalize_task)去除任务描述中的无关细节,抓住任务核心。
- 记忆验证: 检索到候选Memo后,再次调用LLM(prompter.validate_insight),判断每个insight对于当前特定任务是否真的有帮助,从而过滤掉不相关的记忆。
模块

-
分层结构:系统从上到下分为应用层、集成层、核心控制层、语言模型交互层和记忆存储层。这种分层设计确保了各部分的职责清晰,实现了高内聚、低耦合。工具与评估层则为核心控制层提供支持。
-
核心流程:
- 任务接收:一切始于应用层的用户向代理发起任务。
- 记忆调用:代理通过Teachability适配器与MemoryController(总控制器)交互。
- 智能处理:MemoryController是系统的大脑,它协调Prompter(用于LLM调用)、MemoryBank(用于记忆存取)和Grader(用于答案评估)来智能地处理任务、检索记忆或从失败中学习。
- 结果反馈:处理完成后,相关的记忆或洞察(Insights)会通过Teachability适配器返回,增强代理的上下文,帮助其更出色地完成任务。