Асинхронная архитектура памяти для OpenAI-агентов на базе ChromaDB и SQLite
Project description
🧠 OpenaiSimpleAgents
Асинхронная библиотека для интеграции кратковременной и долговременной памяти в OpenAI-агентов с использованием ChromaDB, SQLite, и OpenAI Embedding.
📦 Возможности
- 🔄 Кратковременная память на основе SQLite (для последних диалогов).
- 📚 Долговременная память на основе ChromaDB (для знаний и прошлого опыта).
- 🧱 Поддержка адаптивного top_k, TTL, фоновой очистки, и асинхронной защиты.
- 🛠 Интеграция с любой LLM-цепочкой reasoning (
Runner,Agent). - 🧪 Простота тестирования, dev-зависимости и поддержка
pytest-asyncio.
🛠 Установка
pip install openai-simple-agents
Для разработки и тестирования:
pip install .[dev]
📌 Когда использовать SimpleAgents
Эта библиотека предназначена для проектов, где:
- вам нужно хранить и использовать память между запросами к агенту;
- агент должен обучаться на прошлых взаимодействиях с пользователями;
- необходимо гибкое управление объёмом, сроком хранения и фильтрацией памяти;
- вы хотите минимизировать запросы к внешним базам или API;
- вы реализуете собственную LLM-инфраструктуру без LangChain.
🧠 Архитектура
+--------------------+
| Пользователь |
+--------------------+
|
[ввод текста]
v
+-------------------------+
| Agent | ← ты вызываешь .message()
+-------------------------+
| |
get_memory record_interaction
| |
+-----------+ +-----------+
| ShortMemory| | LongMemory|
| (SQLite) | | (ChromaDB)|
+-----------+ +-----------+
✍️ Пример использования
from SimpleAgents import Agent
agent = Agent(name="doc-bot", openai_api_key="sk-...", ttl_seconds=3600)
async def main():
response = await agent.message("Где я остановился в прошлый раз?", user_id="user123")
print(response.final_output)
import asyncio
asyncio.run(main())
🗂 Компоненты
| Класс | Назначение |
|---|---|
Agent |
Основной вход, обёртка над reasoning с памятью |
MemoryManager |
Управление слоями памяти и автоочисткой |
ShortMemory |
История диалога в SQLite |
LongMemory |
Постоянная память в ChromaDB с поиском по эмбеддингам |
Runner |
Интерфейс запуска reasoning-цепочек (подключается отдельно) |
🧪 Тестирование
pytest
Библиотека использует pytest-asyncio и sentence-transformers (опционально) для моков embedding-функций в тестах.
📂 Примеры использования
- 🤖 Персональные помощники: сохранение воспоминаний о пользователях.
- 🧑🏫 Образовательные агенты: помнить, что изучал ученик.
- 📈 Бизнес-боты: запоминать прошлые обращения клиентов.
- 🕵️♂️ Многоагентные системы: обмен знанием между агентами через
LongMemory.
⚖️ Лицензия
MIT — см. LICENSE.
✉️ Автор
Платановский Дмитрий Алексеевич
📧 platanovskiydmitriy@gmail.com
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 openai_simple_agents-0.0.40.tar.gz.
File metadata
- Download URL: openai_simple_agents-0.0.40.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0rc2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
854c1a9fbc3db1a5703d4e837aa64b4028587fa207a620dfedc4a86c3a4441b1
|
|
| MD5 |
cf0443b032440ab9b23b18aa69259c9a
|
|
| BLAKE2b-256 |
6680c69408a83c2c9e32aaf5b77133894cea6974a31881b3621bb9f1efb59b43
|
File details
Details for the file openai_simple_agents-0.0.40-py3-none-any.whl.
File metadata
- Download URL: openai_simple_agents-0.0.40-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0rc2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8a42f633ec2e6ebb8b11117adb5b5dcbfaf55762328a2dbd459e531ec827c9b
|
|
| MD5 |
e3184af2e74bc84f8a788c17ff539d23
|
|
| BLAKE2b-256 |
5dd206e48c88c862fdf9e3583deb6b1972b189d07d4b4594188dd29cc5fcdbaf
|