全部產品
Search
文件中心

Tablestore:Tablestore記憶儲存在OpenClaw中的實現

更新時間:Mar 20, 2026

OpenClaw通過@tablestore/openclaw-mem0外掛程式整合Table Store(Tablestore),為智能體提供長期記憶能力:在對話中出現可提取的使用者資訊時(如偏好、習慣等),mem0 自動將其結構化後以向量形式存入 Tablestore,並在後續對話中自動檢索注入上下文,讓智能體隨使用逐漸瞭解使用者。本文介紹如何安裝、配置該外掛程式並驗證其工作狀態。

方案介紹

OpenClaw 原生記憶存在以下局限:上下文壓縮(Compact)後記憶丟失、多 Agent 之間記憶隔離、本地 Embedding 部署複雜、資料備份與遷移困難。使用 Tablestore+mem0 做記憶儲存,具備以下核心優勢:

  • 雲託管,免營運:Tablestore 為阿里雲全託管服務,無需自建資料庫,隨用隨付,中小規模情境成本友好。

  • 資料自主可控:資料存放區於使用者自己的阿里雲帳號,可通過 Tablestore 控制台直接查看,支援資源隔離、許可權管理與監控警示。

  • 跨 Agent 記憶共用:同一 userId 下,多個 Agent 記憶互連,Compact 不影響歷史記憶保留。

  • 智能結構化提取:自動從對話中抽取姓名、偏好、決策等關鍵事實,不堆積原始對話內容。

  • 混合檢索召回:向量相似性與 BM25 關鍵詞檢索並用,兼顧語義理解與精確匹配,毫秒級響應。

前提條件

自動安裝

向 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-corememory-lancedb

由於 OpenClaw 使用 Node.js tar 模組解壓外掛程式包,在檔案數量較多時(@tablestore/openclaw-mem0 含約 7000 個檔案)可能會觸發 120 秒逾時。需通過以下方式繞過:先用 npm 下載,再用系統 tar 解壓,最後從本地路徑安裝。

  1. 下載外掛程式包到/tmp目錄

    cd /tmp && npm pack @tablestore/openclaw-mem0
  2. 用系統 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
  3. 從本地路徑安裝

    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 認證(自動建立執行個體)

不填 endpointinstanceName,外掛程式自動在指定地區建立 Tablestore 執行個體。可通過 regionId 指定地區,預設為 cn-hangzhou

說明

帳號執行個體數量上限為10,詳見使用限制

"vectorStore": {
  "provider": "tablestore",
  "config": {
    "accessKeyId": "{AccessKey ID}",
    "accessKeySecret": "{AccessKey Secret}",
    "regionId": "cn-hangzhou"
  }
}
重要

自動建立的執行個體預設不開啟公網訪問。如果在公網環境運行,需要在Table Store控制台選擇新建立的執行個體,然後在实例管理 > 網路管理中啟用公網訪問。

方式三:ECS RAM Role 認證

在阿里雲 ECS 上運行時,推薦使用 ECS RAM Role 代替 AccessKey,無需在設定檔中儲存靜態憑證。RAM Role 需綁定 AliyunOTSFullAccess 許可權,詳見執行個體RAM角色

"vectorStore": {
  "provider": "tablestore",
  "config": {
    "roleName": "{RAM 角色名稱}",
    "regionId": "cn-hangzhou"
  }
}

已有執行個體時,將regionId替換為endpointinstanceName,參考方式一的配置結構。

說明

embedderllm 均通過 DashScope 的 OpenAI 相容介面調用,填寫百鍊 API Key 即可,provideropenaiembedder 使用 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: true

Total memories 為當前記憶條數,初始為 0,隨使用積累增長。

使用記憶

自動提取與召回

配置生效後無需額外操作。在 TUI 或訊息渠道與智能體對話時,mem0 會自動:

  • 提取:對話中出現可記錄的使用者資訊(如飲食偏好、編程習慣、專案背景等)時自動寫入 Tablestore

  • 召回:下次對話前自動檢索相關記憶注入上下文,無需使用者重複說明

搜尋記憶

openclaw mem0 search "杭州"

返回語義上與檢索詞相關的記憶條目,可用於排查記憶是否正確寫入或調試檢索效果。

常見問題

問題

解決方案

外掛程式未載入

檢查 plugins.slots.memory 是否為 "openclaw-mem0",以及 plugins.entries["openclaw-mem0"].enabled 是否為 true

安裝時下載逾時

配置鏡像源:npm config set registry https://registry.npmmirror.com,然後重新執行步驟一

AccessKeyId is invalid

檢查 AccessKey ID 和 Secret 是否正確,帳號是否正常

首次使用報 OTSObjectNotExist

正常現象,外掛程式在首次訪問時自動建立資料表和索引

自動建立執行個體失敗

確認 AccessKey 擁有 AliyunOTSFullAccess 許可權,或檢查帳號執行個體數量是否已達上限

Embedding 報錯

確認百鍊 API Key 正確且帳號有調用額度

OTSAuthFailed(403)

自動建立的執行個體預設未開啟公網訪問,在Table Store控制台選擇新建立的執行個體,然後在实例管理 > 網路管理中啟用公網訪問後重試