mcpField
A
alibabacloud-tablestore-openclaw-memory

alibabacloud-tablestore-openclaw-memory

github.com/aliyunエージェントワークフロー281139 回インストール1 日前に更新
リポジトリ

alibabacloud-tablestore-openclaw-memory について

OpenClaw で Tablestore Mem0 メモリプラグインを設定するためのスキルです。認証、既存インスタンスへの接続または新規作成、Qwen の LLM と埋め込みサービスの設定を案内します。

主な機能

  1. 01OpenClaw プラグインの導入と設定を案内
  2. 02AccessKey または ECS RAM Role 認証に対応
  3. 03Tablestore インスタンスへの接続または作成
  4. 04Qwen LLM と埋め込みサービスの設定
  5. 05再起動、検証、トラブルシューティング手順

活用シーン

  1. 01OpenClaw に永続的な会話メモリを設定
  2. 02既存の Tablestore インスタンスをベクトルストレージとして利用
  3. 03インスタンスを作成してプラグインの読み込みを検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aliyun/alibabacloud-aiops-skills --skill alibabacloud-tablestore-openclaw-memory

インストール後、Claude Code で/alibabacloud-tablestore-openclaw-memoryを入力して読み込まれたか確認します。

同梱ファイルreferences/ram-policies.md

詳細

前提条件

ユーザーには以下が必要です。

  1. Alibaba Cloud アカウント
  2. 認証情報 — AliyunOTSFullAccess 権限を持つ AccessKey ID + Secret、または ECS RAM ロール(ECS での使用を推奨)
  3. Qwen LLM と埋め込み用の 阿里云百炼 API Key
  4. 任意:既存の Tablestore インスタンスのエンドポイントとインスタンス名(指定がない場合は自動作成されます)
  5. 任意:自動プロビジョニング用の リージョン ID(デフォルトは cn-hangzhou)

📋 RAM 権限: 必要な API 権限の一覧については、references/ram-policies.md を参照してください。


完了の定義

以下のすべてを満たすまで、このタスクは完了ではありません。

  1. ユーザーが認証情報を提供している
  2. プラグインがインストールされている(バージョン 0.8.2)
  3. openclaw.json が正しく設定されている
  4. OpenClaw が再起動されている
  5. セットアップが検証されている(プラグインがエラーなしで読み込まれる)

オンボーディング

ステップ 0 — 認証情報を収集する

[AGENT] ユーザーに尋ねます。

Tablestore Mem0 をセットアップするには、以下が必要です。

必須:

  1. Alibaba Cloud AccessKey ID
  2. Alibaba Cloud AccessKey Secret
  3. 阿里云百炼 API Key

任意(既存の Tablestore インスタンスがある場合): 4. Tablestore エンドポイント(例:https://my-instance.cn-hangzhou.ots.aliyuncs.com) 5. Tablestore インスタンス名

エンドポイントとインスタンス名が指定されない場合、新しい Tablestore インスタンスを自動的に作成します。その場合、以下が必要です。 6. リージョン ID(例:cn-hangzhou、cn-shanghai)

ユーザーに尋ねます。

質問 1 — 認証: どの方法で認証しますか?

  • オプション A:ECS RAM ロール(ECS での使用を推奨)— ロール名を指定してください。
  • オプション B:AccessKey — AccessKey ID と Secret を指定してください。

質問 2 — Tablestore インスタンス: すでに Tablestore インスタンスがありますか?

  • はい → エンドポイントとインスタンス名を指定してください。
  • いいえ → 自動プロビジョニング用のリージョン ID を指定してください。

⚠️ 高リスク操作 — 実行前の確認:

ユーザーがいいえと回答した場合、エージェントは必ず以下を行います。

  1. 明示的な確認:

    ⚠️ このセットアップでは、Alibaba Cloud アカウントに新しい Tablestore インスタンスを作成します。

    • インスタンスタイプ:VCU(従量課金、通常は月額 ¥1 未満)
    • リージョン:指定されたリージョン 続行してよろしいですか?(はい/いいえ)
  2. 再確認:

    Tablestore コンソール(https://ots.console.aliyun.com/)で、既存のインスタンスがないことを確認してください。

ユーザーが明示的に確認するまで、続行しないでください。

ユーザーが認証情報を持っていない場合は、以下を案内してください。

  • Alibaba Cloud のサインアップ:https://account.alibabacloud.com/register/intl_register.htm
  • AccessKey の作成:https://ram.console.aliyun.com/manage/ak
  • 阿里云百炼 API Key:https://dashscope.console.aliyun.com/apiKey
ECS RAM ロールの設定(ユーザーがオプション A を選択した場合)
  1. ECS インスタンスに RAM ロールを割り当てる — ドキュメント
  2. ロールに AliyunOTSFullAccess を付与する — リファレンス
ステップ 1 — プラグインをインストールする

プラグインのバージョン:0.8.2

⚠️ 外部パッケージのインストールに関する注意:

このスキルは、npm レジストリから @tablestore/[email protected] をインストールします。続行すると、外部パッケージのインストールに同意したことになります。 同意しますか?(はい/いいえ)

ユーザーの確認を待ってから、次を実行します。

NPMJS_TIME="$(curl -o /dev/null -sS --connect-timeout 2 --max-time 6 -w '%{time_total}' https://registry.npmjs.org/@tablestore%2fopenclaw-mem0 || echo timeout)"
MIRROR_TIME="$(curl -o /dev/null -sS --connect-timeout 2 --max-time 6 -w '%{time_total}' https://registry.npmmirror.com/@tablestore%2fopenclaw-mem0 || echo timeout)"

if [ "$MIRROR_TIME" != "timeout" ] && { [ "$NPMJS_TIME" = "timeout" ] || awk "BEGIN { exit !($NPMJS_TIME > 2 && $MIRROR_TIME < $NPMJS_TIME) }"; }; then
  echo "Using China npm mirror"
  NPM_CONFIG_REGISTRY=https://registry.npmmirror.com openclaw plugins install @tablestore/[email protected]
else
  openclaw plugins install @tablestore/[email protected]
fi

extract tar timed out が発生した場合は、手動インストールに切り替えます。

cd /tmp && npm pack @tablestore/[email protected]
mkdir -p /tmp/openclaw-mem0-install
tar xzf /tmp/tablestore-openclaw-mem0-*.tgz -C /tmp/openclaw-mem0-install --strip-components=1
openclaw plugins install /tmp/openclaw-mem0-install
ステップ 2 — OpenClaw のバージョンを検出する
openclaw --version
  • バージョンが >= 2.2.0 → ステップ 3A を使用します
  • バージョンが < 2.2.0 → ステップ 3B を使用します(.plugins.allow の行を削除)
Step 3 — openclaw.json を設定する

設定ファイルのパスを検出します:

OPENCLAW_CONFIG="$(openclaw config file 2>/dev/null | head -1)"
OPENCLAW_CONFIG="${OPENCLAW_CONFIG/#\~/$HOME}"
echo "Config file: $OPENCLAW_CONFIG"

⚠️ 認証情報のセキュリティ(必須):

常に環境変数を優先してください:

export TABLESTORE_ACCESS_KEY_ID="<your-access-key-id>"
export TABLESTORE_ACCESS_KEY_SECRET="<your-access-key-secret>"
export DASHSCOPE_API_KEY="<your-dashscope-api-key>"

⚠️ 入力の検証(必須):

入力検証ルール
AccessKey ID正規表現:^LTAI[Nt][A-Za-z0-9]{12,20}$
AccessKey Secret英数字、約30文字
Region ID正規表現:^cn-[a-z]+(-[0-9]+)?$ または ^[a-z]+-[a-z]+-[0-9]+$
Endpoint正規表現:^https://[a-z0-9-]+\.[a-z0-9-]+\.ots\.aliyuncs\.com$
Instance Name正規表現:^[a-z][a-z0-9-]{0,19}$

⚠️ Embedder/LLM プロバイダーは "openai"、baseURL は "https://dashscope.aliyuncs.com/compatible-mode/v1" にする必要があります。"dashscope" にはしないでください。

Step 3A — OpenClaw ≥2.2.0
認証方式既存のインスタンスがあるかvectorStore.config のフィールド
AccessKeyいいえaccessKeyId、accessKeySecret、regionId
AccessKeyはいaccessKeyId、accessKeySecret、endpoint、instanceName
ECS RAM RoleいいえroleName、regionId
ECS RAM RoleはいroleName、endpoint、instanceName

テンプレート(AccessKey 認証、自動作成):

jq '
  .plugins.slots.memory = "openclaw-mem0" |
  .plugins.entries["openclaw-mem0"] = {
    enabled: true,
    config: {
      mode: "open-source",
      oss: {
        vectorStore: {
          provider: "tablestore",
          config: {
            accessKeyId: "${TABLESTORE_ACCESS_KEY_ID}",
            accessKeySecret: "${TABLESTORE_ACCESS_KEY_SECRET}",
            regionId: "cn-hangzhou"
          }
        },
        embedder: {
          provider: "openai",
          config: {
            apiKey: "${DASHSCOPE_API_KEY}",
            model: "text-embedding-v3",
            baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
          }
        },
        llm: {
          provider: "openai",
          config: {
            apiKey: "${DASHSCOPE_API_KEY}",
            model: "qwen-plus",
            baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
          }
        }
      }
    }
  } |
  .plugins.allow = ((.plugins.allow // []) + ["openclaw-mem0"] | unique)
' "$OPENCLAW_CONFIG" > /tmp/openclaw-tmp.json && mv /tmp/openclaw-tmp.json "$OPENCLAW_CONFIG"

既存のインスタンスの場合:regionId を endpoint と instanceName に置き換えます。 ECS RAM Roleの場合:accessKeyId/accessKeySecret を roleName に置き換えます。

Step 3B — OpenClaw <2.2.0

Step 3A と同様ですが、.plugins.allow の行を削除します。

Step 4 — OpenClaw を再起動する
openclaw gateway restart

ゲートウェイが再起動するまで約1分待ちます。

Step 5 — セットアップを確認する
openclaw mem0 stats

成功条件:プラグインがエラーなく読み込まれ、モードとメモリ数が表示されること。

Step 6 — 引き継ぐ
✅ Tablestore Mem0 is ready.

Your memory is now backed by Alibaba Cloud Tablestore.
The plugin will automatically recall relevant memories before each conversation
and capture key facts after each conversation.

Manual commands: "remember this" / "what do you know about me?" / "forget that"

Configuration: Tablestore vector store + 阿里云百炼 text-embedding-v3 + Qwen-Plus
Instance: <auto-created or user-provided>

Security: Prefer ECS RAM Role on ECS. Never commit credentials to version control.

設定リファレンス

パラメーター必須デフォルト説明
accessKeyIdいいえ*—AccessKey ID(または環境変数 TABLESTORE_ACCESS_KEY_ID)
accessKeySecretいいえ*—AccessKey Secret(または環境変数 TABLESTORE_ACCESS_KEY_SECRET)
roleNameいいえ*—ECS RAM Role 名(または環境変数 TABLESTORE_ROLE_NAME)
endpointいいえ自動作成Tablestore インスタンスのエンドポイント
instanceNameいいえ自動作成Tablestore インスタンス名
regionIdいいえcn-hangzhou自動プロビジョニングに使用するリージョン
tableNameいいえmem0_vectorsデータテーブル名
dimensionいいえ1024ベクトルの次元数

*roleName が設定されていない場合は必須です。

自動プロビジョニング

endpoint/instanceName が指定されていない場合、次の設定で VCU インスタンスを作成します:

  • VCU=0(従量課金)
  • VPC に到達できない場合は、パブリックインターネットアクセスを自動的に有効化

トラブルシューティング

症状対処方法
プラグインが読み込まれないslots.memory = "openclaw-mem0" と enabled = true を確認します
AccessKeyId is invalidAccessKey が正しく、アカウントが有効であることを確認します
自動プロビジョニングに失敗するAccessKey に AliyunOTSFullAccess が付与されていることを確認します
埋め込みエラーDASHSCOPE_API_KEY が設定されていることを確認します
VPC エンドポイントに到達できないプラグインがパブリックアクセスを自動的に有効化します。AliyunOTSFullAccess を確認します
extract tar timed out手動の代替手順を使用します:npm pack + システムの tar
プロバイダーに dashscope と表示されるプロバイダーを "openai" に変更し、正しい baseURL を設定します

更新

自動更新は設定しないでください。明示的に要求された場合にのみ更新してください。

コメント