Workspace Memory v2(オフライン): 研究ノート
対象: Clawd スタイルのワークスペース(agents.defaults.workspace、既定は ~/.openclaw/workspace)で、「メモリ」は 1 日 1 Markdown ファイル(memory/YYYY-MM-DD.md)と、少数の安定ファイル(例: memory.md、SOUL.md)として保存されます。
本ドキュメントは、Markdown をレビュー可能な正規の唯一の正としつつ、派生インデックスにより 構造化された想起(検索、エンティティ要約、信頼度更新)を追加する オフライン ファースト のメモリ アーキテクチャを提案します。
なぜ変更するのか?
現行の構成(1 日 1 ファイル)は、次に優れています。- 「追記のみ」のジャーナリング
- 人手での編集
- Git による耐久性 + 監査性
- 低摩擦な記録(「とにかく書く」)
- 高い再現率の検索(「X について何を決めたか?」「前回 Y を試したのはいつ?」)
- 多数のファイルを読み返さずに行うエンティティ中心の回答(「Alice / The Castle / warelay について教えて」)
- 意見・嗜好の安定性(および変更時の根拠)
- 時間制約(「2025 年 11 月時点で何が真だったか?」)と競合解決 紛争の解決 紛争の解決
設計目標
- オフライン: ネットワーク不要。ノート PC / Castle で動作。クラウド依存なし。
- 説明可能: 取得結果は帰属(ファイル + 位置)が明確で、推論と分離可能。
- 低儀式: 日次ログは Markdown のまま。重いスキーマ作業は不要。
- 段階的: v1 は FTS のみで有用。セマンティック / ベクター / グラフは任意の拡張。
- エージェント フレンドリー: 「トークン予算内での想起」を容易に(小さな事実バンドルを返す)。
ノーススター モデル(Hindsight × Letta)
ブレンドする 2 要素:- Letta / MemGPT スタイルの制御ループ
- 小さな「コア」を常にコンテキストに保持(ペルソナ + 主要なユーザー事実)
- それ以外はコンテキスト外に置き、ツール経由で取得
- メモリ書き込みは明示的なツール呼び出し(append/replace/insert)として行い、永続化後、次ターンで再注入
- Hindsight スタイルのメモリ基盤
- 観測されたもの / 信じられているもの / 要約されたものを分離
- retain / recall / reflect をサポート
- 証拠に基づいて進化する信頼度付きの意見
- エンティティ認識の取得 + 時系列クエリ(完全な知識グラフがなくても)
提案アーキテクチャ(Markdown を正とし、派生インデックスを生成)
正規ストア(Git フレンドリー)
人が読める正規のメモリとして~/.openclaw/workspace を保持します。
推奨ワークスペース構成:
- 日次ログは日次ログのまま。JSON にする必要はありません。 JSONに変換する必要はありません。
bank/ファイルは キュレーション済み で、省察ジョブにより生成されますが、手動編集も可能です。memory.mdは「小さく + コア寄り」のままにします。毎セッション Clawd に見せたい内容です。
派生ストア(機械的想起)
ワークスペース配下に派生インデックスを追加します(必ずしも Git 管理は不要)。- 事実 + エンティティ リンク + 意見メタデータ用の SQLite スキーマ
- 語彙的想起のための SQLite FTS5(高速・小容量・オフライン)
- 任意でセマンティック想起用の埋め込みテーブル(オフライン)
Retain / Recall / Reflect(運用ループ)
Retain: 日次ログを「事実」に正規化
ここで重要な Hindsight の洞察は、極小スニペットではなく 物語的で自己完結した事実 を保存することです。memory/YYYY-MM-DD.md の実践ルール:
- 一日の終わり(または途中)に、
## Retainセクションを追加し、2~5 個の箇条書きを記載します。各箇条書きは:- 物語的(ターンを跨ぐ文脈を保持)
- 自己完結(後から単独で読んで理解できる)
- タイプ + エンティティ言及でタグ付け
- タイプ接頭辞:
W(world)、B(experience/biographical)、O(opinion)、S(observation/summary; 通常は生成) - エンティティ:
@Peter、@warelayなど(スラッグはbank/entities/*.mdにマップ) - 意見の信頼度:
O(c=0.0..1.0)(任意)
## Retain セクションを持つことが最も簡単な「品質レバー」です。
Recall: 派生インデックスに対するクエリ
想起は次をサポートすべきです。- 語彙的: 「正確な用語 / 名前 / コマンドを探す」(FTS5)
- エンティティ: 「X について教えて」(エンティティ ページ + エンティティ連結事実)
- 時系列: 「11 月 27 日頃に何が起きたか」/「先週以降」
- 意見: 「Peter は何を好むか?」(信頼度 + 根拠付き) (信頼性+エビデンス付き) (信頼性+エビデンス付き)
kind(world|experience|opinion|observation)timestamp(元の日付、または抽出された時間範囲)entities(["Peter","warelay"])content(物語的な事実)source(memory/2025-11-27.md#L12など)
Reflect: 安定ページの生成 + 信念の更新
リフレクションはスケジュールされた仕事 (毎日またはハートビート) です。それは次のようになります。- 最近の事実から
bank/entities/*.md(エンティティ要約)を更新 - 強化 / 反証に基づき
bank/opinions.mdの信頼度を更新 - 任意で
memory.md(「コア寄り」の永続事実)への編集提案
- 各意見は次を持ちます。
- 文
- 信頼度
c ∈ [0,1] - last_updated
- 証拠リンク(支持 + 反証の事実 ID)
- 新しい事実が到着したら:
- エンティティ重なり + 類似度(まず FTS、後に埋め込み)で候補意見を探索
- 小さなデルタで信頼度を更新。大きな変化には強い反証 + 反復した証拠が必要
CLI 統合: スタンドアロン vs 深い統合
推奨: OpenClaw への深い統合。ただし分離可能なコア ライブラリは維持します。なぜ OpenClaw に統合するのか?
- OpenClaw は既に次を把握しています。
- ワークスペース パス(
agents.defaults.workspace) - セッション モデル + ハートビート
- ロギング + トラブルシューティングのパターン
- ワークスペース パス(
- エージェント自身がツールを呼び出すようにします。
openclaw memory recall "…" --k 25 --since 30dopenclaw memory reflect --since 7d
なぜライブラリは分けるのか?
- Gateway / ランタイムなしでメモリ ロジックをテスト可能にするため
- 他の文脈(ローカル スクリプト、将来のデスクトップ アプリなど)で再利用するため
「S-Collide」/ SuCo: いつ使うべきか(研究)
「S-Collide」が SuCo(Subspace Collision) を指す場合、これは部分空間での学習 / 構造化された衝突を用いて、再現率とレイテンシのトレードオフを狙う ANN 検索手法です(論文: arXiv 2411.14754、2024 年)。~/.openclaw/workspace に対する実践的な見解:
- SuCo から 始めない。
- SQLite FTS +(任意で)単純な埋め込みから始める。即座に多くの UX 改善が得られます。
- 次の条件を満たした場合にのみ、SuCo / HNSW / ScaNN クラスの解決策を検討します。
- コーパスは大きい(10/数十万のチャンク)
- 総当たりの埋め込み検索が遅くなってきた
- 語彙検索が再現率のボトルネックになっている
- SQLite FTS5 + メタデータ フィルタ(ML なし)
- 埋め込み + ブルート力 (チャンク数が少ない場合、驚くほど遠くまで動作します)
- HNSW インデックス(一般的で堅牢。ライブラリ バインディングが必要)
- SuCo(研究グレード。組み込み可能な堅実な実装があれば魅力的)
- ノート PC + デスクトップで動かす「パーソナル アシスタント メモリ」に最適な オフライン 埋め込みモデルは何か?
- 既に Ollama があるならローカル モデルで埋め込み。なければ小さな埋め込みモデルをツールチェーンに同梱。
最小で有用なパイロット
最小構成で、それでも有用にするなら:bank/のエンティティ ページと、日次ログ内の## Retainセクションを追加。- 出典(パス + 行番号)付きで SQLite FTS による想起を使用。
- 再現率やスケールが要求された場合にのみ埋め込みを追加。
参考文献
- Letta / MemGPT の概念: 「コア メモリ ブロック」+「アーカイブ メモリ」+ ツール駆動の自己編集メモリ。
- Hindsight 技術レポート: 「retain / recall / reflect」、四層メモリ、物語的事実抽出、意見の信頼度進化。
- SuCo: arXiv 2411.14754(2024 年): 「Subspace Collision」近似最近傍検索。