Skip to main content

Memory API

22 のメモリエンドポイントの完全リファレンス — 保存、再取得、検索、セマンティック検索、同期、監査など。


Memory API

Memory API は Synapse の中核です。構造化されたメモリの保存、取得、検索、管理のための 22 のエンドポイントを提供します。すべてのエンドポイントで認証に Mind Key が必要です。

**毎セッションの開始時に必ず `GET /memory/recall` を呼び出してください。** これが、前回のセッションからコンテキストを再構築する唯一の方法です。

カテゴリ

メモリは 8 つのカテゴリに整理されます。

カテゴリ ユースケース
identity ユーザー名、役割、連絡先情報、自己に関する設定
preference 好き嫌い、作業スタイル、コミュニケーションの好み
fact 検証可能な事実(プロジェクト詳細、日付、URL)
project プロジェクトのステータス、マイルストーン、アーキテクチャ
skill ユーザーが得意なこと
mistake 過去のエラー — 繰り返しを避ける
context セッション関連のコンテキスト
note その他のメモ

優先度

  • low — 知っておくとよい
  • normal — デフォルト
  • high — 重要
  • critical — 絶対に忘れてはならない(ユーザー ID、法的情報)

コアエンドポイント

GET /memory/recall

すべてのメモリを LLM 向けに最適化されたプレーンテキストで返します。毎セッションの開始時に呼び出してください。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/recall

レスポンス(text/plain):

Mind: Michael's Mind
Memories: 12 total (10 verified)

[001] identity (CRITICAL)
  user_name
  Michael Schäfer
  Tags: person, identity

...

POST /memory

新しいメモリを保存するか、既存のメモリを更新します(同じ category + key なら更新)。

curl -X POST https://synapse.schaefer.zone/memory \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "fact",
    "key": "user_name",
    "content": "The user's name is Michael Schäfer",
    "tags": ["person", "identity"],
    "priority": "critical"
  }'

レスポンス:{ "id": "mem_001", "status": "stored" }

GET /memory

オプションのフィルタ付きでメモリを一覧表示します。

# All memories (JSON)
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory?limit=50&offset=0"

# Filter by category
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory?category=project"

# Filter by tag
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory?tag=docker"

PUT /memory/:id

ID で特定のメモリを更新します。

curl -X PUT https://synapse.schaefer.zone/memory/mem_001 \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"content": "Updated content", "priority": "high"}'

DELETE /memory/:id

単一メモリを削除します。

curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/mem_001

検索エンドポイント

GET /memory/search

FTS5 を使用したフルテキスト検索です。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/search?q=docker+swarm"

FTS5 構文:

  • 複数単語 = AND:docker swarm
  • フレーズ:"docker swarm"
  • プレフィックス:docker*
  • ブール:docker OR kubernetes
  • 除外:docker -swarm

GET /memory/semantic-search

埋め込みを使用した概念検索(FTS5 より遅いが意味を理解)。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/semantic-search?q=container+orchestration"

キーワードが一致しなくても、クエリと意味的に類似したメモリを返します。X が異なる表現で記述されている「X に関するメモリを見つける」といった場合に有用です。

GET /memory/by-tag

タグでメモリを一覧表示します。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/by-tag?tag=docker"

GET /memory/related/:id

特定のメモリに関連するメモリを(共通タグ経由で)見つけます。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/related/mem_001

同期 & Diff

GET /memory/diff

差分同期 — 指定タイムスタンプ以降に変更されたメモリを返します。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/diff?since=1700000000"

レスポンス:{ "added": [...], "updated": [...], "deleted": [...] }

POST /memory/sync

別インスタンスからの diff を適用します(セルフホスト同期用)。

curl -X POST https://synapse.schaefer.zone/memory/sync \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"added": [...], "updated": [...], "deleted": [...]}'

一括操作

POST /memory/bulk-delete

ID で複数のメモリを削除します。

curl -X POST https://synapse.schaefer.zone/memory/bulk-delete \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ids": ["mem_001", "mem_002", "mem_003"]}'

POST /memory/embed-batch

まだ埋め込みを持たないメモリの埋め込みを生成します(セマンティック検索用)。

curl -X POST https://synapse.schaefer.zone/memory/embed-batch \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit": 100}'

GET /memory/embed-batch-status

埋め込み生成の進捗を確認します。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/embed-batch-status

検証

メモリには verified フラグがあります。エージェントが保存したメモリはデフォルトで未検証(source=agent)、人間が保存したメモリは検証済み(source=user)です。

POST /memory/verify

メモリを検証済みとしてマークします(Mind Key ではなく JWT が必要)。

curl -X POST https://synapse.schaefer.zone/memory/mem_001/verify \
  -H "Authorization: Bearer YOUR_JWT"

POST /memory/unverify

メモリを未検証としてマークします(JWT が必要)。

curl -X POST https://synapse.schaefer.zone/memory/mem_001/unverify \
  -H "Authorization: Bearer YOUR_JWT"

GET /memory/unverified

人間の検証待ちのメモリを一覧表示します。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/unverified?limit=100"

統計 & 監査

GET /memory/stats

現在の mind の集計統計です。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/stats

返却値:{ "total": 12, "verified": 10, "unverified": 2, "by_category": {...}, "by_priority": {...} }

GET /memory/audit

状態を変更する全操作の監査ログです。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/audit?limit=100&action=store"

GET /memory/contradictions

保存されたメモリ内の潜在的矛盾を検出します。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/contradictions

GET /memory/expiring

有効期限が近づいているメモリを一覧表示します。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     "https://synapse.schaefer.zone/memory/expiring?within=7d"

ヘルス & エクスポート

GET /memory/health

メモリシステムのクイックヘルスチェックです。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/health

GET /memory/mind-export

全メモリの完全 JSON エクスポート(バックアップ用)。

curl -H "Authorization: Bearer YOUR_MIND_KEY" \
     https://synapse.schaefer.zone/memory/mind-export > backup.json

POST /memory/compact

類似メモリを圧縮します(自動要約)。

curl -X POST https://synapse.schaefer.zone/memory/compact \
  -H "Authorization: Bearer YOUR_MIND_KEY" \
  -H "Content-Type: application/json" \
  -d '{"dry_run": true}'

次のステップ