OpenExp набирає 98.6% на LongMemEval — Як ми побудували AI-пам'ять, яка справді працює
Проблема: AI-агенти не мають довгострокової пам'яті
Ваш AI-агент блискуче обробляє розмову з клієнтом сьогодні. Завтра він поняття не має, що ця розмова взагалі відбувалася. Він не пам'ятає, що клієнт надає перевагу email перед Slack, що останню пропозицію відхилили через ціну або що ви вже пробували підхід A і він не спрацював.
Це не проблема моделі — це проблема пам'яті. А більшість рішень або коштують цілий статок у API-викликах, або просто недостатньо добре працюють, щоб їм довіряти.
Ми побудували OpenExp, щоб вирішити це: повністю локальний шар пам'яті для AI-агентів, який навчається на основі результатів. Але "працює в продакшні" недостатньо — нам потрібні були числа. Тому ми пропустили його через стандартний бенчмарк.
Що таке LongMemEval?
LongMemEval — це галузевий стандарт бенчмарку для систем пам'яті AI-агентів, опублікований на ICLR 2025. Він перевіряє одне: чи може ваша система пам'яті знайти потрібну інформацію серед багатьох розмов?
Налаштування просте, але вимогливе: 500 питань, кожне з ~48 сесіями розмов як "стіг сіна". Система повинна знайти голку — сесію, яка містить відповідь. Шість типів питань перевіряють різні здатності пам'яті:
| Тип питання | Що перевіряє | Приклад |
|---|---|---|
| Одна сесія (користувач) | Знайти, що сказав користувач | "Яку книгу я згадував?" |
| Одна сесія (асистент) | Знайти, що відповів AI | "Що ви порекомендували?" |
| Вподобання | Знайти вподобання користувача | "Яку каву я люблю?" |
| Кілька сесій | Поєднати інфо з різних розмов | "Як розвивався мій план?" |
| Оновлення знань | Знайти оновлену інформацію | "Де я зараз живу?" |
| Часове міркування | Логіка на основі часу | "Що сталося до мого переїзду?" |
Як ми тестували
Для кожного з 500 питань наш бенчмарк:
- Будує корпус з ~48 сесій-стогів сіна
- Векторизує все за допомогою BAAI/bge-small-en-v1.5 (384 виміри — та сама модель, яку OpenExp використовує в продакшні)
- Індексує в Qdrant (in-memory, свіжа колекція на кожне питання)
- Шукає найбільш релевантні сесії
- Перевіряє, чи правильна сесія з'являється в топ-k результатах
Це retrieval-only оцінювання — жоден LLM не генерує відповідь. Ми вимірюємо, чи знаходить система пам'яті потрібний документ, і все.
Ми тестували три стратегії скорингу, щоб зрозуміти, який вклад вносить кожен компонент:
- Raw — чиста векторна схожість (косинусна відстань між ембедингами)
- Hybrid — векторна схожість (90%) + BM25 ключові слова (10%)
- Full — вектор (75%) + BM25 (10%) + boost за свіжістю (15%)
Результати
Загальна продуктивність на 500 питаннях
| Метрика | Raw | Hybrid | Full |
|---|---|---|---|
| Recall@1 | 83.0% | 88.0% | 87.8% |
| Recall@5 | 96.2% | 96.4% | 96.4% |
| Recall@10 | 97.8% | 98.6% | 98.6% |
| NDCG@10 | 89.3% | 92.4% | 92.5% |
Recall@k = "чи з'явилася правильна сесія в топ-k результатах?" При Recall@10 = 98.6% лише 7 з 500 питань не знайшли відповіді. NDCG@10 вимірює, наскільки високо в списку знаходиться правильний результат — 92.5% означає, що він майже завжди знаходиться біля вершини.
Розбивка за типом питання (Recall@10)
| Тип питання | Raw | Hybrid | Full |
|---|---|---|---|
| Оновлення знань | 98.7% | 100% | 100% |
| Кілька сесій | 100% | 100% | 100% |
| Одна сесія (користувач) | 98.6% | 100% | 100% |
| Вподобання | 90.0% | 96.7% | 96.7% |
| Одна сесія (асистент) | 98.2% | 94.6% | 92.9% |
| Часове міркування | 96.2% | 97.7% | 98.5% |
Що вносить кожен компонент
BM25 keyword matching: найбільший виграш
Додавання лише 10% ваги BM25 до vector search покращило Recall@1 на 5 відсоткових пунктів і NDCG на 3.1%. Чому? Векторні ембединги розуміють, що "книга" і "роман" пов'язані — але вони також можуть плутати будь-яку розмову про каву з тією конкретною, де ви сказали, що надаєте перевагу еспресо. BM25 вловлює точні збіги ключових слів, які ембединги пропускають.
Найбільше покращення: питання про вподобання стрибнули з 90.0% до 96.7%. Це саме той тип, де точність ключових слів найважливіша.
Свіжість: важлива в продакшні, але не в бенчмарках
Додавання скорингу за свіжістю майже не змінило загальні числа, але покращило часове міркування на 0.8%. Це логічно — LongMemEval рівномірно розподіляє питання в часі. У реальному використанні люди набагато частіше запитують про нещодавні події, тому свіжість дає більше цінності, ніж показує цей бенчмарк.
Ключовий висновок: Простота перемагає складність. Додавання BM25 keyword matching до vector search дає більше покращення, ніж будь-яка вигадлива архітектура. Структурована система "палацу" MemPalace насправді робить retrieval гіршим (дивіться порівняння нижче). Правильні 10% сигналу ключових слів перевершують місяці архітектурної складності.
Як OpenExp порівнюється з іншими системами пам'яті
Пряме порівняння (retrieval-only, однакова методологія)
| Система | Recall@5 | Потрібен LLM? | Ліцензія |
|---|---|---|---|
| OpenExp hybrid | 96.4% | Ні | MIT (open source) |
| MemPalace raw | 96.6% | Ні | Open source |
| MemPalace AAAK | 84.2% | Ні | Open source |
OpenExp відповідає raw retrieval MemPalace (96.4% проти 96.6% — в межах шуму). Але ось цікава частина: структурована архітектура "палацу" MemPalace (режим AAAK), яка є їхньою головною фішкою, падає до 84.2%. Їхня додана складність шкодить, а не допомагає.
Ширший ландшафт (end-to-end QA — інша методологія)
Більшість інших систем звітують про end-to-end точність (retrieval + генерація відповіді LLM), що є іншою метрикою. Для контексту:
| Система | End-to-End Accuracy | Потрібен LLM |
|---|---|---|
| OMEGA | 95.4% | Так (on-device) |
| Mastra OM | 94.9% | Так (gpt-5-mini) |
| Letta (MemGPT) | 91.4% | Так (GPT-4o) |
| Zep | 63.8% | Так (GPT-4o) |
| ChatGPT memory | ~53% | Так (GPT-4o) |
| Mem0 | 49.0% | Так (GPT-4o) |
Ці числа не можна прямо порівнювати з retrieval recall — це як порівнювати потужність двигуна з часом кола. Але при 98.6% точності retrieval LLM потрібно лише прочитати правильний контекст і згенерувати правильну відповідь, що є простою частиною. Ми плануємо додати end-to-end оцінювання в майбутньому оновленні.
Що робить OpenExp особливим
Більшість систем пам'яті зупиняються на retrieval. OpenExp додає шар, якого немає в жодній із систем вище: Q-learning.
Кожна пам'ять в OpenExp має Q-value (від 0 до 1), яке змінюється на основі результатів. Коли пам'ять сприяє успішному завданню — закритій угоді, злитому PR, вирішеному тікету — її Q-value зростає. Пам'яті, що призводять до глухих кутів, з часом знижуються.
Це означає, що OpenExp не просто пам'ятає — він вчиться, що варто запам'ятовувати. Після місяця використання пам'яті, які насправді призвели до результатів, з'являються першими. Цей Q-learning сигнал не включено у бенчмарк вище — це додатковий бонус поверх 98.6% retrieval score.
Хочете додати постійну пам'ять до свого AI-агента? OpenExp є open source і працює повністю на вашому комп'ютері. Без витрат на API, без витоку даних з вашої системи. Перегляньте на GitHub або забронюйте дзвінок, якщо вам потрібна допомога з інтеграцією.
Відтворіть ці результати
Все є open source. Запустіть бенчмарк самостійно:
git clone https://github.com/anthroos/openexp.git
cd openexp && pip install -e .
# Download dataset (264 MB)
mkdir -p benchmarks/data
curl -L -o benchmarks/data/longmemeval_s_cleaned.json \
"https://huggingface.co/datasets/xiaowu0162/longmemeval-cleaned/resolve/main/longmemeval_s_cleaned.json"
# Run (~60 min each on Apple Silicon)
python benchmarks/longmemeval_bench.py benchmarks/data/longmemeval_s_cleaned.json --mode raw
python benchmarks/longmemeval_bench.py benchmarks/data/longmemeval_s_cleaned.json --mode hybrid
python benchmarks/longmemeval_bench.py benchmarks/data/longmemeval_s_cleaned.json --mode full
Ключові висновки
- Гібридний пошук — це золота середина. Векторні ембединги + 10% BM25 keyword matching дають найкращий баланс. Це продакшн-дефолт OpenExp.
- Простий скоринг перемагає складну архітектуру. Структура "палацу" MemPalace деградує з 96.6% до 84.2%. Наш простий hybrid досягає 98.6% Recall@10. Не надмірно ускладнюйте.
- Нуль LLM-викликів, повністю локально. Без витрат на API, без затримок, без витоку даних з вашого комп'ютера. Кожен пошук завершується менш ніж за 100 мс у продакшні.
- Q-learning — це наступний рубіж. Бенчмарк не відображає унікальну силу OpenExp — пам'яті, що призвели до реальних результатів, з часом ранжуються вище. Це різниця між пошуковою системою і системою, що навчається.
Будуєте AI-агентів, яким потрібно пам'ятати? Чи то sales-асистент, що навчається на закритих угодах, чи support-бот, що пам'ятає вподобання клієнтів, чи coding-агент, що пам'ятає, що спрацювало — ми допоможемо інтегрувати постійну, навчальну пам'ять. Забронюйте безкоштовну 30-хвилинну консультацію або напишіть нам.