乐于分享
好东西不私藏

MemOS * OpenClaw:为 AI Agent 装上「长期记忆」

MemOS * OpenClaw:为 AI Agent 装上「长期记忆」

MemOS × OpenClaw:为 AI Agent 装上「长期记忆」

记忆是智慧的基石,而 MemOS 让 AI 真正拥有了记忆。

引言

想象一个场景:你昨天让 OpenClaw 帮你规划了一个旅行行程,今天问它"昨天说的那个行程,帮我改成高铁出行"——结果它完全忘了你们在聊什么。🤷

或者更尴尬的是:你花了一小时教会它你写代码的风格偏好,下次对话时它又回到了默认模式。

这就是当前大多数 AI Agent 的痛点——没有真正的长期记忆。

每次对话都是「从零开始」,无法跨会话保持上下文,更谈不上从经验中学习和进化。

MemOS 的出现,正是为了解决这个根本性问题。

什么是 MemOS?

MemOS(Memory Operating System)是由 MemTensor 团队开发的开源项目,它是一个专为 LLM 和 AI Agent 设计的记忆操作系统

GitHub:https://github.com/MemTensor/MemOS

它的核心理念很简单:让 AI 像人类一样拥有长期记忆能力——不只是记住当前对话,而是跨会话、跨任务地存储、检索和利用知识。

MemOS 的三大核心能力

┌─────────────────────────────────────────────────────┐
│                  MemOS 架构                         │
├─────────────────────────────────────────────────────┤
│  🧠 显式记忆 (Explicit Memory)                       │
│     ├─ 事实记忆:用户偏好、知识库、历史决策            │
│     ├─ 技能记忆:学习到的 Skills、工具使用模式         │
│     └─ 情境记忆:跨会话的上下文连续性                  │
├─────────────────────────────────────────────────────┤
│  🔍 智能检索 (Smart Retrieval)                       │
│     ├─ 语义搜索:基于向量相似度的记忆召回              │
│     ├─ 分层索引:短期/中期/长期记忆分级管理            │
│     └─ 动态加载:根据当前任务自动加载相关记忆          │
├─────────────────────────────────────────────────────┤
│  🔄 记忆进化 (Memory Evolution)                      │
│     ├─ 技能复用:跨任务复用已学习的技能               │
│     ├─ 知识沉淀:从交互中提取可复用的知识模式          │
│     └─ 遗忘机制:智能清理过期/低价值记忆               │
└─────────────────────────────────────────────────────┘

为什么 OpenClaw 需要 MemOS?

OpenClaw 是一个强大的 AI Agent 框架,它提供了:

  • ✅ 丰富的工具调用能力
  • ✅ 灵活的 Skill 系统
  • ✅ 实时的任务执行

但它缺少一个关键组件——持久化的长期记忆

OpenClaw 的当前限制

场景当前表现期望表现
跨会话任务每次从头开始自动加载历史上下文
用户偏好每次重新询问记住"我喜欢简洁风格"
技能学习单次使用即丢弃沉淀为可复用 Skill
知识积累无积累机制形成个人知识库

MemOS 带来的改变

当 OpenClaw 集成 MemOS 后:

用户: "帮我写一篇 Python 爬虫教程"
    ↓
OpenClaw + MemOS:
    ├─ 检测到用户之前学习过 Python 基础
    ├─ 自动调整教程难度级别
    ├─ 复用之前生成的代码风格模板
    ├─ 保存这次生成的教程到技能库
    └─ 下次用户问"爬虫"时,自动从上次断点继续

MemOS × OpenClaw 集成实战

架构设计

用户请求
    ↓
[OpenClaw Core]
    ├─ 意图理解
    ├─ 工具选择
    └─ 任务规划
    ↓
[MemOS Memory Layer]  ← 关键集成点
    ├─ 查询相关历史记忆
    ├─ 加载用户偏好配置
    ├─ 检索可用技能
    └─ 存储新学到的知识
    ↓
[Tool Execution]
    ↓
[MemOS Store]  ← 持久化存储
    ├─ 更新记忆索引
    ├─ 技能演化分析
    └─ 知识图谱构建
    ↓
返回给用户

快速集成指南

第一步:安装 MemOS SDK

# 安装 MemOS Python SDK
pip install memos-sdk

# 或使用 Poetry
poetry add memos-sdk

第二步:配置 MemOS 连接

# config/memos.yaml
memos:
  # 选择部署模式
  mode: "cloud"  # 或 "local" 本地部署

  # Cloud 配置
  cloud:
    api_key: "your-memos-api-key"
    project_id: "your-project-id"
    region: "ap-southeast-1"

  # Local 配置
  local:
    db_path: "~/.memos/local.db"
    vector_store: "chroma"  # 或 "faiss", "milvus"
    embedding_model: "BAAI/bge-m3"

第三步:OpenClaw Skill 集成

创建 MemOS Skill,让 OpenClaw 能够读写记忆:

# skills/memos_skill.py
from memos import MemOSClient
from openclaw import Skill, Tool

class MemOSSkill(Skill):
    """MemOS 记忆管理 Skill"""

    def __init__(self):
        self.client = MemOSClient.from_config()

    @Tool(description="存储长期记忆")
    def store_memory(self, key: str, content: str,
                     memory_type: str = "fact"):
        """
        将信息存储到长期记忆

        Args:
            key: 记忆的标识键
            content: 记忆内容
            memory_type: 记忆类型 (fact/skill/preference)
        """
        return self.client.memory.store(
            key=key,
            content=content,
            metadata={
                "type": memory_type,
                "timestamp": datetime.now(),
                "session_id": get_current_session()
            }
        )

    @Tool(description="检索相关记忆")
    def retrieve_memory(self, query: str,
                        top_k: int = 5) -> list:
        """
        基于语义搜索检索相关记忆

        Args:
            query: 搜索查询
            top_k: 返回结果数量
        """
        return self.client.memory.search(
            query=query,
            top_k=top_k,
            filters={"user_id": get_current_user()}
        )

    @Tool(description="加载用户偏好")
    def load_preferences(self) -> dict:
        """加载当前用户的偏好配置"""
        prefs = self.client.memory.get(
            key="user_preferences",
            default={}
        )
        return prefs

    @Tool(description="更新技能库")
    def evolve_skill(self, skill_name: str,
                     improvement: str):
        """
        从成功执行中提取技能改进

        Args:
            skill_name: 技能名称
            improvement: 改进内容
        """
        current = self.client.skills.get(skill_name)
        current["evolutions"].append({
            "improvement": improvement,
            "timestamp": datetime.now()
        })
        return self.client.skills.update(skill_name, current)

第四步:配置 OpenClaw 使用 MemOS

# openclaw.config.yaml
skills:

  - name: memos

    path: ./skills/memos_skill.py
    auto_load: true

memory:
  provider: memos
  config:
    project_id: "${MEMOS_PROJECT_ID}"
    api_key: "${MEMOS_API_KEY}"

  # 自动记忆配置
  auto_store:
    user_preferences: true    # 自动存储用户偏好
    tool_results: true        # 存储工具执行结果
    skill_patterns: true      # 提取技能使用模式

  # 记忆检索配置
  auto_retrieve:
    on_session_start: true    # 会话开始时加载相关记忆
    before_tool_call: true    # 工具调用前检索相关技能
    context_window: 10        # 携带最近 10 条相关记忆

实战场景演示

场景一:跨会话的项目管理

第 1 天:

用户: "启动一个新项目,叫'智能客服系统'"

OpenClaw + MemOS:
  ├─ 创建项目记录
  ├─ 存储项目目标、技术栈选择
  └─ 记住用户的架构偏好(微服务 vs 单体)

第 3 天:

用户: "那个客服系统,帮我设计数据库表"

OpenClaw + MemOS:
  ├─ 🧠 自动检索到"智能客服系统"项目
  ├─ 🧠 加载之前选择的技术栈(Python + PostgreSQL)
  ├─ 🧠 复用用户的命名风格(下划线命名法)
  ├─ 设计数据库表
  └─ 💾 存储新的表结构设计到项目记忆

输出: "基于您之前选择的 PostgreSQL,我设计了以下表结构...
       (采用您偏好的下划线命名法)"

场景二:个性化代码助手

第 1 次交互:

用户: "写个 Python 函数处理 CSV"

OpenClaw: "好的,这是使用 pandas 的解决方案..."

用户: "我不喜欢用 pandas,太重量级了,用标准库"

OpenClaw + MemOS:
  💾 存储偏好: "用户偏好使用标准库而非第三方库"

第 5 次交互:

用户: "帮我处理这个 JSON 文件"

OpenClaw + MemOS:
  🧠 检索到偏好: "使用标准库而非第三方"

输出: "我使用 json 标准库为您处理...
       (基于您之前的偏好,未使用第三方库)"

场景三:技能自动进化

# 初始 Skill:简单的邮件发送
def send_email(to, subject, body):
    ...

# 多次使用后,MemOS 识别模式:
# - 用户总是添加签名
# - 用户喜欢 Markdown 格式
# - 常用特定的邮件模板

# MemOS 自动进化 Skill:
def send_email_v2(to, subject, body,
                  auto_signature=True,
                  format="markdown",
                  template=None):
    """
    进化后的邮件发送 Skill
    自动添加签名、支持 Markdown、内置常用模板
    """
    if auto_signature:
        body += get_user_signature()
    ...

MemOS 的高级特性

1. 显式记忆机制 (Explicit Memory)

不同于 LLM 的隐式参数记忆,MemOS 提供显式、可解释、可管理的记忆:

# 查看 AI 记住了什么
memories = memos.list_memories(
    user_id="user_123",
    types=["preference", "skill", "fact"],
    time_range="last_30_days"
)

# 输出示例:
# {
#   "preference": [
#     {"key": "code_style", "value": "pep8", "confidence": 0.95},
#     {"key": "response_length", "value": "concise", "confidence": 0.88}
#   ],
#   "skill": [
#     {"name": "email_drafting", "usage_count": 23, "success_rate": 0.96}
#   ]
# }

2. 向量语义搜索

基于嵌入模型的语义记忆检索:

# 即使关键词不匹配,也能找到相关记忆
memories = memos.search(
    query="我上次说的那个数据处理脚本",
    # 会自动匹配到之前关于 "Python CSV 处理" 的记忆
    semantic_match=True,
    threshold=0.7
)

3. 记忆分层管理

┌────────────────────────────────────────┐
│  Layer 3: 长期记忆 (Long-term)          │
│  - 用户核心偏好、已沉淀的技能            │
│  - 保留期:永久                         │
├────────────────────────────────────────┤
│  Layer 2: 工作记忆 (Working)            │
│  - 当前项目上下文、近期决策               │
│  - 保留期:7-30 天                      │
├────────────────────────────────────────┤
│  Layer 1: 短期记忆 (Short-term)         │
│  - 当前会话上下文                       │
│  - 保留期:当前会话                      │
└────────────────────────────────────────┘

4. MCP 协议支持

MemOS 支持 MCP (Model Context Protocol),可以无缝集成到各种 Agent 框架:

# MCP Server 配置
{
  "mcpServers": {
    "memos": {
      "command": "python",
      "args": ["-m", "memos.mcp.server"],
      "env": {
        "MEMOS_API_KEY": "your-api-key"
      }
    }
  }
}

部署方式

MemOS 提供两种部署模式:

Cloud 模式(推荐)

# 注册 MemOS Cloud 账号
# https://cloud.memos.ai

# 获取 API Key
export MEMOS_API_KEY="your-api-key"

# 在 OpenClaw 中配置
openclaw config set memory.provider memos
openclaw config set memory.cloud.api_key "$MEMOS_API_KEY"

优势:

  • 零运维成本
  • 自动扩缩容
  • 多区域部署
  • 企业级安全

Local 模式

# 本地 Docker 部署
docker run -d \
  -p 8080:8080 \
  -v ~/.memos:/data \
  memtensor/memos:latest

# 配置 OpenClaw
openclaw config set memory.provider memos
openclaw config set memory.local.endpoint "http://localhost:8080"

优势:

  • 数据完全私有化
  • 零网络依赖
  • 完全可控

性能与成本优化

Token 节省分析

场景无 MemOS有 MemOS节省
重复背景说明500 tokens/次0 tokens100%
用户偏好说明200 tokens/次0 tokens100%
技能复用重新生成直接调用80%
上下文压缩原始长度智能摘要60%

响应速度提升

  • 记忆检索:< 50ms(向量索引)
  • 上下文加载:< 100ms(本地缓存)
  • 整体加速:平均减少 30% 响应时间

与其他记忆方案对比

特性MemOS原生 LLM简单向量库
显式记忆管理
语义检索
技能进化
分层存储
MCP 支持
OpenClaw 集成⚠️⚠️

总结

MemOS 为 OpenClaw 带来了真正的长期记忆能力

  1. 🧠 显式记忆 - 不再依赖 LLM 的隐式参数,记忆可管理、可解释
  2. 🔍 智能检索 - 基于语义的跨会话记忆召回
  3. 🔄 技能进化 - 从交互中学习并沉淀为可复用技能
  4. 💰 成本优化 - 减少重复说明,降低 Token 消耗
  5. ⚡ 响应加速 - 预加载相关记忆,减少推理时间

当 OpenClaw 装上 MemOS,你的 AI Agent 不再是一个「金鱼」——它将拥有真正的记忆力,成为一个越用越懂你、越用越聪明的数字伙伴。


相关链接:

  • MemOS GitHub:https://github.com/MemTensor/MemOS
  • MemOS 文档:https://memos-docs.openmem.net
  • OpenClaw 官网:https://openclaw.ai
  • 论文引用:arXiv:2507.03724, arXiv:2505.22101

本文介绍了 MemOS 与 OpenClaw 的集成方案。MemOS 是一个开源的 AI 记忆操作系统,支持多种 Agent 框架集成,包括 OpenClaw、Coze、Dify 等。