从零开始:如何让AI Agent记住你的喜好?MemMachine长期记忆系统搭建指南(建议收藏)

从零开始:如何让AI Agent记住你的喜好?MemMachine长期记忆系统搭建指南

MemMachine 是一个开源的通用记忆层框架,专为 AI Agent 设计,用于实现跨会话的长期记忆管理。它允许 AI 代理存储和检索用户偏好、历史交互和上下文信息,使 Agent 能够“越用越聪明”。MemMachine 支持多种记忆类型,包括短期(工作)记忆、长期(持久)记忆和个性化(档案)记忆。通过关系型数据库和图数据库的结合,它能高效处理结构化数据和复杂关系。以下是基于官方文档和开源项目的完整搭建指南,适用于 Python 环境。建议从简单示例开始实践。

1. 理解 MemMachine 的核心概念

MemMachine 的设计灵感来源于人类记忆系统,将 AI Agent 的记忆分为:

  • 工作记忆(Episodic/短期):存储当前会话的上下文,如最近的对话细节。
  • 持久记忆(长期):跨会话存储历史数据,支持向量搜索和检索,用于回忆过去事件。
  • 个性化记忆(Profile/档案):存储用户偏好(如饮食习惯、兴趣爱好),通过结构化数据实现个性化响应。

架构采用客户端-服务器模式:服务器管理存储和检索,客户端 SDK 用于集成到你的 AI Agent 中。MemMachine 支持 RESTful API 和 MCP(Model-Compute-Protocol)协议,便于与 LangChain、AutoGPT 等框架集成。

记忆类型作用存储方式
工作记忆当前对话上下文内存或临时数据库
持久记忆历史事件和知识图数据库(关系网络)
个性化记忆用户偏好和档案关系型数据库(结构化事实)

2. 环境准备和安装

前置条件
  • Python 3.9+(推荐使用虚拟环境,如 venv)。
  • Docker 和 Docker Compose(用于快速启动服务器)。
  • Git(用于克隆仓库)。
  • 数据库:默认支持 SQLite(本地测试),生产环境可切换到 PostgreSQL 或 Neo4j(图数据库)。
安装步骤
  1. 克隆 GitHub 仓库
   git clone https://github.com/MemMachine/MemMachine.git
   cd MemMachine
  1. 使用 Docker 快速启动(推荐)
    下载最新发布版本的 tarball 并运行:
   # 下载最新 MemMachine 发布包(替换为实际版本)
   wget https://github.com/MemMachine/MemMachine/releases/latest/download/memmachine.tar.gz
   tar -xzf memmachine.tar.gz
   cd memmachine
   docker-compose up -d

这会启动服务器,监听在 http://localhost:8080。服务器包括存储层和 API 接口。

  1. 手动安装(无 Docker)
    使用 pip 安装 Python 包:
   pip install memmachine

配置 config.yml 文件(示例内容):

   database:
     type: sqlite  # 或 postgresql
     url: sqlite:///memmachine.db
   graph_db:
     type: neo4j
     url: bolt://localhost:7687
     username: neo4j
     password: password

启动服务器:

   MEMORY_CONFIG=config.yml uvicorn app:app --host 0.0.0.0 --port 8080 --reload
  1. 安装客户端 SDK
   pip install memmachine-client

这允许你的 AI Agent 通过 Python 代码访问记忆系统。

安装完成后,访问 http://localhost:8080/docs 查看 Swagger API 文档,验证服务器运行正常。

3. 配置 MemMachine

基本配置
  • config.yml 中设置 API 密钥(可选,用于生产环境安全):
  api:
    secret_key: your_secret_key_here
  • 配置 MCP 服务器(如果使用协议集成):
  MEMORY_CONFIG=config.yml memmachine-mcp-http --host localhost --port 8080
集成到 AI Agent

假设你使用 LangChain 或简单 Python 脚本构建 Agent:

  • 初始化客户端:
  from memmachine_client import MemMachineClient

  client = MemMachineClient(base_url="http://localhost:8080")
  • 为 Agent 添加记忆钩子:在 Agent 的推理循环中,注入记忆检索和更新逻辑。
  • 检索记忆:在处理用户查询前,从长期记忆中拉取相关偏好。
  • 更新记忆:对话结束后,存储新信息。

4. 实战:让 AI Agent 记住用户喜好

我们通过一个简单示例:构建一个“饮食推荐 Agent”,让它记住用户的饮食偏好(如素食主义、喜欢辣食)。使用 OpenAI API 或本地 LLM 作为大脑。

步骤 1: 创建会话和存储偏好

使用 API 创建一个记忆片段(用户偏好):

curl -X POST "http://localhost:8080/v1/memories" \
-H "Content-Type: application/json" \
-d '{
  "session": {
    "group_id": "user_group",
    "agent_id": ["diet_agent"],
    "user_id": ["user_001"],
    "session_id": "session_001"
  },
  "producer": "user_001",
  "produced_for": "diet_agent",
  "episode_content": "用户偏好:素食主义,喜欢辣食,不吃海鲜。",
  "episode_type": "preference",
  "metadata": {"category": "diet"}
}'

Python 代码示例:

memory_data = {
    "session": {
        "group_id": "user_group",
        "agent_id": ["diet_agent"],
        "user_id": ["user_001"],
        "session_id": "session_001"
    },
    "producer": "user_001",
    "produced_for": "diet_agent",
    "episode_content": "用户偏好:素食主义,喜欢辣食,不吃海鲜。",
    "episode_type": "preference",
    "metadata": {"category": "diet"}
}
client.create_memory(memory_data)
步骤 2: 在 Agent 中检索记忆

在 Agent 处理查询(如“推荐晚餐”)时,先搜索相关记忆:

curl -X POST "http://localhost:8080/v1/memories/search" \
-H "Content-Type: application/json" \
-d '{
  "session": {
    "group_id": "user_group",
    "agent_id": ["diet_agent"],
    "user_id": ["user_001"],
    "session_id": "session_001"
  },
  "query": "用户饮食偏好",
  "filter": {"category": "diet"},
  "limit": 5
}'

Python 示例(集成到 Agent):

search_params = {
    "session": {...},  # 同上
    "query": "用户饮食偏好",
    "filter": {"category": "diet"},
    "limit": 5
}
memories = client.search_memories(search_params)
# 将 memories 注入到 LLM Prompt 中
prompt = f"基于以下记忆:{memories[0]['episode_content']},推荐晚餐。"
# 调用 LLM 生成响应
步骤 3: 更新记忆(动态进化)

对话后,更新新偏好(如用户反馈“不喜欢甜食”):

  • 使用相同 API POST /v1/memories,添加新片段。
  • MemMachine 会自动向量化并存储到图数据库,支持未来智能关联(e.g., 辣食偏好关联到川菜推荐)。
步骤 4: 测试跨会话记忆
  • 关闭当前会话,重启 Agent。
  • 使用相同 user_id 查询,Agent 应能回忆起之前存储的偏好,实现“记住你的喜好”。

5. 高级用法和优化

  • MCP 集成:对于复杂 Agent,使用 MCP 协议列出工具(如 add_memorysearch_memory):
  • 建立 SSE 连接,初始化会话,然后调用工具。
  • 示例:见上方 curl 命令,用于与 LLM 框架深度融合。
  • 数据安全:启用加密存储,定期备份数据库。
  • 扩展:集成向量数据库(如 Qdrant)增强搜索,支持更多用户规模。
  • 常见问题
  • 记忆不准确?检查查询过滤器和元数据。
  • 性能慢?优化图数据库索引。
  • 替代方案:如果 MemMachine 不适合,可参考 Letta (MemGPT) 或 LangMem,它们类似但更侧重特定场景。

6. 注意事项和建议

  • 测试环境:从本地 SQLite 开始,避免生产数据丢失。
  • API 限速:生产中添加限流,防止滥用。
  • 开源社区:加入 GitHub 讨论,贡献代码。
  • 收藏建议:这个指南基于 2025-2026 年最新文档,AI 技术迭代快,定期检查更新。

通过 MemMachine,你的 AI Agent 能从“健忘”转为“贴心伙伴”,记住用户喜好并持续优化响应。实践起来吧!如果需要代码仓库或更多示例,随时问我。

文章已创建 3738

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部