OpenClaw接入Agent Memory服务
本文介绍如何在 OpenClaw 中安装 @mem0/openclaw-mem0 插件,并通过 Mem0 兼容协议接入 AMS(Agent Memory Service)。接入后,OpenClaw 可以在对话前召回 AMS 中的记忆,也可以在对话后把有价值的会话内容写入 AMS。
前提条件
接入前需满足以下条件:
-
已在 AMS 控制台添加 Agent 身份,并复制该 Agent 对应的 API Key。
-
已在 AMS 控制台创建接入点,并获取接入点别名。
-
OpenClaw 已安装,Gateway 可正常启动。
-
本地已安装 OpenClaw CLI,可执行
openclaw --version。 -
OpenClaw 版本与
openclaw-mem0插件版本匹配。不同版本的配置差异见版本兼容说明。
AMS Mem0 兼容地址按以下格式配置:
http://<接入点别名>:1995/mem0
其中 1995 为固定端口,/mem0 为 Mem0 兼容协议前缀。
接入信息说明
|
配置项 |
来源 |
说明 |
|---|---|---|
|
|
AMS 控制台 Agent 身份管理页的 API Key |
API Key 已绑定 Agent 身份,OpenClaw 配置中不需要再传 |
|
|
AMS 接入点别名 |
格式为 |
|
|
业务侧自定义 |
记忆主体 ID。通常使用业务用户 ID、账号名或稳定的 OpenClaw 用户标识。 |
|
|
OpenClaw 会话 |
用于区分不同对话。验证自动采集时,建议固定一个 session。 |
版本兼容说明
-
推荐版本:OpenClaw
v2026.4.24及以上版本,@mem0/openclaw-mem01.0.11。 -
旧版 OpenClaw 如
v2026.3.23可使用@mem0/openclaw-mem01.0.6做兼容接入,具体见常见问题旧版 OpenClaw 如何接入。
步骤一:安装插件
执行以下命令安装 OpenClaw Mem0 插件:
openclaw plugins install @mem0/openclaw-mem0
安装完成后查看插件信息:
openclaw plugins inspect openclaw-mem0
如需确认 OpenClaw 版本:
openclaw --version
步骤二:配置插件
在 OpenClaw 配置文件中启用 openclaw-mem0。配置文件通常位于:
~/.openclaw/openclaw.json
自动采集 session 对话时,建议使用 autoCapture 和 autoRecall。较新的 OpenClaw 版本需要在插件条目中加入 hooks.allowConversationAccess。
{
"plugins": {
"slots": {
"memory": "openclaw-mem0"
},
"entries": {
"openclaw-mem0": {
"enabled": true,
"config": {
"mode": "platform",
"apiKey": "${MEM0_API_KEY}",
"baseUrl": "http://<接入点别名>:1995/mem0",
"userId": "openclaw-user",
"autoCapture": true,
"autoRecall": true,
"topK": 5
},
"hooks": {
"allowConversationAccess": true
}
}
}
}
}
配置说明:
|
参数 |
必填 |
说明 |
|---|---|---|
|
|
是 |
指定 OpenClaw 的记忆插件为 |
|
|
是 |
固定为 |
|
|
是 |
AMS 控制台获取的 API Key。支持 |
|
|
是 |
AMS Mem0 兼容地址,必须包含固定端口 |
|
|
是 |
记忆主体 ID。相同 |
|
|
否 |
是否在 Agent 回复后采集对话内容。默认开启。 |
|
|
否 |
是否在 Agent 回复前召回相关记忆。默认开启。 |
|
|
否 |
每次自动召回的最大记忆条数。 |
|
|
是 |
允许插件读取当前 session 会话,用于自动采集。 |
环境变量示例:
export MEM0_API_KEY="<AMS API Key>"
步骤三:重启 Gateway
修改配置后,重启 OpenClaw Gateway:
openclaw gateway restart
验证配置文件格式:
openclaw config validate
查看插件连接状态:
openclaw mem0 status --json
返回结果中 connected 为 true,表示插件已连通 AMS:
{
"ok": true,
"mode": "platform",
"connected": true,
"userId": "openclaw-user"
}
步骤四:验证接入
验证 OpenClaw session 自动采集时,建议固定一个 session。全程使用同一个 session 对话,再用 /reset 触发当前 session 结束。
如果全程在 WebUI 中对话,可打开以下地址:
http://localhost:18789/chat?session=ams-openclaw-demo
如果使用 CLI 对话,再到 WebUI 中输入 /reset,需打开 CLI explicit session 对应的地址:
http://localhost:18789/chat?session=agent%3Amain%3Aexplicit%3Aams-openclaw-demo
其中 agent:main:explicit:ams-openclaw-demo 对应 CLI 的 --session-id ams-openclaw-demo。
CLI 对话示例:
openclaw agent --session-id ams-openclaw-demo \
--message "最近在写 OpenClaw 接 AMS 的接入文档,里面有个小例子叫「南屏茶歇0527」。我想把步骤写得像平时聊天。" \
--thinking off
自动采集使用 openclaw.json 中的 config.userId,本文示例为 openclaw-user。
示例对话:
最近在写 OpenClaw 接 AMS 的接入文档,里面有个小例子叫「南屏茶歇0527」。我想把步骤写得像平时聊天:先聊几句,再打 /reset,然后看看记忆是不是进去了。
在同一个 session 中输入 /reset,选择 Reset the current session。不要通过新建 session 代替 /reset,新建 session 不会结束当前 session。
再补一句,这个例子里我想强调:baseUrl 用 AMS 控制台拿到的接入点别名,Mem0 地址后面带上 :1995/mem0,别写成本地测试地址。
在同一个 session 中输入 /reset,选择 Reset the current session。不要通过新建 session 代替 /reset,新建 session 不会结束当前 session。
随后在同一个 session 中换一个话题:
换个轻松点的话题。我周末可能就在西溪附近待半天,想找一个能喝咖啡、慢慢走路、但别太网红的地方。最好树多一点,人少一点,适合下午三四点过去。
刚才想了一下,周末半天我就定「花坞慢走0527」这个小计划:下午三点从西溪花坞入口进去,沿水边慢慢走,找家安静小店喝杯冰美式。我不想赶景点,树荫多、人少就好。
换个话题,周末计划先放一边。我晚上准备把 AMS QuickStart 里的 curl 示例再过一遍,主要看看 baseUrl 有没有写成控制台接入点别名加 :1995/mem0。
查看后台事件:
openclaw mem0 event list --json
事件状态为 SUCCEEDED,且 payload.messages 中包含本次 session 的对话内容,表示 autoCapture 已将会话发送到 AMS:
{
"ok": true,
"events": [
{
"event_type": "ADD",
"status": "SUCCEEDED",
"payload": {
"user_id": "openclaw-user",
"run_id": "<user_id_hash>_group"
}
}
]
}
如需确认长期记忆已经生成,可在事件成功后等待后台处理完成,再搜索对话中的稳定关键词:
openclaw mem0 search "花坞慢走0527" --user-id openclaw-user --top-k 5 --json
返回结果中包含对应关键词,表示 AMS 已完成记忆提取和检索索引写入:
[
{
"scope": "long-term",
"categories": ["travel"],
"memory": "用户选定「花坞慢走0527」计划..."
}
]
插件提供的能力
自动能力
|
能力 |
说明 |
|---|---|
|
|
Agent 回复前,插件按当前输入从 AMS 召回相关记忆,并注入上下文。 |
|
|
Agent 回复后,插件把当前 session 中的对话内容发送到 AMS,由 AMS 处理是否生成记忆。 |
Agent 工具
插件会为 Agent 注册以下记忆工具:
|
工具 |
说明 |
|---|---|
|
|
按自然语言搜索记忆。 |
|
|
主动写入事实、偏好、决策等内容。 |
|
|
按 ID 获取单条记忆。 |
|
|
列出记忆。 |
|
|
更新记忆文本。 |
|
|
删除记忆。 |
|
|
查看平台模式下的后台事件。 |
|
|
查看单个后台事件状态。 |
记忆写入工具与 autoCapture 的关系见常见问题对话后没有自动采集事件。
CLI 命令
常用 CLI 命令如下:
# 检查连接
openclaw mem0 status --json
# 查看后台事件
openclaw mem0 event list --json
openclaw mem0 event status <event_id> --json
# 列出记忆
openclaw mem0 list --user-id openclaw-user --top-k 10 --json
# 搜索记忆
openclaw mem0 search "用户偏好" --user-id openclaw-user --top-k 5 --json
# 手动写入一条记忆
openclaw mem0 add "用户偏好:技术文档使用中文,并保持阿里云帮助中心风格。" --user-id openclaw-user --json
CLI 手动写入与 OpenClaw session 的关系见常见问题为什么 group_id 与 OpenClaw session 不一致。
常见问题
API Key、userId 和 Agent ID 是什么关系
AMS 侧的 Agent 身份由 API Key 标识。OpenClaw 配置中不需要再传 agent_id。
userId 用于区分记忆主体,通常使用业务用户 ID、账号名或稳定的 OpenClaw 用户标识。它不等同于 AMS 控制台里的 Agent ID。
插件连接状态为 false
检查以下配置:
-
apiKey是否来自 AMS 控制台目标 Agent 身份。 -
baseUrl是否为http://<接入点别名>:1995/mem0。 -
接入点状态是否为运行中。
-
当前网络是否能访问该接入点。
对话后没有自动采集事件
按以下顺序检查:
-
hooks.allowConversationAccess是否已配置为true。 -
不要开启 openclaw-mem0 skills 模式。
-
验证时是否使用固定 WebUI session。CLI 对话配合浏览器
/reset时,需使用 explicit session URL。
如果当前轮对话中 Agent 调用了 memory_add、memory_update 或 memory_delete,插件会跳过该轮 autoCapture,避免同一轮内容重复写入。此时 event list 中看到的可能是工具写入事件,不能用来判断 session 自动采集是否生效。
event list 有成功事件,但 list 或 search 为空
event list 表示写入请求已进入 AMS 处理流程。list 和 search 依赖最终生成的 memory。
常见原因有两类:
-
对话还没有形成边界。可在同一 session 中换一个明显不同的话题,再发一轮普通对话。
-
后台提取还未完成。边界触发后,AMS 仍需完成记忆提取、聚类和索引写入,通常等待几十秒后再检索。
先看 event list 是否有 ADD 且状态为 SUCCEEDED,再结合换主题后的检索结果判断是否生成了长期记忆。
为什么 group_id 与 OpenClaw session 不一致
AMS 使用 run_id/group_id 标识会话分组。未显式传入 run_id 时,AMS 会自动生成形如 <user_id_hash>_group 的会话分组。
验证 OpenClaw session 自动采集时,以 event list 中的 payload.messages 和事件状态为准。手动 openclaw mem0 add 适合验证 API 连通性,不适合判断 session 自动采集是否生效。
旧版 OpenClaw 如何接入
旧版 OpenClaw,如 v2026.3.23 可配合 @mem0/openclaw-mem@1.0.6 使用。该插件版本运行时代码支持 baseUrl,但 manifest 的 configSchema 未声明 baseUrl,配置前需要修改已安装插件的 manifest。
优先从插件市场安装:
openclaw plugins install @mem0/openclaw-mem0@1.0.6
插件市场限流或下载失败时,可先通过 npm 安装,再从本地目录安装:
npm install -g @mem0/openclaw-mem0@1.0.6
npm root -g
openclaw plugins install /path/to/node_modules/@mem0/openclaw-mem0
安装后修改以下文件:
~/.openclaw/extensions/openclaw-mem0/openclaw.plugin.json
将 configSchema.additionalProperties 改为 true,使 baseUrl 能通过 OpenClaw 配置校验。
OpenClaw v2026.3.23 尚未提供 hooks.allowConversationAccess 配置,配置中省略该字段。配置如下:
{
"plugins": {
"slots": {
"memory": "openclaw-mem0"
},
"entries": {
"openclaw-mem0": {
"enabled": true,
"config": {
"mode": "platform",
"baseUrl": "http://<接入点别名>:1995/mem0",
"apiKey": "<AMS API Key>",
"userId": "openclaw"
}
}
}
}
}