コマンドラインから、エージェントメモリのメモリストア、メモリユニット、メモリ取得、監査レコードを管理します。また、コマンド間で共通の規約であるスコープ階層、ワイルドカード、ページネーションについても説明します。
前提条件
コマンドラインツールがインストールされ、アクセス認証情報が構成されていること。詳細については、「Agent Storage CLI」をご参照ください。
後続のコマンドで対応するパラメータを省略できるように、デフォルトのスコープ値 (例:
memory_store_name、memory_app_id) を事前に構成してください。
スコープレベルとワイルドカード
メモリストアのスコープは、最も広いものから最も狭いものまで、4つのレベルのIDで構成されます:
appId → tenantId → agentId → runId
|
スコープパラメータ |
必須 |
説明 |
|
|
デフォルトが構成されていない場合は必須 |
アプリケーションID。アプリケーションを分離するために使用する主要なスコープパラメータです。 |
|
|
いいえ |
テナントID。 |
|
|
コマンドによって異なります (後述) |
エージェントID。 |
|
|
いいえ |
セッションまたは run ID。 |
--agent-id が必須となる場合:configure set memory_agent_id でデフォルトを設定している場合でも、次のコマンドでは --agent-id を明示的に指定してください:
get/catupdate-unitdelete-unit/rm-unitmsg-list/ls-msgs
add、search、list-units、および req-list などの他のすべてのコマンドでは、--agent-id を省略できます。その場合、サーバーは設定済みのデフォルト値を使用します。
ワイルドカード * の使用法:
|
コマンドカテゴリ |
代表的なコマンド |
ワイルドカード |
|
取得 |
|
はい |
|
一覧 |
|
はい |
|
書き込み |
|
いいえ |
|
単一レコード取得 |
|
いいえ |
|
更新 |
|
いいえ |
|
削除 |
|
いいえ |
ページネーション
メモリストアのすべての一覧コマンド (memory list、list-units、msg-list、req-list を含む) は結果を 1 ページ分だけ返し、 自動的にページネーションしません。さらに結果を取得するには、レスポンスの nextToken を --next-token として渡してください:
tablestore-agent-cli memory list-units --store agent_memory --app-id app-001 --next-token <token>
ナレッジベースのコマンド kb list および kb doc-list とは異なり、メモリストアの一覧コマンドは自動的にページネーションしません。
メモリストアの管理
メモリストアは、エージェントの長期記憶を保持し、それらの記憶に対する書き込み、取得、監査のオペレーションをサポートします。
メモリストアの作成
tablestore-agent-cli memory create --store agent_memory --description "Long-term memory store"
configure set memory_store_name でデフォルトのメモリストア名を設定している場合は、--store を省略できます:
tablestore-agent-cli configure set memory_store_name agent_memory
tablestore-agent-cli memory create --description "Long-term memory store"
メモリストアの一覧表示
tablestore-agent-cli memory ls
tablestore-agent-cli memory list --limit 50 --next-token <token>
memory ls は memory list のエイリアスです。ページネーションの動作については、「ページネーション」をご参照ください。
メモリストアの表示
tablestore-agent-cli memory describe --store agent_memory
tablestore-agent-cli memory show --store agent_memory
memory show は memory describe のエイリアスです。
説明の更新
tablestore-agent-cli memory update --store agent_memory --description "New description"
メモリストアの削除
メモリストアを削除すると、含まれるすべてのメモリデータが削除されます。この操作は元に戻せません。
tablestore-agent-cli memory delete --store agent_memory # TTY で確認を求められます
tablestore-agent-cli memory rm --store agent_memory -y # 確認をスキップします
memory rm は memory delete のエイリアスです。
メモリの書き込み
指定したスコープに 1 件以上のメモリを書き込みます。--app-id およびその他のスコープパラメータの説明については、「スコープレベルとワイルドカード」をご参照ください。
単一テキストメモリの書き込み
tablestore-agent-cli memory add --store agent_memory --app-id app-001 --text "The user likes mapo tofu"
抽出完了まで同期的に待機
デフォルトでは、書き込みコマンドは非同期で返されます。メモリ抽出が完了するまでブロックするには、--sync フラグを追加してください:
tablestore-agent-cli memory add --store agent_memory --app-id app-001 --text "The user prefers Sichuan cuisine" --sync
JSON ファイルからのバッチ書き込み
tablestore-agent-cli memory add --store agent_memory --app-id app-001 --messages-file ./messages.json
messages.json には JSON 配列を含める必要があります。
メタデータの付与
tablestore-agent-cli memory add --store agent_memory --app-id app-001 --text "The user prefers Sichuan cuisine" --metadata '{"source":"chat","confidence":"high"}'
パラメータ
|
パラメータ |
必須 |
デフォルト |
説明 |
|
|
いいえ |
|
メモリストア名。 |
|
|
デフォルトが構成されていない場合は必須 |
|
アプリケーションを分離するために使用する主要なスコープパラメータです。 |
|
|
いいえ |
|
テナントID。 |
|
|
いいえ |
|
エージェントID。 |
|
|
いいえ |
|
セッションまたは run ID。 |
|
|
いずれか一方が必須 |
— |
メモリのテキスト内容。 |
|
|
いずれか一方が必須 |
— |
一括書き込み用の JSON ファイルのパス。 |
|
|
いいえ |
— |
JSON 文字列としてのメタデータ。文字列のキーと文字列の値を持つオブジェクトである必要があります。 |
|
|
いいえ |
— |
メタデータ JSON ファイルのパス。 |
|
|
いいえ |
|
抽出が完了するまで待機するかどうか。 |
書き込みコマンドのスコープパラメータでは、ワイルドカード * は 使用できません。ワイルドカードのルールについては、「スコープレベルとワイルドカード」をご参照ください。
メモリの検索
指定したスコープに対してセマンティック検索を実行します。検索コマンドのスコープパラメータでは、ワイルドカード * を 使用できます。
基本検索
tablestore-agent-cli memory search --store agent_memory --app-id app-001 --tenant-id tenant-001 --query "What food does the user like" --top-k 5
再ランキングの無効化
tablestore-agent-cli memory search --store agent_memory --app-id app-001 --tenant-id tenant-001 --query "user preferences" --disable-rerank
メタデータによるフィルタリング
tablestore-agent-cli memory search --store agent_memory --app-id app-001 --tenant-id tenant-001 --query "user preferences" --metadata '{"source":{"equals":"chat"}}'
レスポンス例
{"items":[{"memory":{"id":"mem-001","text":"The user likes mapo tofu"},"score":0.91}],"totalCount":1}
パラメータ
|
パラメータ |
デフォルト |
説明 |
|
|
|
返す結果数。有効な範囲:0~50。 |
|
|
|
再ランキングを有効にするかどうか。無効にするには |
|
|
— |
JSON 文字列としてのメタデータフィルタ。 |
|
|
— |
メタデータフィルタ JSON ファイルのパス。 |
メモリユニットの管理
メモリユニットは、メモリストアに保存される原子的なレコードです。コマンドごとのワイルドカード * のサポートについては、「スコープレベルとワイルドカード」をご参照ください。
メモリユニットの一覧表示
tablestore-agent-cli memory list-units --store agent_memory --app-id app-001
tablestore-agent-cli memory ls-units --store agent_memory --app-id app-001 --limit 20 --next-token <token>
memory ls-units は memory list-units のエイリアスです。ページネーションの動作については、「ページネーション」をご参照ください。
メモリユニットの表示
tablestore-agent-cli memory get --store agent_memory --memory-id mem-001 --app-id app-001
tablestore-agent-cli memory cat --store agent_memory --memory-id mem-001 --app-id app-001
memory cat は memory get のエイリアスです。
メモリユニットの更新
# テキストを更新します
tablestore-agent-cli memory update-unit --store agent_memory --memory-id mem-001 --app-id app-001 --text "The user strongly prefers spicy food"
# メタデータを更新します
tablestore-agent-cli memory update-unit --store agent_memory --memory-id mem-001 --app-id app-001 --metadata '{"confidence":"very_high"}'
--text または --metadata の少なくとも 1 つを指定してください。
メモリユニットの削除
tablestore-agent-cli memory delete-unit --store agent_memory --memory-id mem-001 --app-id app-001
tablestore-agent-cli memory rm-unit --store agent_memory --memory-id mem-001 --app-id app-001 -y
memory rm-unit は memory delete-unit のエイリアスです。
メッセージとリクエストの監査
RAW メッセージレコードの表示
tablestore-agent-cli memory msg-list --store agent_memory --app-id app-001
tablestore-agent-cli memory ls-msgs --store agent_memory --app-id app-001
memory ls-msgs は memory msg-list のエイリアスです。
リクエスト監査レコードの表示
tablestore-agent-cli memory req-list --store agent_memory --app-id app-001
tablestore-agent-cli memory req-list --store agent_memory --app-id app-001 --operation AddMemories
tablestore-agent-cli memory ls-reqs --store agent_memory --app-id app-001
memory ls-reqs は memory req-list のエイリアスです。--operation を使用して、AddMemories や SearchMemories などのオペレーションタイプでフィルタリングできます。
パラメータ
|
パラメータ |
デフォルト |
説明 |
|
|
|
ページあたりの結果数。 |
|
|
— |
ページネーショントークン。ページネーションの動作については、「ページネーション」をご参照ください。 |
|
|
— |
オペレーションタイプのフィルタ。 |