全部產品
Search
文件中心

AnalyticDB:基於Mem0的OpenClaw長記憶方案

更新時間:Mar 20, 2026

OpenClaw 是當前最受歡迎的開源 Agent 架構,其預設的、基於本地檔案的記憶系統在處理長周期、跨會話的任務時存在局限性。本文將介紹如何通過 openclaw-mem0 外掛程式,將AnalyticDB for MySQL作為 OpenClaw 的持久化記憶後端,為您的 Agent 提供一個企業級的、可無限擴充的“長期大腦”。

應用情境

特性

說明

跨會話記憶管理

基於 AnalyticDB for MySQL+Mem0 提供持久化記憶儲存,長期記錄使用者行為。

多裝置協同共用

多個終端或 Agent 執行個體共用同一記憶庫,實現記憶共用。

即時高效檢索

毫秒級記憶讀寫能力,儲存高可靠性與Auto Scaling。

企業級可靠性

雲端記憶即時備份與恢複機制。

方案架構

本方案通過以下組件協同工作,構建一個完整的持久化記憶系統:

組件

角色

OpenClaw

Agent 的核心運行架構。

openclaw-mem0外掛程式

扮演“橋樑”角色,攔截對話,調用 LLM 和 Embedding 模型,並將結構化的記憶存入或檢索於 AnalyticDB for MySQL

AnalyticDB for MySQL

作為持久化記憶後端,負責向量化記憶的儲存與高效檢索。

阿里雲百鍊大模型服務

提供對話所需的大語言模型(LLM)和文本向量化(Embedding)模型。

準備工作

在開始整合前,請確保您已準備好以下資源:

  1. 已建立AnalyticDB for MySQL 版叢集,並確保其叢集版本需 ≥ 3.2.7。具體操作請參見:企業版、基礎版及湖倉版快速入門

    說明

    雲原生資料倉儲AnalyticDB MySQL控制台集群信息頁面,配寘資訊地區,查看和升級核心版本。若叢集已是最新預設基準版本但仍需升級,請通過DingTalk聯絡阿里雲服務支援處理(DingTalk帳號:x5v_rm8wqzuqf)。

  2. 已擷取模型服務 API Key,本教程使用阿里雲百鍊大模型服務平台,請開通服務並擷取 API Key,詳情請參考文檔:擷取API Key

操作步驟

本操作將基於阿里雲Simple Application Server + AnalyticDB for MySQL 叢集示範 OpenClaw 接入openclaw-mem0實現長期記憶儲存。

步驟 1:開通 OpenClaw 執行個體(可選)

  1. 購買伺服器執行個體:

    • 訪問 Simple Application Server購買頁面

    • 地區:選擇AnalyticDB for MySQL叢集所在的地區,以確保後續可以進行高效的內網通訊。

    • 鏡像:在應用鏡像中搜尋並選擇 OpenClaw

    • 套餐配置:為確保穩定運行,推薦選擇 通用型 4核16GB 或更高規格。

    • 根據您的需求選擇購買時間長度和數量,然後單擊立即購買

  2. 初始化 OpenClaw 應用:

    • 等待執行個體狀態變為運行中後,單擊執行個體ID進入伺服器概覽頁。

    • 切換到應用詳情選項卡,根據頁面指引,依次完成連接埠放通配置OpenCLaw

    • 應用詳情 > 模型配置模組,可進行大模型的配置。

  3. 開通內網互連:

    • 在左側導覽列中,選擇內網互連

    • 單擊內網互連按鈕。此操作將打通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 檔案。安裝完成後,在 pluginsentries 中可以看到 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 並進行交流。

    切換Agent

  • 步驟 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 中的hostportuserpassword是否正確。

    • 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 服務。