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 tokens | 100% |
| 用户偏好说明 | 200 tokens/次 | 0 tokens | 100% |
| 技能复用 | 重新生成 | 直接调用 | 80% |
| 上下文压缩 | 原始长度 | 智能摘要 | 60% |
响应速度提升
- 记忆检索:< 50ms(向量索引)
- 上下文加载:< 100ms(本地缓存)
- 整体加速:平均减少 30% 响应时间
与其他记忆方案对比
| 特性 | MemOS | 原生 LLM | 简单向量库 |
|---|---|---|---|
| 显式记忆管理 | ✅ | ❌ | ❌ |
| 语义检索 | ✅ | ❌ | ✅ |
| 技能进化 | ✅ | ❌ | ❌ |
| 分层存储 | ✅ | ❌ | ❌ |
| MCP 支持 | ✅ | ❌ | ❌ |
| OpenClaw 集成 | ✅ | ⚠️ | ⚠️ |
总结
MemOS 为 OpenClaw 带来了真正的长期记忆能力:
- 🧠 显式记忆 - 不再依赖 LLM 的隐式参数,记忆可管理、可解释
- 🔍 智能检索 - 基于语义的跨会话记忆召回
- 🔄 技能进化 - 从交互中学习并沉淀为可复用技能
- 💰 成本优化 - 减少重复说明,降低 Token 消耗
- ⚡ 响应加速 - 预加载相关记忆,减少推理时间
当 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 等。
夜雨聆风