Persistent memory for OpenAI agents — store, recall, and forget.
Project description
🧠 AgentMemory
Persistent memory for your OpenAI agents — store, recall, and forget.
The problem
Every OpenAI agent starts from zero. No memory of past conversations, preferences, decisions, or context. Every session is a blank slate.
AgentMemory solves this — giving your agent durable, queryable memory that persists across sessions.
Quickstart
Install dependencies:
pip install openai python-dotenv
Set your OpenAI API key:
# .env
OPENAI_API_KEY=your_key_here
Run your first memory session:
from agentmemory import AgentMemory
memory = AgentMemory(memory_path="agent_memory.json")
# Store memories from any text
memory.remember(
"I am building a RAG application using Python and OpenAI. "
"I prefer concise answers and clean code."
)
# Recall relevant memories
results = memory.recall("What is the user building?")
print(results)
Output:
Found 2 relevant memories:
• [CONTEXT] User is building a RAG application using Python and OpenAI
• [CONTEXT] User prefers concise answers and clean code
API Reference
memory = AgentMemory(
memory_path="agent_memory.json", # local storage file
model="gpt-4o-mini", # judge model
max_memories=100, # max memories to store
)
memory.remember(text) # extract and store memories from text
memory.recall(query, top_k) # retrieve relevant memories
memory.forget(memory_id) # delete a specific memory
memory.forget_all() # clear all memories
memory.list_all() # return all stored memories
memory.count # total number of memories
Memory categories
| Category | Description |
|---|---|
fact |
Factual statements about the user or domain |
preference |
User preferences and style choices |
decision |
Decisions made during conversations |
context |
Project or situational context |
Streamlit demo
Run the interactive demo locally:
streamlit run app.py
Features:
- Store memories from any text input
- Search memories with semantic recall
- View all stored memories in the sidebar
- Delete individual memories or clear all
How it works
remember(text)sends the text to GPT-4o-mini which extracts individual factual claims, preferences, decisions, and context.- Each memory is stored as a structured object in a local JSON file.
recall(query)sends the query and all stored memories to GPT-4o-mini which scores each memory for relevance.- Memories are returned ranked by relevance score.
All storage is local — no cloud, no database, no infrastructure. Just a JSON file on your machine.
Cost
Each remember() call: ~$0.001
Each recall() call: ~$0.001
Both use GPT-4o-mini as the judge.
Roadmap
- Vector embedding search for faster recall at scale
- Memory expiry and TTL support
- Memory categories and filtering
- LangChain and LlamaIndex integration hooks
- Multi-agent shared memory support
Project structure
agentmemory/
├── agentmemory/
│ ├── __init__.py # public API
│ ├── memory.py # AgentMemory core class
│ └── models.py # Memory and MemorySearchResult dataclasses
├── app.py # Streamlit demo
├── example.py # quickstart example
├── requirements.txt
├── .env.example
└── README.md
License
MIT — free to use, modify, and distribute.
Contributing
Pull requests are welcome. Please open an issue first to discuss what you would like to change.
Built with OpenAI GPT-4o-mini as the memory extraction and recall judge.
Project details
Release history Release notifications | RSS feed
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 agentmemory_openai-0.1.0.tar.gz.
File metadata
- Download URL: agentmemory_openai-0.1.0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bed41c2f947019575eaa31c8443195c345f18a1a7b84f605d52f77ee70611c78
|
|
| MD5 |
56ffdbf4914a6f168f672b63cef4edd5
|
|
| BLAKE2b-256 |
1fd8c3a36c4cf529a3a9d0326331de8e0e4dec28efe07ea1cd341226481d1b4d
|
File details
Details for the file agentmemory_openai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agentmemory_openai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dece93747fc8101c1ca96c9b49236099d1a71f3dd9b1f7c6ba057d7df0d31a9f
|
|
| MD5 |
d5916af05a63905f52f87764724db7ac
|
|
| BLAKE2b-256 |
e28c5750b822ce1e6e58dafeb40a9851c3c92a84018e71bde6d8c8ecd307465a
|