OpenClaw 是當前最受歡迎的開源 Agent 架構,其預設的、基於本地檔案的記憶系統在處理長周期、跨會話的任務時存在局限性。本文將介紹如何通過 openclaw-mem0 外掛程式,將AnalyticDB for MySQL作為 OpenClaw 的持久化記憶後端,為您的 Agent 提供一個企業級的、可無限擴充的“長期大腦”。
應用情境
特性 | 說明 |
跨會話記憶管理 | 基於 AnalyticDB for MySQL+Mem0 提供持久化記憶儲存,長期記錄使用者行為。 |
多裝置協同共用 | 多個終端或 Agent 執行個體共用同一記憶庫,實現記憶共用。 |
即時高效檢索 | 毫秒級記憶讀寫能力,儲存高可靠性與Auto Scaling。 |
企業級可靠性 | 雲端記憶即時備份與恢複機制。 |
方案架構
本方案通過以下組件協同工作,構建一個完整的持久化記憶系統:
組件 | 角色 |
OpenClaw | Agent 的核心運行架構。 |
| 扮演“橋樑”角色,攔截對話,調用 LLM 和 Embedding 模型,並將結構化的記憶存入或檢索於 AnalyticDB for MySQL。 |
AnalyticDB for MySQL | 作為持久化記憶後端,負責向量化記憶的儲存與高效檢索。 |
阿里雲百鍊大模型服務 | 提供對話所需的大語言模型(LLM)和文本向量化(Embedding)模型。 |
準備工作
在開始整合前,請確保您已準備好以下資源:
已建立AnalyticDB for MySQL 版叢集,並確保其叢集版本需 ≥ 3.2.7。具體操作請參見:企業版、基礎版及湖倉版快速入門。
說明請在雲原生資料倉儲AnalyticDB MySQL控制台集群信息頁面,配寘資訊地區,查看和升級核心版本。若叢集已是最新預設基準版本但仍需升級,請通過DingTalk聯絡阿里雲服務支援處理(DingTalk帳號:
x5v_rm8wqzuqf)。已擷取模型服務 API Key,本教程使用阿里雲百鍊大模型服務平台,請開通服務並擷取 API Key,詳情請參考文檔:擷取API Key。
操作步驟
本操作將基於阿里雲Simple Application Server + AnalyticDB for MySQL 叢集示範 OpenClaw 接入openclaw-mem0實現長期記憶儲存。
步驟 1:開通 OpenClaw 執行個體(可選)
購買伺服器執行個體:
地區:選擇AnalyticDB for MySQL叢集所在的地區,以確保後續可以進行高效的內網通訊。
鏡像:在應用鏡像中搜尋並選擇 OpenClaw。
套餐配置:為確保穩定運行,推薦選擇 通用型 4核16GB 或更高規格。
根據您的需求選擇購買時間長度和數量,然後單擊立即購買。
初始化 OpenClaw 應用:
等待執行個體狀態變為運行中後,單擊執行個體ID進入伺服器概覽頁。
切換到應用詳情選項卡,根據頁面指引,依次完成連接埠放通和配置OpenCLaw。
在模組,可進行大模型的配置。
開通內網互連:
在左側導覽列中,選擇內網互連。
單擊內網互連按鈕。此操作將打通Simple Application Server與您同一地區下的其他阿里雲服務(如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 服務。