跳到主要内容

Mem0: 代理的长期记忆与个性化

Mem0 logo

Mem0 平台为大型语言模型(LLMs)提供了一个智能、自我改进的记忆层,使开发者能够创建随着每次用户互动而发展的个性化AI体验。

高层次上,Mem0 平台为 AI 应用提供了全面的内存管理、自我提升的内存能力、跨平台的一致性和集中式内存控制。如需更多信息,请查看 Mem0 平台文档

🧠 全面的内存管理管理长期、短期、语义和情景记忆
🔄 自我改进的记忆从用户交互中学习的自适应系统
🌐 跨平台一致性在各种AI平台上提供统一的用户体验
🎛️ 集中式记忆控制轻松存储、更新和删除记忆
🚀 简化开发采用API优先的方法以实现简化的集成
Activity Dashboard

安装

Mem0平台与各种AI应用无缝协作。

  1. 注册:Mem0 Platform 创建一个账户

  2. 生成API密钥: 在您的Mem0仪表板中创建一个API密钥

  3. 安装 Mem0 SDK:

pip install mem0ai
  1. 配置您的环境: 将您的API密钥添加到环境变量中
MEM0_API_KEY=<YOUR_MEM0_API_KEY>
  1. 初始化 Mem0:
from mem0ai import MemoryClient
memory = MemoryClient(api_key=os.getenv("MEM0_API_KEY"))

初始化 Mem0 后,你可以在你的 AI 应用程序中开始使用其内存管理功能。

功能

  • 长期记忆: 在不同会话中持久地存储和检索信息
  • 短期记忆: 在单个交互中管理临时信息
  • 语义记忆: 组织和检索概念知识
  • 情节记忆: 存储和回忆特定的事件或经历
  • 自我改进系统: 基于用户交互持续优化理解

常见使用场景

  • 个性化学习助手
  • 客户支持AI代理
  • 医疗助理
  • 虚拟伙伴

Mem0平台示例

使用Mem0的AutoGen示例

此示例演示了如何使用Mem0与AutoGen来创建一个具有记忆功能的对话AI系统。

import os
from autogen import ConversableAgent
from mem0 import MemoryClient

# Set up environment variables
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"
os.environ["MEM0_API_KEY"] = "your_mem0_api_key"

# Initialize Agent and Memory
agent = ConversableAgent(
"chatbot",
llm_config={"config_list": [{"model": "gpt-4", "api_key": os.environ.get("OPENAI_API_KEY")}]},
code_execution_config=False,
function_map=None,
human_input_mode="NEVER",
)

memory = MemoryClient(api_key=os.environ.get("MEM0_API_KEY"))

# Insert a conversation into memory
conversation = [
{
"role": "assistant",
"content": "Hi, I'm Best Buy's chatbot!\n\nThanks for being a My Best Buy TotalTM member.\n\nWhat can I help you with?"
},
{
"role": "user",
"content": "Seeing horizontal lines on our tv. TV model: Sony - 77\" Class BRAVIA XR A80K OLED 4K UHD Smart Google TV"
},
]

memory.add(messages=conversation, user_id="customer_service_bot")

# Agent Inference
data = "Which TV am I using?"

relevant_memories = memory.search(data, user_id="customer_service_bot")
flatten_relevant_memories = "\n".join([m["memory"] for m in relevant_memories])

prompt = f"""Answer the user question considering the memories.
Memories:
{flatten_relevant_memories}
\n\n
Question: {data}
"""

reply = agent.generate_reply(messages=[{"content": prompt, "role": "user"}])
print("Reply :", reply)

# Multi Agent Conversation
manager = ConversableAgent(
"manager",
system_message="You are a manager who helps in resolving customer issues.",
llm_config={"config_list": [{"model": "gpt-4", "temperature": 0, "api_key": os.environ.get("OPENAI_API_KEY")}]},
human_input_mode="NEVER"
)

customer_bot = ConversableAgent(
"customer_bot",
system_message="You are a customer service bot who gathers information on issues customers are facing.",
llm_config={"config_list": [{"model": "gpt-4", "temperature": 0, "api_key": os.environ.get("OPENAI_API_KEY")}]},
human_input_mode="NEVER"
)

data = "What appointment is booked?"

relevant_memories = memory.search(data, user_id="customer_service_bot")
flatten_relevant_memories = "\n".join([m["memory"] for m in relevant_memories])

prompt = f"""
Context:
{flatten_relevant_memories}
\n\n
Question: {data}
"""

result = manager.send(prompt, customer_bot, request_reply=True)

访问此笔记本中的完整代码:Mem0 with AutoGen

这个例子展示了:

  1. 设置AutoGen代理和Mem0内存
  2. 将对话添加到Mem0内存
  3. 使用 Mem0 检索相关记忆以进行代理推理
  4. 使用记忆增强上下文实现多代理对话

有关更多Mem0示例,请访问我们的文档