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 — никогда не забывать (идентичность пользователя, юридическая информация)

Основные эндпоинты

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

Сохранить новое воспоминание или обновить существующее (та же категория + 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 из другого экземпляра (для self-hosted синхронизации).

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

Пометить воспоминание как верифицированное (требуется JWT, а не Mind Key).

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}'

Следующие шаги