Skip to content

Releases: PlateerLab/synaptic-memory

v0.9.0 — BM25 Hybrid, Supersede, Auto-Chunking, LongMemEval

23 Mar 01:37

Choose a tag to compare

Synaptic Memory v0.9.0

Core Improvements

  • BM25 hybrid scoring — corpus-size adaptive (large: BM25 80%, small: substring 70%)
  • Supersede detection — same-title nodes prefer newest (by updated_at)
  • Auto-chunking APIadd_document(chunk_size=1000) with sentence-boundary splitting + PART_OF edges
  • PPR edge type weights — CAUSED 1.0 > RELATED 0.4 (reduces noise from S2 ablation -14~-32%)
  • Kind soft boost — hard filter → 1.5x score boost (MRR +9%)
  • Phrase node filter_phrase nodes excluded from search results
  • Evidence threshold — 0.2→0.3 + first-sentence position bias

Benchmarks

  • 14 external datasets (6 new: NFCorpus, SciFact, FiQA, MIRACLRetrieval, MultiLongDoc, XPQARetrieval)
  • LongMemEval (ICLR 2025) — 500-question long-term memory evaluation
  • PPR / Evidence / PhraseExtractor unit tests (67 new)
  • Ablation S8 LLM Full stage

Results (FTS only, MemoryBackend)

Dataset MRR Change
KLUE-MRC 0.731 +20%
SciFact 0.536 +29%
Ko-StrategyQA 0.393 +24%
FiQA (57K) 0.209 +58%
MultiLongDoc 0.154 +120%

Install: pip install synaptic-memory==0.9.0

v0.8.0 — Graph API 확장 (list/update/maintain/add_turn + 커스텀 NodeKind)

22 Mar 15:48

Choose a tag to compare

Summary

Graph API expansion release addressing 5 user feedback items: full node listing, partial updates, unified maintenance, conversation session management, and custom NodeKind support.

New Features

graph.list() — List all nodes

nodes = await graph.list()                          # all
lessons = await graph.list(kind=NodeKind.LESSON)     # filter by kind
recent = await graph.list(limit=10)                  # with limit

graph.update() — Partial node update

await graph.update(node_id, title="New Title", tags=["updated"])
  • No need to call backend.update_node() directly
  • Cache auto-invalidation

graph.maintain() — Unified consolidate + decay + prune

result = await graph.maintain()
print(result.total_affected)  # consolidated + decayed + pruned combined
  • MaintenanceResult dataclass for consistent return type
  • Existing consolidate(), decay(), prune() still available individually

graph.add_turn() — Conversation session/turn helper

session, user_node, asst_node = await graph.add_turn(
    "Hello",
    "Hi! How can I help you?",
    session_id="my_session",
)
  • Auto-creates/reuses SESSION nodes
  • user → assistant FOLLOWED_BY linking
  • Auto-chaining between turns

Custom NodeKind

await graph.add("Korean Culture", "Greeting etiquette", kind="culture")
await graph.add("Dark Mode", "Preferred", kind="preference")
await graph.list(kind="culture")  # filter by custom kind
  • Node.kind type widened to str (fully backward-compatible with NodeKind enum)
  • Safe DB serialization/deserialization across all backends (_safe_node_kind())

Breaking Changes

None. All existing APIs remain backward-compatible.

Install

pip install synaptic-memory==0.8.0

Full Changelog: v0.7.0...v0.8.0

v0.7.0 — PPR + Evidence Chain + HotPotQA 0.856

22 Mar 12:47

Choose a tag to compare

Synaptic Memory v0.7.0 — PPR, Evidence Chain, Auto-Ontology 최적화, HotPotQA 0.856

Added

  • Evidence Chain Assembly — small LLM augmentation for multi-hop reasoning, HotPotQA Correctness 0.856 (+9.2%)
  • Personalized PageRank (PPR) engine — replaced spreading activation, multi-hop retrieval +28%
  • End-to-end QA benchmark — HotPotQA 24-question suite for Cognee comparison (Correctness 0.784)
  • Auto-ontology optimization — HybridClassifier, batch LLM processing, EmbeddingRelation, PhraseExtractor

Fixed

  • PhraseExtractor search noise — phrase filtering and optimization

Changed

  • Removed __pycache__ from repo and updated .gitignore

Benchmark Results

Dataset MRR nDCG@10 R@10
Allganize RAG-Eval 0.796 0.811 0.863
HotPotQA-200 0.742 0.599 0.652
AutoRAGRetrieval 0.646 0.681 0.798
KLUE-MRC 0.607 0.643 0.760

Install: pip install synaptic-memory[all]

v0.6.0 — Auto-Ontology + Hybrid Search

22 Mar 12:47

Choose a tag to compare

Synaptic Memory v0.6.0 — 자동 온톨로지 + 하이브리드 검색 + 벤치마크

Added

  • Auto-ontology construction — LLM-based ontology building with search-optimized metadata generation
  • LLM classifier prompt optimization — few-shot examples improved accuracy from 50% to 86%
  • FTS + embedding hybrid scoring — S7 Auto+Embed achieved MRR 0.83
  • Kind/tag/search_keywords utilization in search — FTS and ranking boost
  • Ontology auto-construction + benchmark framework + search engine improvements

Changed

  • Updated README with auto-ontology, benchmark results, and differentiation points

v0.5.0 — Ontology + Agent Activity + Neo4j

22 Mar 12:47

Choose a tag to compare

Synaptic Memory v0.5.0 — 온톨로지 + 에이전트 활동 추적 + Intent 검색 + Neo4j

Added

  • Ontology Engine — dynamic type hierarchy, property inheritance, relation constraint validation (OntologyRegistry)
  • Agent Activity Tracking — session/tool call/decision/outcome capture (ActivityTracker)
  • Intent-based Agent Search — 6 search strategies: similar_decisions, past_failures, related_rules, reasoning_chain, context_explore, general (AgentSearch)
  • Neo4j Backend — native Cypher graph traversal, dual label, typed relationships, fulltext index
  • Auto-embedding — automatic vector generation on add() / search()
  • Qdrant + MinIO + CompositeBackend — storage separation by purpose
  • 5-axis Resonance Scoring — added context axis (session tag Jaccard similarity)
  • GraphTraversal Protocolshortest_path(), pattern_match(), find_by_type_hierarchy()
  • Node.properties — ontology extension attributes, supported across all backends
  • MCP 9 new tools (total 16): agent session/action/decision/outcome tracking, ontology tools
  • 6 new NodeKind values: tool_call, observation, reasoning, outcome, session, type_def
  • 5 new EdgeKind values: is_a, invoked, resulted_in, part_of, followed_by
  • docker-compose.yml for Neo4j dev environment
  • docs/COMPARISON.md — comparison with existing agent memory systems
  • 185+ unit tests, 22 Neo4j integration tests

Fixed

  • MemoryBackend fuzzy search ineffectiveness bug + 12 edge case QA tests
  • Library distribution quality: __version__, py.typed, lazy imports, embedding extra

v0.4.0 — MCP Server

22 Mar 12:47

Choose a tag to compare

Synaptic Memory v0.4.0 — MCP 서버 (7개 tool) + synaptic-mcp CLI

Added

  • MCP Server — 7 tools (knowledge search/add/link/reinforce/stats/export/consolidate)
  • SQLite Backend — FTS5, recursive CTE, WAL mode
  • QA Test Suite — 169 Wikipedia + 368 GitHub real-data verification cases
  • synaptic-mcp CLI entry point

v0.3.0 — Protocol Implementations

22 Mar 12:47

Choose a tag to compare

Synaptic Memory v0.3.0 — 프로토콜 구현체 + LRU 캐시 + JSON export + 노드 병합

Added

  • Protocol implementations — LLM QueryRewriter, RegexTagExtractor, EmbeddingProvider
  • LRU Cache — NodeCache with hit rate tracking
  • JSON Exporter — structured JSON export
  • Node Merge — duplicate node merging with edge reconnection
  • Find Duplicates — title similarity-based duplicate detection

v0.2.0 — PostgreSQL Backend

22 Mar 12:47

Choose a tag to compare

Synaptic Memory v0.2.0 — PostgreSQL 백엔드 + PyPI 준비

Added

  • PostgreSQL backend — asyncpg + pgvector HNSW + pg_trgm + recursive CTE
  • Vector search with cosine distance (pgvector)
  • Trigram fuzzy matching with graceful ILIKE fallback
  • Hybrid search: FTS + fuzzy + vector merged results
  • Connection pooling (asyncpg Pool, min=2, max=10)
  • Configurable embedding_dim parameter
  • ResonanceWeights added to public exports
  • Configurable consolidation thresholds (TTL, promotion access counts)
  • README.md, ARCHITECTURE.md, ROADMAP.md documentation
  • GitHub Actions CI (Python 3.12/3.13)
  • Integration test suite for PostgreSQL (13 tests)

Changed

  • Consolidation constants now accept __init__ parameters instead of module globals

v0.1.0 — Core Engine

22 Mar 12:47

Choose a tag to compare

Synaptic Memory v0.1.0 — 뇌 신경망 기반 Knowledge Graph 라이브러리

Added

  • Core models: Node, Edge, ActivatedNode, SearchResult, DigestResult
  • Enums: NodeKind (9), EdgeKind (7), ConsolidationLevel (4)
  • Protocols: StorageBackend, Digester, QueryRewriter, TagExtractor
  • SynapticGraph facade: add, link, search, reinforce, consolidate, prune, decay
  • Hybrid 3-stage search: FTS + fuzzy, synonym expansion, query rewrite
  • Hebbian learning engine: co-activation reinforcement with anti-resonance
  • 4-axis resonance scoring: relevance × importance × recency × vitality
  • Memory consolidation cascade: L0 → L1 → L2 → L3 with TTL and promotion
  • Korean/English synonym map (38 groups)
  • Markdown exporter
  • MemoryBackend (dict-based, zero dependencies)
  • SQLiteBackend (FTS5, recursive CTE, WAL mode)
  • 93 unit tests, pyright strict, ruff clean