Skip to main content

A Modern 4-Stage Synthetic Memory

Project description


SynMem – 4-Stage Synthetic Memory

Overview

SynMem is a production-grade, multi-stage synthetic memory framework inspired by real cognition. Built for AI Agents, LLMs, Voice Assistants and more with advanced automation.

Stages:

  1. Perception – Immediate, in-memory (RAM) context
    • Optional, not required
  2. Sensory – Short-lived, per-user episodic memory
  3. STM (Short-Term Memory) – Active conversation/session memory
  4. LTM (Long-Term Memory) – Persistent archive

Key Features

  • Direct, 4-stage architecture:

    • Perception (RAM) Sensory (Per User) → STM (All Users) → LTM (All Users)
  • Thread-safe singleton: One instance per process, all operations safe for concurrency.

  • Configurable: All limits, expirations, are adjustable.

  • No vendor lock-in: Plug into any agent, LLM, or workflow.

  • No required maintenance: Maintenance/cleanup is optional but recommended. Run in a background thread no lock-in or forced schedules.

  • Bonus: Image storage and expiry: Store/expire/archive images and metadata if needed—totally optional.


Why SynMem?

Most “memory” modules just log history or dump to a database. SynMem is layered, time-aware, and models real-world cognition.

  • Perception: Working context—ephemeral, in-memory, no disk. (Optional Use)
  • Sensory: Fast, expiring, per-user buffer.
  • STM: Recent active memory, rolls into LTM automatically.
  • LTM: Archive—retrieve by date, user, or content.
  • Image: Use if you need; never required.

You control all layouts, all workflows.


API Highlights

Perception (RAM only):

mem.savePerception("live context chunk")
mem.retrievePerception()   # FIFO, up to limit
mem.clearPerception()

Sensory / STM / LTM:

mem.saveSensory("input", "response", "user", mem.senDir)
mem.retrieveSensory(mem.getDir(mem.senDir, "user.db"))
mem.saveConversationDetails("input", "response", "user", mem.stmUserConversationDetails)
mem.retrieveConversationDetails("user", [mem.stmUserConversationDetails, mem.ltmUserConversationDetails])

Bonus: Images (if needed):

mem.saveCreatedImage("subject", image_data, mem.stmCreatedImages, mem.stmCreatedImageDetails)

Maintenance (Optional, Recommended)

  • Why? For auto-cleanup, auto-archival, and expired memory removal.
  • Not required for operation.
  • Enable any time—runs in the background so no blocking.

If you don’t enable maintenance, expired items will accumulate until you remove them.


Plug and Play

  • No schemas, no boilerplate.
  • Use with any LLM/agent plug-N-play and go.

FAQ

Q: Is perception persistent? A: No, it is always RAM-only.

Q: Do I need maintenance? A: No, but it’s strongly recommended for any long-running use.

Q: What if I don’t use image storage? A: Ignore all image APIs—they’re bonus, not core.


Code Examples

You can find code examples on my GitHub repository.


License

This project is licensed under the Apache License, Version 2.0. Copyright 2025 Tristan McBride Sr.


Acknowledgements

Project by:

  • Tristan McBride Sr.
  • Sybil

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

synmem-0.0.4.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

synmem-0.0.4-py3-none-any.whl (21.0 kB view details)

Uploaded Python 3

File details

Details for the file synmem-0.0.4.tar.gz.

File metadata

  • Download URL: synmem-0.0.4.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for synmem-0.0.4.tar.gz
Algorithm Hash digest
SHA256 dc19d5170670555ad7c096ff89e66169be751202b21a3ed411870aa9c429dab5
MD5 23f07ec14f4c840783c7986426e28862
BLAKE2b-256 e5f4ee57298d5ef72945b044cc9aab4a076af28b3e7d7afa1a5970193b3e4af6

See more details on using hashes here.

File details

Details for the file synmem-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: synmem-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 21.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for synmem-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 52013ff8b5283feb6f001608fb35d4e728a1a36b8ef04412a0a90a51b6f4027c
MD5 a7d32f581ba3636ffbf96669f96bea6a
BLAKE2b-256 9d38bec44c6dcef59a7a0e0701d62a6656f1430c04adeebe2fb27774b02045ac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page