OpenClaw 是当前最受欢迎的开源 Agent 框架,其默认的、基于本地文件的记忆系统在处理长周期、跨会话的任务时存在局限性。本文将介绍如何通过 openclaw-mem0 插件,将AnalyticDB for MySQL作为 OpenClaw 的持久化记忆后端,为您的 Agent 提供一个企业级的、可无限扩展的“长期大脑”。
应用场景
特性 | 说明 |
跨会话记忆管理 | 基于 AnalyticDB for MySQL+Mem0 提供持久化记忆存储,长期记录用户行为。 |
多设备协同共享 | 多个终端或 Agent 实例共享同一记忆库,实现记忆共享。 |
实时高效检索 | 毫秒级记忆读写能力,存储高可靠性与弹性伸缩。 |
企业级可靠性 | 云端记忆实时备份与恢复机制。 |
方案架构
本方案通过以下组件协同工作,构建一个完整的持久化记忆系统:
组件 | 角色 |
OpenClaw | Agent 的核心运行框架。 |
| 扮演“桥梁”角色,拦截对话,调用 LLM 和 Embedding 模型,并将结构化的记忆存入或检索于 AnalyticDB for MySQL。 |
AnalyticDB for MySQL | 作为持久化记忆后端,负责向量化记忆的存储与高效检索。 |
阿里云百炼大模型服务 | 提供对话所需的大语言模型(LLM)和文本向量化(Embedding)模型。 |
准备工作
在开始集成前,请确保您已准备好以下资源:
已创建AnalyticDB for MySQL 版集群,并确保其集群版本需 ≥ 3.2.7。具体操作请参见:企业版、基础版及湖仓版快速入门。
说明请在云原生数据仓库AnalyticDB MySQL控制台集群信息页面,配置信息区域,查看和升级内核版本。若集群已是最新默认基线版本但仍需升级,请通过钉钉联系阿里云服务支持处理(钉钉账号:
x5v_rm8wqzuqf)。已获取模型服务 API Key,本教程使用阿里云百炼大模型服务平台,请开通服务并获取 API Key,详情请参考文档:获取API Key。
操作步骤
本操作将基于阿里云轻量应用服务器 + AnalyticDB for MySQL 集群演示 OpenClaw 接入openclaw-mem0实现长期记忆存储。
步骤 1:开通 OpenClaw 实例(可选)
购买服务器实例:
访问 轻量应用服务器购买页面。
地域:选择AnalyticDB for MySQL集群所在的地域,以确保后续可以进行高效的内网通信。
镜像:在应用镜像中搜索并选择 OpenClaw。
套餐配置:为确保稳定运行,推荐选择 通用型 4核16GB 或更高规格。
根据您的需求选择购买时长和数量,然后单击立即购买。
初始化 OpenClaw 应用:
等待实例状态变为运行中后,单击实例ID进入服务器概览页。
切换到应用详情选项卡,根据页面指引,依次完成端口放通和配置OpenCLaw。
在模块,可进行大模型的配置。
开通内网互通:
在左侧导航栏中,选择内网互通。
单击内网互通按钮。此操作将打通轻量应用服务器与您同一地域下的其他阿里云服务(如AnalyticDB for MySQL)之间的内网连接,这是实现低延迟、高安全性访问的关键。
步骤 2:安装插件并重建依赖
在实例详情的顶部,单击远程连接,即可通过浏览器直接登录到服务器的命令行终端。
当 Python 版本在 3.8 及以上时,可省略其他步骤,仅需执行安装插件即可。
检查 Python 版本,插件需要 Python 3.8+ 版本:
# 查看 Python 版本 python3 --version安装 Python 3.9(可选),如果当前版本低于 3.8,执行以下命令安装:
# 安装依赖 sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel --disablerepo=docker-ce-stable # 下载并安装 Python 3.9 cd /tmp curl -O https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz tar xzf Python-3.9.18.tgz cd Python-3.9.18 ./configure --enable-optimizations sudo make altinstall # 验证安装 python3.9 --version # 创建软链接 sudo ln -sf /usr/local/bin/python3.9 /usr/bin/python3 # 再次验证 python3 --version安装插件:
openclaw plugins install @adbm-ai/openclaw-mem0重新编译 better-sqlite3,删除并重新安装基于 Python 3.9 编译的 better-sqlite3:
cd ~/.openclaw/extensions/openclaw-mem0 rm -rf node_modules/better-sqlite3 npm install better-sqlite3 --build-from-source
步骤 3:配置 openclaw.json
这是最关键的一步。服务器的命令行终端,打开 ~/.openclaw/openclaw.json 文件,找到(或添加)"openclaw-mem0" 配置项,并根据您的环境填入以下信息。
打开配置文件
编辑
~/.openclaw/openclaw.json文件。安装完成后,在plugins和entries中可以看到openclaw-mem0字段。
配置说明
参数
说明
mode
设置为
"open-source",代表使用自建 Mem0。userId
记忆用户标识,实现记忆共享与租户隔离。建议一个 OpenClaw 实例对应一个唯一的 userId。
llm.provider
固定值,dashscope,阿里云百炼。
llm.config.apiKey
使用阿里云百炼平台的Api Key。
llm.config.baseURL
https://dashscope-intl.aliyuncs.com/compatible-mode/v1。
llm.config.model
使用阿里云百炼平台支持的模型,推荐qwen3.5-plus。
embedder.provider
固定值,dashscope,阿里云百炼。
embedder.config.apiKey
使用阿里云百炼平台的Api Key。
embedder.config.url
https://dashscope-intl.aliyuncs.com/compatible-mode/v1。
embedder.config.model
推荐使用
text-embedding-v4。embedder.config.embeddingDims
建议1536维。
vectorStore.provider
固定值,aliyun-adb-mysql。
vectorStore.config.host
内网连接使用AnalyticDB for MySQL的vpc 地址,公网连接使用AnalyticDB for MySQL的公网地址。
vectorStore.config.port
数据库端口,3306。
vectorStore.config.database
openclaw_adb,数据库名,如不存在/不指定会自动创建,无需修改。
vectorStore.config.user
创建的AnalyticDB for MySQL账号名,账号需要读写权限。
vectorStore.config.password
创建的账号密码。
vectorStore.config.collectionName
openclaw_mem0_adb,记忆存储的表名。
配置示例
"openclaw-mem0": { "enabled": true, "config": { "mode": "open-source", "userId": "alice", "oss": { "llm": { "provider": "dashscope", "config": { "apiKey": "sk-2fa2a****cef0", "baseURL": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", "model": "qwen3.5-plus" } }, "embedder": { "provider": "dashscope", "config": { "model": "text-embedding-v4", "embeddingDims": 1536, "apiKey": "sk-2fa2a****cef0", "url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" } }, "vectorStore": { "provider": "aliyun-adb-mysql", "config": { "host": "amv-0jl1****41.ads.aliyuncs.com", "port": 3306, "database": "openclaw_adb", "user": "your-user-name", "password": "your-password", "collectionName": "openclaw_mem0_adb" } } } } }重启服务
openclaw gateway restart配置完成后,可以看到
openclaw-mem0已成功加载。
使用指南
基础使用
启动对话
openclaw tui示例 1:主动添加记忆
请记住,我购买了阿里云的 OpenClaw 服务器,过期时间是 2026 年 4 月 16 日。示例 2:查询记忆
我近期有什么事情需要注意?
CLI 命令行操作
执行
openclaw mem0 search "openclaw"查看记忆openclaw mem0 search "openclaw"同时支持的CLI 命令如下
# Search all memories (long-term + session) openclaw mem0 search "what languages does the user know" # Search only long-term memories openclaw mem0 search "what languages does the user know" --scope long-term # Search only session/short-term memories openclaw mem0 search "what languages does the user know" --scope session # Stats openclaw mem0 stats # Search a specific agent's memories openclaw mem0 search "user preferences" --agent researcher # Stats for a specific agent openclaw mem0 stats --agent researcher
Multi-Agent 长记忆隔离
OpenClaw 的 Multi-Agent 场景中,Mem0 + AnalyticDB for MySQL 方案支持多个 Agent 的长记忆隔离。
步骤 1:创建 Agent
# 添加 writer agent openclaw agents add writer --workspace ~/.openclaw/workspace-writer --model bailian/qwen3.5-plus --non-interactive # 重启 Gateway openclaw gateway restart # 验证 agent 列表 openclaw agents list步骤 2:与 Agent 交互
运行
openclaw tui,切换agent 到 writer 并进行交流。
步骤 3:搜索特定 Agent 的记忆
openclaw mem0 search "科幻小说推荐" --agent writer步骤 4:验证记忆隔离
新建一个新的 agent reader
# 添加 reader agent openclaw agents add reader --workspace ~/.openclaw/workspace-reader --model bailian/qwen3.5-plus --non-interactive # 搜索 reader 的记忆(应为空) openclaw mem0 search "科幻小说推荐" --agent reader可以看到,不同 Agent 的记忆是相互隔离的。
常见问题
Q:连接 AnalyticDB for MySQL 失败?
A:请依次检查:
openclaw.json中的host、port、user、password是否正确。OpenClaw 服务器的 IP 是否已添加到 AnalyticDB for MySQL 集群的白名单中。
网络是否通畅(公网/内网)。
Q:记忆无法保存或检索,但没有报错?
A:最可能的原因是阿里云百炼大模型的 API Key 不正确或已过期。请检查
openclaw.json中llm和embedder的配置。同时,可以通过openclaw gateway logs查看详细的错误日志。Q:支持哪些 Embedding 模型?
A:推荐使用阿里云百炼的
text-embedding-v4(1536维)。也支持其他兼容 OpenAI 格式的 Embedding 服务。