# メモリモデル SUMMARY: メモリの構造 — カテゴリ、キー、タグ、優先度、ソース、検証。 メモリモデル Synapse のメモリモデルは LLM エージェント向けに設計されています — 信頼できる再取得のための十分な構造と、任意のドメインに対応する柔軟性を備えています。 メモリの構造 [CODE BLOCK] フィールド | フィールド | 型 | 必須 | 説明 | |-------|------|----------|-------------| | | string | 自動 | ユニーク ID(memxxx) | | | enum | ✅ | 8 カテゴリのいずれか | | | string | ✅ | 安定した識別子(更新に使用) | | | string | ✅ | メモリの内容(任意のテキスト) | | | string[] | – | 検索とフィルタリング用 | | | enum | – | low、normal、high、critical(デフォルト:normal) | | | enum | 自動 | user、agent(保存者) | | | bool | 自動 | 人間が検証済みか | | | float | – | 0.0 〜 1.0(デフォルト:user は 1.0、agent は 0.7) | | | timestamp | – | このメモリを忘れるタイミング | | | string | 自動 | 所有する mind | | | timestamp | 自動 | 初回保存日時 | | | timestamp | 自動 | 最終更新日時 | カテゴリ 8 つのカテゴリが一般的な LLM エージェントのユースケースをカバーします。 | カテゴリ | 目的 | 内容の例 | |----------|---------|-----------------| | | ユーザーが誰か | "User is Michael Schäfer, software engineer in Berlin" | | | ユーザーの設定 | "Prefers concise technical responses" | | | 検証可能な事実 | "Office is in Berlin, timezone Europe/Berlin" | | | プロジェクトのステータス | "Synapse v1.5.0 deployed, working on v1.6.0 docs" | | | ユーザーのスキル | "Advanced Python, 10+ years" | | | 過去のエラー | "Forgot to bump npm version — CI failed" | | | セッションのコンテキスト | "Currently reviewing PR #42" | | | その他のメモ | "Try Redis for caching next sprint" | キー:安定した識別子 フィールドは重要です — 重複を作らずにメモリを更新するための方法です。 [CODE BLOCK] キーのルール: - (category, mind) 内でユニークである必要があります - を使用 - 明確さのためにカテゴリをプレフィックスに:、 - 安定性を保つ — 作成後にキーを変更しない タグ:検索用 タグにより高速なフィルタリングと検索が可能です。 [CODE BLOCK] タグのベストプラクティス: - メモリごとに 2〜5 個のタグ(付けすぎない) - 一貫性のために小文字 - プロジェクト名、トピック、技術を使用 - タグは大文字小文字を区別しません 優先度レベル | 優先度 | 使用場面 | 再取得時の挙動 | |----------|-------------|-----------------| | | ID、法的、不可逆 | 常に再取得の先頭 | | | 進行中のプロジェクト、主要な設定 | 再取得で目立つ | | | ほとんどのメモリ(デフォルト) | 標準的な再取得順 | | | 一時的、知っておくとよいこと | 要約される可能性 | は優先度(critical が先頭)、次に新しさでソートします。 ソース:user と agent メモリには が付与されます。 - — 人間が保存(JWT または human UI 経由) - — LLM エージェントが保存(Mind Key 経由) これは以下に影響します。 - 検証: メモリは自動検証、 メモリは未検証 - 信頼度: はデフォルト 1.0、 は 0.7 - 再取得: は未検証メモリに「(unverified)」を付ける > [!NOTE] > ソースのメモリは適切な懐疑心を持って扱ってください。ユーザーが直接述べたものではなく、推論や仮定の可能性があります。 検証 フラグは人間がメモリを確認したことを示します。 - メモリ:自動検証() - メモリ:デフォルトで未検証() 以下でメモリを検証します。 [CODE BLOCK] > [!NOTE] > 検証には Mind Key(エージェント認証)ではなく JWT(人間の認証)が必要です。これにより、人間のみがメモリを検証済みとしてマークできます。 信頼度 フィールド(0.0 〜 1.0)はメモリの信頼性を示します。 - 1.0 — ユーザーが直接述べた - 0.7 — エージェントが推論した - 0.5 — 不確実、検証が必要 - 0.0 — 明示的に疑わしい 保存時に信頼度を設定します。 [CODE BLOCK] 有効期限 時間依存のメモリには を設定します。 [CODE BLOCK] 期限切れのメモリは で返されません(ただし DB には存在)。 で期限切れが近いメモリを確認できます。 メモリのライフサイクル [CODE BLOCK] 再取得時の挙動 は LLM コンテキスト向けに最適化されたプレーンテキストの要約を返します。 [CODE BLOCK] - 優先度(critical → low)、次に新しさでソート - 未検証メモリは でマーク - タグはコンテキストのために含まれる - プレーンテキスト(JSON 解析不要) 次のステップ - Memory API - Memory Best Practices - FTS5 Search