OpenClaw および Hermes 向けの公式プラグインを使用して、メモリサービスと連携します。これらのプラグインは、会話の前に関連する長期記憶を自動的に取得してコンテキストに挿入し、会話の終了後に書き戻します。
OpenClaw プラグイン
openclaw-tablestore-memory は OpenClaw 用のメモリプラグインです。Tablestore Node.js SDK を使用してメモリサービスを呼び出します。
インストール
openclaw plugins install @tablestore/openclaw-tablestore-memory設定
最小構成は次のとおりです:
{
"plugins": {
"slots": {
"memory": "tablestore-mem"
},
"entries": {
"tablestore-mem": {
"enabled": true,
"config": {
"endpoint": "https://<instance>.cn-beijing.ots.aliyuncs.com",
"otsInstanceName": "<instance-name>",
"accessKeyId": "<AccessKey ID>",
"accessKeySecret": "<AccessKey Secret>"
}
}
}
}
}オプション設定
パラメーター | デフォルト | 説明 |
|
| アプリケーション識別子。 |
| セッションのユーザー情報から導出 | テナントまたはユーザーの識別子。 |
|
| メモリストア名。 |
|
| メモリストアが存在しない場合、自動的に作成します。 |
|
| 会話終了後にメモリを書き戻す機能を有効化または無効化します。 |
|
| 返却する検索結果の件数。 |
|
| リランクを有効化または無効化します。 |
スコープマッピング
OpenClaw プラグインは、書き込み操作に現在のランタイムのアイデンティティを使用します:
{
"appId": "openclaw",
"tenantId": "<current-user>",
"agentId": "<runtime-agent>",
"runId": "<runtime-session>"
}検索操作では、テナント内のエージェントおよびセッションにまたがるスコープを使用します。agentId と runId パラメータは、ワイルドカード文字 * に設定されます:
{
"appId": "openclaw",
"tenantId": "<current-user>",
"agentId": "*",
"runId": "*"
}ランタイムの動作
before_prompt_buildフェーズで関連する長期記憶を取得します。取得したメモリは、可視のセッション履歴に直接書き込むのではなく、非表示のコンテキストに挿入します。
agent_endフェーズで、現在のターンのユーザーメッセージとアシスタントメッセージを収集します。デフォルトでは、メモリストアに書き戻すために
AddMemoriesを非同期に呼び出します。
CLI およびスラッシュコマンド
OpenClaw プラグインは、次のデバッグコマンドを提供します:
openclaw tablestore-mem add "Alice likes jasmine tea" --uid alice
openclaw tablestore-mem search "what does Alice like" --uid aliceOpenClaw のセッション内では、次のコマンドを使用できます:
/tablestore-mem-add Alice likes jasmine tea
/tablestore-mem-search jasmine teaHermes プラグイン
hermes-tablestore-memory は Hermes エージェント向けの外部メモリプロバイダーです。Tablestore Python SDK を使用してメモリサービスを呼び出します。
インストール
hermes plugins install https://github.com/aliyun/hermes-tablestore-memory
hermes memory setuphermes memory setup の実行時に、tablestore-mem を選択します。
このプラグインには tablestore>=6.4.5 が必要です。Hermes で使用する Python 環境にこの依存関係がインストールされていない場合は、その環境に SDK をインストールする必要があります。
シークレットキーの設定
シークレットキーは ~/.hermes/.env に書き込むことを推奨します:
TABLESTORE_MEMORY_AK=<AccessKey ID>
TABLESTORE_MEMORY_SK=<AccessKey Secret>メモリサービスの設定
機密性のない設定は $HERMES_HOME/tablestore_memory.json に記述します:
{
"endpoint": "https://<instance>.cn-beijing.ots.aliyuncs.com",
"instance_name": "<instance-name>",
"memory_store_name": "hermes_mem",
"description": "",
"app_id": "hermes",
"tenant_id": "",
"enable_rerank": true,
"auto_create_store": true,
"timeout": 30
}デフォルト値
パラメーター | デフォルト | 説明 |
|
| メモリストア名。 |
|
| アプリケーション識別子。 |
| 空の文字列 | 空の場合、セッションコンテキストから推論されるか、デフォルトで |
|
| リランクを有効化または無効化します。 |
|
| メモリストアが存在しない場合に、自動的に作成します。 |
|
| リクエストのタイムアウト (秒)。 |
スコープマッピング
Hermes プラグインは、次のルールに従って 4 パートのスコープを設定します:
フィールド | ソース |
|
|
| Hermes セッションの |
| Hermes セッションのアイデンティティ。デフォルトは |
| 優先度の高い順に |
書き込み操作では、現在のセッションの厳密なスコープを使用します。検索操作では、エージェントおよびセッションにまたがるテナントレベルのスコープを使用し、agentId と runId を "" に設定します。
ツール
ツール | 説明 |
| 現在のスコープ内のメモリを表示します。 |
| 長期記憶を検索します。 |
| 長期記憶に新しいエントリを追加します。 |
| 長期記憶からエントリを削除します。 |
また、このプラグインは、各会話ターンの後にユーザーとアシスタントのメッセージを自動的に同期し、次のターンが始まる前に関連するメモリをプリフェッチします。
Hermes CLI コマンド
memory.provider を tablestore-mem に設定した後、次のコマンドを使用できます:
hermes tablestore-mem add "User prefers concise answers"
hermes tablestore-mem add "User likes Rust" --metadata source=manual --metadata topic=preferences
hermes tablestore-mem add "Write this memory synchronously" --sync
hermes tablestore-mem search "concise answers"
hermes tablestore-mem search "Rust" --top-k 10連携の推奨事項
アプリケーションですでに OpenClaw または Hermes を使用している場合は、対応する公式プラグインの使用を推奨します。
メモリの書き込み戦略、検索戦略、またはコンテキストの組み立て方法をカスタマイズする必要がある場合は、SDK を直接使用してください。詳細については、Python SDK 使用ガイドまたは Node.js SDK 使用ガイドをご参照ください。
デフォルトでは、プラグインは同一テナント内のすべてのエージェントおよびセッションにまたがって長期記憶を検索します。これは、ほとんどの個人向けおよびビジネス向けアシスタントのシナリオに適しています。
ビジネス要件として検索をセッション単位で厳密に分離する必要がある場合は、SDK を使用して完全なスコープを指定してください。フィールドのセマンティクスについては、API リファレンスをご参照ください。
2 つのエージェントがメモリを共有する場合、同じ Tablestore インスタンスを使用します。両方のエージェントで
appId、tenantId、memoryStoreNameが同一である必要があります。agentIdは各エージェントのランタイムによって決まり、取得時にはワイルドカードの*が使用されます。