OpenClaw通过@tablestore/openclaw-mem0插件集成表格存储(Tablestore),为智能体提供长期记忆能力:在对话中出现可提取的用户信息时(如偏好、习惯等),mem0 自动将其结构化后以向量形式存入 Tablestore,并在后续对话中自动检索注入上下文,让智能体随使用逐渐了解用户。本文介绍如何安装、配置该插件并验证其工作状态。
方案介绍
OpenClaw 原生记忆存在以下局限:上下文压缩(Compact)后记忆丢失、多 Agent 之间记忆隔离、本地 Embedding 部署复杂、数据备份与迁移困难。使用 Tablestore+mem0 做记忆存储,具备以下核心优势:
云托管,免运维:Tablestore 为阿里云全托管服务,无需自建数据库,按量计费,中小规模场景成本友好。
数据自主可控:数据存储于用户自己的阿里云账号,可通过 Tablestore 控制台直接查看,支持资源隔离、权限管理与监控告警。
跨 Agent 记忆共享:同一
userId下,多个 Agent 记忆互通,Compact 不影响历史记忆保留。智能结构化提取:自动从对话中抽取姓名、偏好、决策等关键事实,不堆积原始对话内容。
混合检索召回:向量相似度与 BM25 关键词检索并用,兼顾语义理解与精确匹配,毫秒级响应。
前提条件
已开通 Tablestore 服务
已开通百炼服务,并获取 API Key
自动安装
向 OpenClaw 发送以下提示词,智能体会自动读取安装说明并引导完成配置:
请阅读https://tablestore-doc.oss-cn-hangzhou.aliyuncs.com/aliyun-tablestore-ai/openclaw/skill.md,并按照说明安装和配置tablestore plugin 用于 OpenClaw。
安装完成后告诉我你能做什么如果智能体自动安装失败,请尝试手动方式安装。
手动安装
步骤一:安装插件
openclaw plugins install @tablestore/openclaw-mem0安装完成后,OpenClaw 会自动将 openclaw-mem0 设为 memory 槽位的提供方,并禁用内置的 memory-core 和 memory-lancedb。
由于 OpenClaw 使用 Node.js tar 模块解压插件包,在文件数量较多时(@tablestore/openclaw-mem0 含约 7000 个文件)可能会触发 120 秒超时。需通过以下方式绕过:先用 npm 下载,再用系统 tar 解压,最后从本地路径安装。
下载插件包到
/tmp目录cd /tmp && npm pack @tablestore/openclaw-mem0用系统 tar 解压,动态获取文件名,版本升级后无需修改命令
mkdir -p /tmp/openclaw-mem0-install && tar xzf /tmp/$(ls /tmp/tablestore-openclaw-mem0-*.tgz | head -1 | xargs basename) -C /tmp/openclaw-mem0-install --strip-components=1从本地路径安装
openclaw plugins install /tmp/openclaw-mem0-install
步骤二:配置插件
修改 ~/.openclaw/openclaw.json,在 plugins.entries.openclaw-mem0 下添加 config 字段:
方式一:AccessKey 认证(使用已有实例)
{
"plugins": {
"entries": {
"openclaw-mem0": {
"enabled": true,
"config": {
"mode": "open-source",
"oss": {
"vectorStore": {
"provider": "tablestore",
"config": {
"endpoint": "https://{实例名}.{Region}.ots.aliyuncs.com",
"instanceName": "{实例名}",
"accessKeyId": "{AccessKey ID}",
"accessKeySecret": "{AccessKey Secret}"
}
},
"embedder": {
"provider": "openai",
"config": {
"apiKey": "{百炼 API Key}",
"model": "text-embedding-v3",
"baseURL": "https://dashscope.aliyuncs.com/compatible-mode/v1"
}
},
"llm": {
"provider": "openai",
"config": {
"apiKey": "{百炼 API Key}",
"model": "qwen-plus",
"baseURL": "https://dashscope.aliyuncs.com/compatible-mode/v1"
}
}
}
}
}
}
}
}方式二:AccessKey 认证(自动创建实例)
不填 endpoint 和 instanceName,插件自动在指定地域创建 Tablestore 实例。可通过 regionId 指定地域,默认为 cn-hangzhou。
账号实例数量上限为10,详见使用限制。
"vectorStore": {
"provider": "tablestore",
"config": {
"accessKeyId": "{AccessKey ID}",
"accessKeySecret": "{AccessKey Secret}",
"regionId": "cn-hangzhou"
}
}自动创建的实例默认不开启公网访问。如果在公网环境运行,需要在表格存储控制台选择新创建的实例,然后在中启用公网访问。
方式三:ECS RAM Role 认证
在阿里云 ECS 上运行时,推荐使用 ECS RAM Role 代替 AccessKey,无需在配置文件中保存静态凭证。RAM Role 需绑定 AliyunOTSFullAccess 权限,详见实例RAM角色。
"vectorStore": {
"provider": "tablestore",
"config": {
"roleName": "{RAM 角色名称}",
"regionId": "cn-hangzhou"
}
}已有实例时,将regionId替换为endpoint和instanceName,参考方式一的配置结构。
embedder 和 llm 均通过 DashScope 的 OpenAI 兼容接口调用,填写百炼 API Key 即可,provider 写 openai。embedder 使用 text-embedding-v3(1024 维),llm 使用 qwen-plus 负责记忆提取。
步骤三:重启网关
openclaw gateway restart步骤四:验证
openclaw mem0 stats成功时输出:
[TablestoreVectorStore] OTS service status: enabled
Mode: open-source
User: default
Total memories: 0
Graph enabled: false
Auto-recall: true, Auto-capture: trueTotal memories 为当前记忆条数,初始为 0,随使用积累增长。
使用记忆
自动提取与召回
配置生效后无需额外操作。在 TUI 或消息渠道与智能体对话时,mem0 会自动:
提取:对话中出现可记录的用户信息(如饮食偏好、编程习惯、项目背景等)时自动写入 Tablestore
召回:下次对话前自动检索相关记忆注入上下文,无需用户重复说明
搜索记忆
openclaw mem0 search "杭州"返回语义上与检索词相关的记忆条目,可用于排查记忆是否正确写入或调试检索效果。
常见问题
问题 | 解决方法 |
插件未加载 | 检查 |
安装时下载超时 | 配置镜像源: |
| 检查 AccessKey ID 和 Secret 是否正确,账号是否正常 |
首次使用报 | 正常现象,插件在首次访问时自动创建数据表和索引 |
自动创建实例失败 | 确认 AccessKey 拥有 |
Embedding 报错 | 确认百炼 API Key 正确且账号有调用额度 |
| 自动创建的实例默认未开启公网访问,在表格存储控制台选择新创建的实例,然后在中启用公网访问后重试 |