Sessions and memory
セッション検索
セッション検索
sessions_search は、自分の過去のセッションに含まれるユーザーとアシスタントのテキストを検索します。各結果には
sessionKey、タイムスタンプ、ロール、および一致した短い抜粋が含まれます。前後の会話が必要な場合は、返された
sessionKey を sessions_history に渡します。
可視性と出力
検索には、sessions_history と同じセッション可視性ルールが使用されます。呼び出し元から見える
セッションツリーの範囲外にある結果は、結果件数の上限が適用される前に除外されます。サンドボックス化されたエージェントは、
生成済みセッションの可視性が有効な場合でも、自身が生成したセッションに引き続き制限されます。
抜粋はモデルに返される前に秘匿処理されます。また、結果には件数、抜粋の長さ、 およびレスポンス全体のサイズに上限があります。
インデックスのライフサイクル
OpenClaw は、各エージェントの SQLite データベース内で、トランスクリプト行と併せて全文検索インデックスを保存します。 新しいユーザーメッセージとアシスタントメッセージは、それらを永続化する同じトランザクション内でインデックス化されるため、 インデックスが進行中の会話より遅れることはありません。ツール結果、推論ブロック、画像は除外されます。 検索対象になるのは、トランスクリプトのアクティブなブランチのみです。
インデックス作成以前のトランスクリプト(たとえば、openclaw doctor でインポートされたセッション)と、
アクティブなブランチが巻き戻されたセッションは、次回の検索時に開始されるバックグラウンドの整合処理によって
再インデックス化されます。そのため、indexing: true を含むレスポンスは不完全な場合があります。
インデックス作成の完了後に再試行してください。セッションを削除すると、同じトランザクション内でそのインデックスエントリも削除されます。
現在、検索ではダイアクリティカルマーク除去を行う SQLite の Unicode 単語トークナイザーを使用しています。CJK の部分文字列一致に対応する トライグラムトークン化は、今後の改善予定です。
セッション検索とメモリ検索の違い
生のセッショントランスクリプトから完全一致する単語やフレーズを検索するには、sessions_search を使用します。永続的なメモリファイルと意味検索には、
memory_search を使用します。試験的なセッションメモリコーパスは、この完全一致トランスクリプト検索を意味的に補完するものです。