AI Navigate

3層メモリ構成: SoulClaw エージェントは決して忘れない

Dev.to / 2026/3/18

📰 ニュースDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical UsageModels & Research

要点

  • SoulClaw は、過去の会話を AI エージェントが忘れないようにするため、v2026.3.18 で 3 層メモリシステムを発表し、文脈ウィンドウの圧縮問題に対処します。
  • レイヤー1: DAG Lossless Store は、SQLite をバックエンドとした DAG を用いて Level 0 に生データのメッセージを格納し、上位レベルには段階的な要約を格納することで、要約から原本へ追跡可能性を実現します。
  • レイヤー2: セマンティック・ベクトル検索は、bge-m3 のような埋め込みモデルとハイブリッド TF-IDF + コサイン類似度を活用し、Ollama を介してクラウド API なしでローカルに実行します。
  • レイヤー3: パッシブメモリ抽出は、5 回ごとに自動的に分析して、ユーザーの嗜好、意思決定、締切、および設定を抽出し、それらを memory/*.md ファイルに書き出します。
  • 設計は、依存関係ゼロ、単一ファイル SQLite ストレージ、FTS5 全文検索、漸進的格納、および memory を高速かつ監査可能に保つレベルベースの階層構造を強調します。

問題点: 記憶喪失を持つAIエージェント

すべてのAIエージェントフレームワークには同じ汚い秘密があります: あなたのエージェントはすべてを忘れる.

コンテキストウィンドウは有限です。会話が制限を超えると、古いメッセージは削除されます — 静かに、永久に。3週間前にエージェントが下したその判断は?先月あなたが挙げた技術的な好みは?なくなりました。

これを 圧縮問題 と呼びます:要約ベースの剪定はニュアンスを失い、ハードトランケーションはすべてを失います。

私たちの解決策: 3層メモリアーキテクチャ

SoulClaw v2026.3.18 は、3層メモリシステムを導入します。これはAIエージェントが会話の1ターンも失わず、検索を速く関連性の高い状態に保ちます。

レイヤー1: DAG ロスレスストア(新機能)

すべての会話メッセージは、有向非巡回グラフ(DAG)にバックアップされた SQLite に保存されます:

Level 0: Raw messages (never deleted)
   ↓ Every 10 turns
Level 1: Chunk summaries (LLM-generated)
   ↓ Every 10 summaries
Level 2+: Higher-level summaries (recursive)

主な設計方針:

  • SQLite — 依存なし、単一ファイルのデータベース。外部サービスは不要です。
  • FTS5 の全文検索 — 会話履歴全体の即時キーワード検索。
  • 増分保存 — 各ターンにつき新しいメッセージのみが書き込まれ、重複はありません。
  • レベルベースの階層 — レベル0には生のメッセージ、上位レベルで要約を進めます。

DAG 構造のおかげで、要約からそれを生み出した元のメッセージを常に辿ることができます。何も失われません。

レイヤー2: セマンティックベクトル検索

SoulClaw の既存のメモリ検索エンジンは 埋め込みモデル(例: bge-m3)を用いてメモリファイルをベクトル表現に変換します。「データベーススキーマについて私たちの決定は何だったか?」と検索すると、正確な語が一致しなくても意味的に関連する記憶を見つけます。

  • ハイブリッド検索: TF-IDF キーワードマッチング + コサイン類似度ベクトル検索
  • ローカル優先: Ollama 上で bge-m3 を使って実行、クラウドAPIは不要
  • ファイルベース: MEMORY.md および memory/*.md ファイルをインデックス化

レイヤー3: パッシブメモリ抽出

会話が5ターンごとに、SoulClaw は自動的に会話を分析し、重要な情報を抽出します:

  • ユーザーの嗜好と個人情報
  • セッション中に下された主要な決定
  • 締め切りと約束
  • 技術的設定
  • 名前と関係性

これらは静かに memory/*.md ファイルへ書き込まれ、レイヤー2 が将来の取得のためにインデックスします。

それらはどのように連携して機能しますか

ユーザーメッセージ → エージェントが処理 → 応答生成
                                       ↓
                              ┌────────┴────────┐
                              ↓                  ↓
                         DAG ストア          パッシブメモリ
                    (生データのメッセージ →      重要な情報を抽出
                     SQLite + FTS5)      memory/*.md)
                              ↓                  ↓
                              └────────┬────────┘
                                       ↓
                              セマンティックベクトルインデックス
                              (メモリファイルを埋め込み +
                               FTS5 DAG 検索)
                                       ↓
                              3層リトリーバル
                              次の memory_search で

When memory_search is called:

  1. FTS5 は、履歴全体に対して正確なキーワード一致を DAG で検索します
  2. セマンティック検索 は、インデックス化されたファイルから概念的に関連する記憶を見つけます
  3. パッシブメモリ は、整理された高信号の事実を提供します

この組み合わせは、精度(FTS5 からの正確な一致)と 再現率(ベクトルからの概念的一致)の両方を提供します。

有効化

この DAG ストアは、memorySearch が設定されていると自動的に有効化されます — パッシブメモリと同じゲートです。追加の設定は不要です:

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "provider": "local"
      }
    }
  }
}

The SQLite database is stored at <workspace>/.dag-memory.sqlite and grows incrementally. For reference, ~50 conversation turns ≈ 300KB.

これから

  • DAG対応のコンテキスト取得:関連する過去の要約を自動的にコンテキストウィンドウに挿入します
  • セッション間メモリ: 異なるエージェントセッション間でメモリを共有
  • メモリの可視化: SoulClaw ダッシュボードで DAG ツリーを閲覧

使ってみる

npm install -g soulclaw
soulclaw onboard

オンボーディング時にメモリ検索を設定すると、3層メモリシステムが自動的に有効化されます。

SoulClaw は Soul パワード AI エージェントフレームワークです。詳しくは clawsouls.ai をご覧ください。