🧠 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
Metadata
Release files for openai-simple-agents 0.0.45
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openai_simple_agents-0.0.45.tar.gz | 14.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openai_simple_agents-0.0.45-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.3 kB
Release files / openai_simple_agents-0.0.45.tar.gz
| Download URL | openai_simple_agents-0.0.45.tar.gz |
|---|---|
| Size | 14.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2793a30b9d30d90da765b9a972e9b7d01dfe1a05b280f84738143154e6b58b30
|
|
BLAKE2b-256 checksum How to use checksums |
3875cce2434a3fe761e480af3750fd4573d11cf6c337763ca68f6915a64bbf83
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.0rc2
|
Release files / openai_simple_agents-0.0.45-py3-none-any.whl
| Download URL | openai_simple_agents-0.0.45-py3-none-any.whl |
|---|---|
| Size | 14.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
83e003c731c3aeeaeb9e4f5a0edab9e40424f62514389831bf5012cc72748380
|
|
BLAKE2b-256 checksum How to use checksums |
3ae383ca890ea98387587654b31aba0635e22f259efae39e88f618eb99b480e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.0rc2
|