GistLattice is a memory-augmented Python library with episodic recall, semantic state, and durable consolidation.
Project description
Cognitive Memory for AI Agents.
A beautiful, three-method Python library for giving your LLMs durable, long-term memory.
🧠 Why GistLattice?
Most "Agent Memory" systems simply dump raw chat transcripts into a vector database. GistLattice is different. It uses an LLM to actively reflect on a conversation before saving it.
When you ask GistLattice to remember an interaction, it extracts:
- Gist: A concise summary of the factual information.
- Valence: The emotional tone (-1.0 to 1.0). Did the user get angry? Were they excited? Your agent will remember their mood!
- Importance: A score (0.0 to 1.0) dictating how crucial this memory is. Passing comments decay quickly; major life events are cemented permanently.
📦 Installation
Install the base library (defaults to fast, in-memory databases):
pip install gistlattice
Install production backends (optional):
pip install gistlattice[postgres,neo4j,redis]
Install specific LLM providers:
pip install gistlattice[openai]
pip install gistlattice[gemini]
pip install gistlattice[anthropic]
pip install gistlattice[ollama]
🚀 Quick Start
The entire surface area of the library is encapsulated in a single, elegant class: GistLattice.
from gistlattice import GistLattice
def main() -> None:
# 1. Initialize the client (defaults to in-memory storage)
memory = GistLattice(provider="openai", tenant_id="tenant-a", user_id="user-123")
# 2. Store an interaction synchronously
# This automatically buffers the interaction to eliminate per-turn LLM database mutations.
memory.remember(
prompt="I'm feeling really stressed about the product launch tomorrow.",
response="I understand. Let's review the final checklist to make sure we are ready."
)
print("Memory buffered!")
# 3. Retrieve formatted context to inject into your next LLM prompt
context = memory.hydrate_context("What should I do next?")
print("\n--- Hydrated Context ---")
print(context)
if __name__ == "__main__":
main()
[!TIP] For Best Performance:
GistLatticefully supports nativeasync/await! If you are building a high-throughput API (like FastAPI), usememory.aremember(),memory.aretrieve(), andmemory.ahydrate_context()to bypass background thread overhead.
📐 Architecture Flow
GistLattice intercepts conversations and routes them through a robust processing pipeline:
graph LR
App[Your AI App] --> Remember(memory.remember)
App --> Hydrate(memory.hydrate_context)
Remember --> Buffer[MemoryBufferController]
Buffer --> LLM[LLM Reflection Analysis]
LLM --> Storage[(StorageProvider: Postgres / Neo4j)]
Hydrate --> Storage
📚 Documentation
We have completely stripped out the architectural jargon. Our documentation is heavily focused on getting you building instantly:
- How it Works (A Human Example): A plain-English story demonstrating the difference between short-term buffers and GistLattice.
- User Guide & API Reference: Everything you need to know about
remember(),hydrate_context(), andretrieve(). - Supported Providers: How to switch between OpenAI, Gemini, Anthropic, and Ollama.
- Production Backends: How to connect to Redis, PostgreSQL, and Neo4j for durable, at-scale memory.
🛠 Examples
Want to see runnable code? Check out the examples/ directory:
01_basic_openai_sync.py02_hybrid_gemini_async.pyproduction/01_programmatic.pyproduction/02_environment_variables.py
🤝 Contributing
We would love your help making GistLattice the standard for agent memory! To contribute:
- Fork the repository.
- Install dependencies:
pip install -e ".[dev,openai,postgres,neo4j,redis]" - Run the test suite:
python3 -m unittest discover -s tests -v
- Submit a Pull Request!
📜 License
This project is licensed under the Apache License 2.0.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gistlattice-1.2.4.tar.gz.
File metadata
- Download URL: gistlattice-1.2.4.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d901d0da7c7994e221d5cb217a3ee760d165aa350556b4f91c6269f6fabe542a
|
|
| MD5 |
aef25c055e9e807008e76fd97c4044e3
|
|
| BLAKE2b-256 |
d3606a8433f9d30e0c2851fa6fec5a36b0b70ffbe7383d72b19a6056fec54e6b
|
File details
Details for the file gistlattice-1.2.4-py3-none-any.whl.
File metadata
- Download URL: gistlattice-1.2.4-py3-none-any.whl
- Upload date:
- Size: 31.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b879451354088fa4d391b7a879d842ef2add065ddcb293b3a3e2a2ee62642b5
|
|
| MD5 |
c853b4d134d0adbbb8fcbd1c6d94ca23
|
|
| BLAKE2b-256 |
8fe4b255ba245ed52a031c821a0cc257ec4866606f273ab857d9b455e39e0af1
|