TGViewer
алиса олеговна алиса олеговна @alisaolega · 494 subscribers
Post #334 422

Forwarded from DeepSchool / underthehood (Oleg Pavlovich)

Агентская память done right [PART 4 FINAL]

Hebbs — элегантный слой памяти для агентов. Наткнулся на него абсолютно случайно, рыская по GitHub. У проекта на момент написания 20 с небольшим звезд. Но после всего, что я прочитал и изучил на тему памяти, реализовал бы я её именно так.

базовая единица — эпизод ⭐️

Один и тот же эпизод живёт сразу в нескольких представлениях:
• как обычный текстовый memory item
• как вектор в HNSW embedding index
• как узел в графе связей
• как событие во времени
• как часть более поздних инсайтов и ревизий

То есть эпизод один, а способов вспомнить его — несколько.

Помимо этого: продуманная модель данных, минимум абстракций, MCP с 9 понятными инструментами, один ~25Mb бинарник, векторные модельки в ONNX, поддержка основных LLM API, клиентский API на Python, Typescript, Rust или C/C++ (через FFI).

Но главное — реализованы все ключевые паттерны, которые мы разобрали в PART 2 и PART 3.

4 способа вспомнить 🤨


/// hebbs-core/src/recall.rs
pub enum RecallStrategy {
Similarity,
Temporal,
Causal,
Analogical,
}


Хочешь хронологию по проекту — Temporal. Причинную цепочку от конкретного бага — Causal. Нечто похожее, но из другого домена — Analogical. Тупо семантический поиск — Similarity. Конечно же, можно все и сразу и параллельно.

К слову, связи в графе здесь предопределены: CausedBy, FollowedBy, RelatedTo, RevisedFrom, Contradicts, InsightFrom — LLM не сможет бесконтрольно плодить новые, как это часто бывает в подобных системах.

скоринг знаний

Независимо от стратегии, чтобы попасть в поисковую выдачу агента, все эпизоды проходят фильтр по следующему скору:

S = w_r×R + w_t×T + w_i×I + w_c×C

R = relevance — семантическая близость к запросу:
(1 − hnsw_distance)

T = recency — свежесть:
(1 − age / 30 days)

I = importance — значимость, задаётся агентом при вызове remember()

C = reinforcement — частота вспоминания:
log₂(1 + access_count) / log₂(1 + 101)

w — вес при каждой компоненте, соответственно

Дефолтные веса 0.5 : 0.2 : 0.2 : 0.1 ; можно задать вручную, можно юзать пресеты.

Свежий эпизод, стандартная важность, ни разу не вспоминали:
0.5×1.0 + 0.2×1.0 + 0.2×0.5 + 0.1×0.0 = 0.80

через месяц без обращений → T = 0, C = 0 → 0.10, почти забыт. Но если его регулярно вспоминали — C растёт логарифмически и тянет скор обратно вверх.

С позиции LLM агента всё тоже предельно просто: выбери 1 или несколько из 4 способов поиска, если надо, подкрути 4 ручки, чтобы настроить какие сигналы для тебя важнее в этом запросе.

reflect = daydreaming

Режим переоценки знаний происходит так:

(1) Cluster → группировка похожих эпизодов (embedding + temporal proximity)
(2) Propose → LLM генерирует кандидат-инсайты из кластера
(3) Validate → второй LLM-pass проверяет точность и полезность
(4) Consolidate → валидные инсайты → Insight сущности + InsightFrom связи

Каждый инсайт хранит confidence и lineage к исходным эпизодам. Обновили эпизод через revise() или удалили через forget() — зависимые инсайты автоматически помечаются как stale и перевалидируются в фоне. Можно включать автоматически: по количеству новых эпизодов, по расписанию, по накоплению записей высоким importance.

Вот основная разница между «хранить данные» и «накапливать опыт».

Итого

Для долгоживущего автономного LLM агента, особенно в режиме embedded типа умной колонки, Hebbs попадает в sweet spot: forgetting, reinforcement, reflection, lineage, conflict detection — при этом я понимаю, как работает каждый компонент и как его подкрутить.

Для бытовых задач и совместного наполнения некоторой базы знаний, думаю, достаточно инструментов типа QMD или LightRAG.

Из минусов отметил бы для себя малопопулярную RocksDB в качестве БД и отсутствие нативной поддержки мультимодальности. Но это скорее придирки.

Быстрые ссылки
• Hebbs — GitHub
• Hebbs Docs
• Recall Strategies
• Reflection / Background Learning
• API Overview
  • 🔥 2
  • ❤ 1
More from @alisaolega
  1. Aug 2, 2026Привет! Закидываю презентацию:
  2. Aug 2, 2026Друзья, спасибо кто пришёл поддержать, и за ваши интересные вопросы после! Вроде неплохо я…
  3. Jul 28, 2026алиса олеговна pinned a photo
  4. Jul 28, 2026Друзья, привет! В это воскресенье буду выступать на конференции от МТС! Расскажу, как зава…
  5. Jun 3, 2026🚀 Возвращаемся после долгого перерыва с тем, что и правда приятно показать 🚀 Это результ…
  6. Jun 3, 2026Классный релиз от коллеги по цеху Даши! Грех не поделиться:
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →