开源AI Memory项目框架总结

1. Graphiti

要点:构建时间感知知识图谱,支持动态关系演化和上下文变化,适用于需要时间维度关联数据的AI智能体。

https://github.com/getzep/graphiti

又是个基于图的

2. Letta

要点:提供白盒化、模型无关的框架,支持透明长期记忆与高级推理能力,内置可视化调试工具,适用于复杂场景的智能体开发。

这玩意太重了。。不好

3. Mem0

要点:结合LLM与向量存储,主动学习用户交互信息并通过语义检索记忆,适用于动态适应个性化需求的AI智能体。

https://github.com/mem0ai/mem0

Apache License 2.0

图片

这个API我是真的喜欢

4. Memary

要点:模拟人类记忆机制,自动更新知识图谱中的实体、偏好与交互历史,适用于需要持续进化的对话型智能体。

https://github.com/kingjulio8238/Memary

MIT License

这个项目不活跃

又是个基于图的

5. Cognee

要点:整合知识图谱与RAG技术,构建动态语义记忆系统,支持多源信息关联,适用于企业级智能体的知识管理需求。

https://github.com/topoteretes/cognee

Apache License 2.0

import cognee import asyncio

async def main(): # Add text to cognee await cognee.add("Natural language processing (NLP) is an interdisciplinary subfield of computer science and information retrieval.")

# Generate the knowledge graph
await cognee.cognify()

# Query the knowledge graph
results = await cognee.search("Tell me about NLP")

# Display the results
for result in results:
    print(result)

if name == 'main': asyncio.run(main())

这是个基于图的系统

6. Memobase

要点:基于用户配置的长期记忆系统,支持同步进化与个性化数据存储,适用于虚拟角色、教育工具等生成式AI应用。

https://github.com/memodb-io/memobase

Apache License 2.0

图片

这是一个让agent记住用户是谁的一个,http封装后的独立的,apache 2.0的记忆体系统

还行吧,估计不会太复杂的


总结说明

以上框架均聚焦于AI智能体的长期记忆管理,通过知识图谱、语义检索、动态更新等技术,解决传统RAG在上下文维持与持续学习中的不足,覆盖从个性化助手到企业级应用的多样化场景。


以下是基于多个维度的开源AI Memory框架对比表格,涵盖技术特点、适用场景、许可协议等关键维度:

项目名称

核心技术

存储方式

主要优势

适用场景

许可协议

活跃度/备注

Graphiti

时间感知知识图谱,动态关系演化

图数据库

支持时间维度数据关联,上下文变化追踪

需时间维度分析的AI智能体

未明确

基于图结构

Letta

白盒化框架,模型无关设计

未明确

透明记忆管理,内置可视化调试工具

复杂推理场景的智能体开发

未明确

项目较重,灵活性低

Mem0

LLM + 向量存储,主动学习用户交互

向量数据库

语义检索优化,动态个性化适应,API友好

个性化助手、动态交互场景

Apache 2.0

活跃,API设计优秀

Memary

模拟人类记忆机制,自动更新知识图谱

图数据库

实体与偏好持续进化,对话历史管理

长期对话型智能体

MIT

项目不活跃,基于图结构

Cognee

知识图谱 + RAG,多源信息关联

图数据库

动态语义记忆,企业级知识管理

企业智能体、多源知识整合

Apache 2.0

基于图结构,支持异步操作

Memobase

用户配置驱动的长期记忆

独立存储(HTTP)

轻量化,支持个性化数据同步进化

虚拟角色、教育工具等生成式AI

Apache 2.0

独立记忆系统,复杂度适中

关键维度说明:

  1. 核心技术

    • 图数据库(Graphiti/Memary/Cognee)适合复杂关系,但可能增加实现复杂度;向量存储(Mem0)更侧重语义检索。

    • Mem0和Memobase更轻量,适合快速集成;Letta和Cognee偏向企业级或复杂场景。

  2. 许可协议

    • Apache 2.0项目(Mem0/Cognee/Memobase)允许商用修改,MIT(Memary)限制较少。

  3. 活跃度

    • Mem0和Cognee近期更新较多;Memary和Graphiti活跃度较低,可能影响长期维护。

  4. 适用场景

    • 个性化助手:Mem0(动态适应)或Memobase(用户配置)。

    • 企业知识管理:Cognee(多源整合)或Letta(透明调试)。

    • 时间敏感分析:Graphiti(时间感知图谱)。

  5. API/集成难度

    • Mem0和Memobase提供明确API,适合快速部署;图数据库项目需额外技术栈支持。

总结建议:

  • 优先轻量级:选Mem0(语义检索)或Memobase(HTTP封装)。

  • 需复杂关系管理:评估Cognee或Graphiti,但需考虑开发成本。

  • 企业级需求:Cognee或Letta(若接受复杂度)。


最后我选择了Mem0先试试

原因:api喜欢,有user_id概念,就两个api,add和search,就很简单,crewai、agno其实都有支持

apache 2.0的协议

比较友好

https://docs.mem0.ai/quickstart#install-package

图片

官方文档

创建环境,uv老三样

PS E:\development> mkdir mem0_demo1
目录: E:\development
Mode      LastWriteTime         Length Name
----      -------------         ------ ----
d-----    2025/4/1 10:30        mem0_demo1
PS E:\development> cd .\mem0_demo1\
PS E:\development\mem0_demo1> uv init
Initialized project `mem0-demo1`
PS E:\development\mem0_demo1> uv venv
Using CPython 3.12.8
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate
PS E:\development\mem0_demo1> .venv\Scripts\activate

安装包

uv pip install mem0ai

编码:

https://docs.mem0.ai/open-source/python-quickstart

图片

图片

参考ollama的例子:

https://docs.mem0.ai/examples/mem0-with-ollama

图片

报错了

先补一下依赖

uv add ollama

啊,又报错了

图片

应该是维度问题

uv add chromadb

为了测试,我先切成了chromadb

https://docs.mem0.ai/components/vectordbs/dbs/chroma#chroma

文档地址

记住几个事情:这玩意是依赖tool call的,所以驱动它的话,需要使用V3而不是R1,我用的是V3的最新版本

import os
from mem0 import Memory


# -----------------------------------------------------------------------------
# 使用 PowerShell
# 打开 PowerShell(在 “开始” 菜单中搜索 “PowerShell” 并打开)。
# 要为当前用户设置环境变量,可以使用
# $env:OPENAI_API_KEY = "your_api_key"
# 命令。
# 同样,将"your_api_key"替换为实际的 API 密钥。不过,这种方式设置的环境变量只在当前 PowerShell 会话中有效。

# 要永久设置环境变量(对于当前用户),可以使用
# [Environment]::SetEnvironmentVariable("HUOSHAN_API_KEY","your_api_key","User")。
# 如果要设置系统级别的环境变量(需要管理员权限),可以将最后一个参数改为"Machine",
# 例如
# [Environment]::SetEnvironmentVariable("TENCENT_API_KEY","your_api_key","Machine")。
# Set up OpenAI API key
# 记得使用以上方法后,需要关闭vscode后重启vscode,之后点击F5运行python脚本的时候才能生效


my_api_key = os.getenv("HUOSHAN_API_KEY")

config = {
    "llm": {
        "provider": "deepseek",
        "config": {
            "model": "ep-20250328074804-dj5t9",
            "api_key": my_api_key,
            "temperature": 0,
            "max_tokens": 2000,
            "deepseek_base_url": "https://ark.cn-beijing.volces.com/api/v3/",  # Ensure this URL is correct
        },
    },
    "embedder": {
        "provider": "ollama",
        "config": {
            "model": "bge-m3:latest",
            # Alternatively, you can use "snowflake-arctic-embed:latest"
            "ollama_base_url": "http://localhost:11434",
        },
    },
    "vector_store": {
        "provider": "chroma",
        "config": {
            "collection_name": "test",
            "path": "db",
        }
    }
}

# Initialize Memory with the configuration
m = Memory.from_config(config)


# Add a memory
m.add("I'm visiting Paris", user_id="john")

# Retrieve memories
memories = m.get_all(user_id="john")

print("Memories:", memories)

related_memories = m.search(query="What do you know about me?", user_id="john")

print("Related Memories:", related_memories)

#最终输出:


# Memories: {'results': [{'id': '6f56158a-aac5-41fb-965e-78f36a7bb1dd', 
#                         'memory': 'Visiting Paris', 
#                         'hash': '7326ebb98166c98f0e32fdb5fc065a4b', 
#                         'metadata': None, 
#                         'created_at': '2025-03-31T19:59:01.442850-07:00', 
#                         'updated_at': None, 'user_id': 'john'}]}

# Related Memories: {'results': [{'id': '6f56158a-aac5-41fb-965e-78f36a7bb1dd', 
#                                 'memory': 'Visiting Paris', 
#                                 'hash': '7326ebb98166c98f0e32fdb5fc065a4b', 
#                                 'metadata': None, 'score': 854.681849478203, 
#                                 'created_at': '2025-03-31T19:59:01.442850-07:00', 
#                                 'updated_at': None, 'user_id': 'john'}]}

 如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。


👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。


1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

 

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐