Агенты забывают всё между сессиями, а если помнят — то плоской кучей векторов, в которой не разберёшься. TencentDB Agent Memory предлагает другой подход: символьная краткосрочная память (Mermaid-канва вместо логов) и слоистая долговременная (Persona → Scenario → Atom → Conversation). Разбираем архитектуру, замеры авторов, способы установки и подводные камни.
TencentDB Agent Memory — открытый слой памяти для агентов: он сжимает тяжёлые логи инструментов в компактную Mermaid-канву (символьная краткосрочная память) и одновременно строит пирамиду долговременной памяти L0→L3 вместо «плоского склада векторов». По умолчанию всё работает локально на SQLite, подключается как плагин к OpenClaw и как провайдер памяти к Hermes Agent. Ниже — как это устроено, что показывают замеры авторов, какие есть подводные камни и как проверить память глазами.
Авторы формулируют задачу так: человеку не должно быть нужно повторять одно и то же — проектный контекст, SOP, договорённости о формате вывода, — а агенту не следует держать в контексте всё подряд. Крайности плохи обе: безудержное накопление истории съедает токены, а «необратимая сжимающая суммаризация» теряет доказательства. Решение — двухконтурная память: символьная (для перегрузки внутри задачи) и слоистая (для опыта между сессиями).
Практически это значит, что после установки плагина агент сам захватывает диалог, извлекает из него атомарные факты, агрегирует сцены, строит профиль пользователя — и подставляет нужное в контекст перед следующим ходом. Ничего вручную размечать не нужно.
Краткосрочная память работает через выгрузку: полные логи инструментов уезжают во внешние файлы (refs/*.md), а в контекст попадает только символическое представление — Mermaid-канва с идентификаторами node_id. Нужную деталь агент достаёт поиском по node_id. Это и есть основной эффект по токенам: в контексте остаётся структура, а не сырой текст.
Долговременная память организована как семантическая пирамида: L0 Conversation (сырой диалог) → L1 Atom (атомарные факты) → L2 Scenario (блоки сцен) → L3 Persona (профиль пользователя). Верхние слои несут суждение и направление, нижние — доказательства и детали; переход «сверху вниз» возможен в любой момент.
| Тип вопроса | Сначала смотрим | Спускаемся до |
|---|---|---|
| Предпочтения, стиль, долгие цели | L3 Persona / L2 Scenario | L1 Atom / L0 Conversation |
| Конкретные факты, даты, детали проекта | L1 Atom / L0 Conversation | Расширение периода или семантический recall |
| Продолжение длинной задачи | Активная Mermaid-канва | JSONL-сводка → refs/*.md с сырым текстом |
| Возврат к исторической задаче | Запись задачи в метаданных | Канва → node_id → result_ref |
Хранение — гетерогенное: нижние слои (факты, логи, трассы) лежат в базе и доступны полнотекстовым поиском, верхние (персоны, сцены, канвы) — обычные Markdown-файлы, читаемые человеком. Все артефакты по умолчанию собираются в каталоге ~/.openclaw/memory-tdai/.
В README приведена таблица замеров интеграции с OpenClaw. Подчеркнём: это данные авторов проекта, а не независимый бенчмарк, и они сняты на непрерывных длинных сессиях (например, в SWE-bench подряд идёт 50 задач в одной сессии), а не на отдельных ходах. Отношение к таким числам — «проверяемо вендором, воспроизводить самому».
| Возможность | Бенчмарк | Без плагина | С плагином | Токены (без → с) |
|---|---|---|---|---|
| Краткосрочная память | WideSearch | 33% | 50% | 221,31M → 85,64M |
| Краткосрочная память | SWE-bench | 58,4% | 64,2% | 3474,1M → 2375,4M |
| Краткосрочная память | AA-LCR | 44,0% | 47,5% | 112,0M → 77,3M |
| Долговременная память | PersonaMem | 48% | 76% | не приведено |
Отдельно вендор заявляет рост точности PersonaMem с 48% до 76% — это метрика качества персонализации (насколько система помнит предпочтения пользователя), и она относится именно к долговременному контуру.
Установка устроена «zero-config»: по умолчанию поднимается локальный SQLite + sqlite-vec, а никаких обязательных облачных ключей нет. Для OpenClaw достаточно поставить плагин из npm и перезапустить шлюз; краткосрочное сжатие включается отдельно и требует версии >= 0.3.4 плюс патч-скрипт, который подписывается на after-tool-call сообщения.
openclaw plugins install @tencentdb-agent-memory/memory-tencentdb openclaw gateway restart
// ~/.openclaw/openclaw.json
{
"memory-tencentdb": { "enabled": true }
}{
"plugins": { "slots": { "contextEngine": "memory-tencentdb" } }
}
bash scripts/openclaw-after-tool-call-messages.patch.sh| Хост | Способ | Что нужно |
|---|---|---|
| OpenClaw (память) | Плагин из npm | Node.js >= 22.16, перезапуск шлюза |
| OpenClaw (сжатие) | Слот contextEngine + патч | Версия плагина >= 0.3.4, скрипт патча |
| Hermes (с нуля) | Docker-образ с hermes-agent | Gateway на :8420, MODEL_API_KEY и (опционально) свой эндпоинт |
| Hermes (к существующей установке) | Симлинк плагина + config.yaml | Каталог обязательно memory_tencentdb, provider в конфиге |
| Свой бэкенд | Локальный SQLite, TCVDB или OpenAI-совместимые embeddings | Настройки в embedding.* / llm.* |
memory_tencentdb (с подчёркиванием) — дефисный вариант работает только как алиас в конфиге. Второй нюанс — безопасность шлюза: по умолчанию он слушает :8420 без ключа (в логе появляется предупреждение), поэтому для доступа из сети включайте TDAI_GATEWAY_API_KEY и CORS-allow-list, а не полагайтесь на localhost.Сравнивать системы памяти корректно по трём осям: модель хранения (плоские векторы против слоёв), прозрачность (можно ли открыть и посмотреть) и способ подключения (фреймворк-агностично или под конкретный хост). TencentDB Agent Memory заявляет ставку на слои, Markdown-артефакты и два готовых хоста — OpenClaw и Hermes. Ниже — проверяемые метрики популярности у нескольких проектов этого класса.
| Критерий | TencentDB Agent Memory | Что смотреть в альтернативах |
|---|---|---|
| Модель хранения | слои L0–L3 + символы | Плоский векторный стор или иерархия |
| Прозрачность | Markdown-сцены, persona.md, Mermaid-канвы | Есть ли доступ к промежуточным слоям |
| Краткосрочное сжатие | есть (offload + канва) | Полагается ли система только на суммаризацию |
| Хосты | OpenClaw, Hermes | Нужный вам агентский фреймворк |
| Локальный режим | SQLite + sqlite-vec | Обязателен ли облачный сервис |
| Языки ключевого поиска | BM25-токенизатор zh/en | Отдельный русский токенизатор |
~/.openclaw/memory-tdai/: он покажет, что именно система запомнила, до всяких бенчмарков.~/.openclaw/memory-tdai/: сцены L2 лежат как обычный Markdown, профиль — в persona.md, краткосрочные канвы — как Mermaid, а связи между слоями держатся на result_ref и node_id. Отладка превращается в детерминированный проход Persona → Scenario → Atom → Conversation.memory_tencentdb собраны вместе (Gateway слушает :8420), и путь «дописать память в уже установленный Hermes» через симлинк плагина и строку provider: memory_tencentdb в конфиге.TDAI_GATEWAY_API_KEY (проверка Bearer, сравнение константное) и список CORS-источников — иначе оставляйте шлюз на localhost.zh (jieba) и en; отдельного русского варианта в документации нет, поэтому для кириллицы надёжнее полагаться на гибридный режим recall, где семантическая (векторная) часть компенсирует ключевую.