threadmem
Chat thread memory for AI agents
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
ThreadMem is a simple tool that helps manage chat conversations with language models.
Installation
pip install threadmem
Usage
Role Threads
Role based threads are useful for managing openai-style chat schemas.
from threadmem import RoleThread
thread = RoleThread(owner_id="dolores@agentsea.ai")
thread.post("user", "Hello, Thread!")
thread.post("assistant", "How can I help?")
thread.post("user", "Whats this image?", images=["data:image/jpeg;base64,..."])
print(thread.to_oai())
threads = RoleThread.find(owner_id="dolores@agentsea.ai")
threads[0].delete()
Add images of any variety to the thread. We support base64, filepath, PIL, and URL:
from PIL import Image
img1 = Image.open("img1.png")
thread.post(
role="user",
msg="Whats this image?",
images=["data:image/jpeg;base64,...", "./img1.png", img1, "https://shorturl.at/rVyAS"]
)
Integrations
Threadmem is integrated into:
- MLLM - A prompt management, routing, and schema validation library for multimodal LLMs.
- Taskara - A task management library for AI agents.
- Skillpacks - A library to fine tune AI agents on tasks.
- SurfKit - A platform for AI agents.
Come join us on Discord.
Backends
Thread and prompt storage can be backed by:
Sqlite will be used by default. To use postgres simply configure the env vars:
DB_TYPE=postgres
DB_NAME=threads
DB_HOST=localhost
DB_USER=postgres
DB_PASS=abc123
Image storage by default will utilize the db, to configure bucket storage using GCS:
- Create a bucket with fine grained permissions
- Create a GCP service account JSON with permissions to write to the bucket
export THREAD_STORAGE_SA_JSON='{
"type": "service_account",
...
}'
export THREAD_STORAGE_BUCKET=my-bucket
Develop
To test
make test
To publish
make publish