Memento参数化记忆模块详解:构建可扩展智能体记忆系统

发布时间:2026/7/24 20:56:23
Memento参数化记忆模块详解:构建可扩展智能体记忆系统 Memento参数化记忆模块详解构建可扩展智能体记忆系统【免费下载链接】MementoOfficial Code of Memento: Fine-tuning LLM Agents without Fine-tuning LLMs项目地址: https://gitcode.com/gh_mirrors/memento20/MementoMemento是一个创新的开源项目它提供了一种无需微调大型语言模型LLM即可优化智能体性能的方法。其中参数化记忆模块是Memento的核心组件它通过高效的案例检索和学习机制显著提升了智能体在复杂任务中的表现。本文将深入解析Memento参数化记忆模块的工作原理、实现细节和实际应用效果。什么是参数化记忆模块参数化记忆模块是Memento系统中的关键组件它允许智能体存储、检索和利用过去的经验来改进决策过程。与传统的非参数化方法如基于规则的记忆相比参数化记忆模块使用深度学习模型来编码和检索记忆从而实现更高效、更智能的经验复用。在Memento中参数化记忆模块主要由两个部分组成记忆检索器CaseRetriever和记忆池Memory Pool。记忆检索器负责根据当前任务从记忆池中找到最相关的历史案例而记忆池则存储了智能体过去的经验和解决方案。参数化记忆模块的核心组件记忆检索器CaseRetriever记忆检索器是参数化记忆模块的核心它使用预训练的语言模型如RoBERTa来计算当前任务与记忆池中案例的相似度。Memento采用了SimCSESimple Contrastive Learning of Sentence Embeddings技术来优化句子表示从而提高检索的准确性。# 记忆检索器的核心实现 class CaseRetriever: def __init__(self, model_path, model_nameprinceton-nlp/sup-simcse-roberta-base): self.tokenizer AutoTokenizer.from_pretrained(model_name) backbone AutoModel.from_pretrained(model_name) self.model MemoryRetrieverClassifier(backbone).to(self.device) self.model.load_state_dict(torch.load(model_path)) self.model.eval() def retrieve(self, natural_prompt, icl_pool, metadata): probs self._score_batch([natural_prompt] * len(icl_pool), icl_pool) # 根据相似度分数排序并返回结果记忆池Memory Pool记忆池以JSONL格式存储每个条目包含案例描述、解决方案计划和标签正面/负面。记忆池的加载和管理由load_pool函数处理def load_pool(path) - Tuple[List[str], List[Dict[str, Any]]]: pool [] metadata [] with open(path, r, encodingutf-8) as f: for line in f: obj json.loads(line) case obj.get(case) plan obj.get(plan) pool.append(build_icl_text(case, plan)) metadata.append({ case: case, plan: plan, case_label: obj.get(case_label, unknown) }) return pool, metadata参数化记忆的工作流程Memento参数化记忆模块的工作流程可以分为以下几个关键步骤记忆加载系统启动时从memory/memory.jsonl加载记忆池。案例检索当新任务到来时记忆检索器根据任务描述从记忆池中检索最相关的案例。提示构建根据检索到的案例包括正面和负面例子构建提示辅助LLM生成解决方案。执行与反馈执行生成的解决方案并根据结果更新记忆池添加新案例或更新现有案例的标签。图1Memento在不同迭代次数下的性能对比显示参数化CBR基于案例的推理始终优于非参数化CBR和无CBR的基线模型性能优势与实验结果Memento的参数化记忆模块在多个基准测试中展现出显著优势。通过对比实验我们可以看到1. 迭代学习能力如图1所示随着迭代次数的增加使用参数化CBR的Memento模型性能持续提升最终准确率达到85%以上明显优于非参数化CBR和无CBR的模型。2. 分布外OOD泛化能力在分布外任务上Memento参数化记忆模块表现出更强的泛化能力图2Memento在各种OOD任务上的准确率提升百分比显示参数化记忆显著提高了模型的泛化能力3. 任务适应性在不同类型的任务上Memento参数化记忆模块都能提供稳定的性能提升图3Memento在DeepResearcher、SimpleQA和HLE任务上的表现均优于其他执行器4. 不同难度级别的表现在不同难度级别的测试集上Memento始终保持领先图4Memento在Val和Test集不同难度级别上的准确率显著优于其他对比系统如何使用Memento参数化记忆模块要在您的项目中使用Memento的参数化记忆模块只需按照以下步骤操作克隆仓库git clone https://gitcode.com/gh_mirrors/memento20/Memento安装依赖pip install -r requirements.txt使用参数化记忆CBR客户端from client.parametric_memory_cbr import HierarchicalClient client HierarchicalClient(meta_modelgpt-4.1, exec_modelo4-mini) await client.connect_to_servers(server_paths) client._load_memory() # 加载记忆池 # 处理查询 result await client.process_query(你的问题)核心代码解析记忆检索与提示构建参数化记忆模块的核心功能在client/parametric_memory_cbr.py中实现。关键函数包括_retrieve_cases根据查询检索相关案例build_prompt_from_cases使用检索到的案例构建提示def build_prompt_from_cases(task_text: str, retrieved_cases: list[dict]) - str: positive_cases: list[dict] [] negative_cases: list[dict] [] for case in retrieved_cases: if case.get(case_label) positive: positive_cases.append(case) elif case.get(case_label) negative: negative_cases.append(case) # 构建包含正负面案例的提示 # ...记忆更新机制Memento会根据任务执行结果自动更新记忆池def save_memory_entry(query: str, plan: str, case_label: str): with open(MEMORY_JSONL_PATH, a, encodingutf-8) as f: memory_entry { case: query, plan: plan, case_label: case_label # positive 或 negative } f.write(json.dumps(memory_entry, ensure_asciiFalse) \n)总结与展望Memento的参数化记忆模块通过结合深度学习和基于案例的推理为构建可扩展的智能体记忆系统提供了一种创新方案。它不仅提高了智能体的决策质量和效率还显著增强了模型的泛化能力和适应性。未来Memento团队计划进一步优化记忆检索算法探索多模态记忆表示并研究如何在保持性能的同时减少计算开销。我们相信参数化记忆将成为下一代智能体系统的核心组件为实现更高效、更智能的AI助手铺平道路。如果您对Memento参数化记忆模块感兴趣欢迎通过项目仓库参与贡献或提出建议。让我们一起构建更智能的AI系统【免费下载链接】MementoOfficial Code of Memento: Fine-tuning LLM Agents without Fine-tuning LLMs项目地址: https://gitcode.com/gh_mirrors/memento20/Memento创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考