大型语言模型(LLMs)已经彻底改变了基于代理的系统开发,但“记忆管理”仍是一个棘手的难题。记忆机制能让代理保持上下文、回忆关键信息,并在更长时间内实现自然互动。尽管许多框架假设用户可以直接访问GPT或其他专有API,但本地模型在某些情况下的表现甚至可能超过GPT-3等系统。这为定制化解决方案提供了机会。以下将探讨一些针对记忆功能的项目、框架和工具,分析它们如何支持代理系统的发展。
本地模型的挑战与机遇
许多代理框架深度绑定了专有LLM,硬编码的API接口让本地模型的集成异常困难。虽然本地模型理论上可以在某些场景中超越专有系统,但其实施往往并不简单。用户通常不得不通过曲线救国的方式,将API请求重定向到本地服务器,而这可能与框架的原始架构或设计理念相冲突。这种局限性催生了众多专注于记忆功能的项目,旨在弥补这一缺口。
Letta https://github.com/letta-ai/letta
Letta是一个开源框架,专为构建具备状态管理功能的LLM应用设计。它的设计灵感源自MemGPT论文,提出通过工具调用让LLM自我编辑记忆。Letta以服务器形式运行,支持通过SDK集成到Python应用中。推荐与vLLM和Ollama模型(如Q6或Q8)配合使用。其核心优势在于记忆整合和可扩展的服务器操作。
Memoripy https://github.com/caspianmoon/memoripy/tree/master
Memoripy专注于记忆的优先级管理机制:重要记忆优先保留,次要记忆被逐渐弱化。目前支持Ollama和OpenAI API,未来将扩展兼容性。它的创新记忆组织方式,能够显著优化代理系统的交互体验。
Mem0 (https://github.com/mem0ai/mem0)
Mem0被称为“智能记忆层”,默认使用GPT-4o模型,同时支持通过LiteLLM访问开源模型。它是一种灵活的选择,适合想要探索专有系统替代方案的开发者。
Cognee (https://github.com/topoteretes/cognee)
Cognee提供模块化的提取、认知与加载(ECL)管道,专注于高效文档处理和结构化数据准备。它兼容所有OpenAI端点,并明确支持Ollama及Mixtral-8x7B等模型,非常适合高强度的记忆任务。
Haystack Basic Agent Memory Tool (https://haystack.deepset.ai/integrations/basic-agent-memory)
作为Haystack框架的一部分,这款工具为代理提供短期和长期记忆功能,与整个Haystack生态系统无缝集成,适合构建多样化的记忆支持应用。
Memary (https://github.com/kingjulio8238/Memary)
Memary专为代理系统设计,能从交互中自动生成记忆。它默认假设用户采用Ollama模型,大幅简化了本地化框架的集成。
Kernel-Memory (https://github.com/microsoft/kernel-memory)
由微软开发的实验项目,Kernel-Memory是为其他服务提供记忆功能的插件。虽然尚处于实验阶段,但它为模块化记忆系统提供了宝贵的研究方向。
Zep (https://github.com/getzep/zep)
Zep使用时间知识图谱记录用户信息的演变过程,支持所有OpenAI兼容API,并明确支持LiteLLM作为代理。它提供社区版和云版本,云版本还具备导入非聊天数据的功能,部署选择十分灵活。
MemoryScope (https://github.com/modelscope/MemoryScope)
MemoryScope是一个专为聊天机器人设计的记忆数据库,提供记忆整合和反思功能,支持Qwen模型,在记忆管理方面表现出色。
LangGraph Memory Service (https://github.com/langchain-ai/memory-template?tab=readme-ov-file)
这是一款用于LangGraph代理的记忆服务模板,能为开发定制解决方案提供基础。
Txtai (https://github.com/neuml/txtai/tree/master)
尽管主要定位为检索增强生成(RAG)工具,Txtai提供了许多可适应记忆系统的示例,展现了强大的多功能性。
Langroid (https://github.com/langroid/langroid)
Langroid提供向量存储和来源引用功能,是构建定制记忆解决方案的有力候选。
LangChain Memory (https://github.com/Ryota-Kawamura/LangChain-for-LLM-Application-Development/blob/main/L2-Memory.ipynb)
LangChain以模块化设计著称,支持记忆集成,适合构建复杂记忆系统。
WilmerAI
WilmerAI平台内置记忆功能,为特定场景提供了便利的解决方案。
EMENT
作为一个研究项目,EMENT专注于提升LLM的长期情景记忆,结合嵌入和实体提取技术,显著增强记忆留存能力。
结语
随着对更高效、更灵活的解决方案需求日益增加,代理系统的记忆管理领域正在快速发展。尽管许多框架仍以专有API为核心设计,但针对本地模型和开源系统的关注正推动这一领域的创新。从Letta和Memoripy等项目,到Cognee和Zep等工具,开发者有多种选择来打造支持记忆的智能代理。不论是借助现有框架,还是打造定制解决方案,未来的应用潜力无穷,令人期待。