Модуль s.5 · Урок 3
Урок 3: Память и контекст
Чему вы научитесь
- Понимать, почему контекстное окно — главное узкое место длинных исследований
- Различать рабочий контекст и персистентную память, и зачем нужны оба
- Объяснять трёхуровневую компрессию контекста и откуда берётся коэффициент ~20:1
- Видеть, как граф знаний помогает агенту работать с 1000+ статей, не теряя нить
- Переносить приёмы управления памятью в собственную сборку агента
Узкое место — не модель, а контекст
Современные модели держат большое контекстное окно, но оно всё равно конечно. Один автономный прогон агента-исследователя может прочитать порядка полутора тысяч статей и написать десятки тысяч строк кода — это многократно превышает любое окно (Edison Scientific / Kosmos, TechFundingNews).
Если просто сваливать всё в контекст, агент быстро упирается в лимит, теряет ранние факты и начинает противоречить сам себе. Поэтому управление памятью — не оптимизация, а условие, без которого длинное исследование вообще не работает.
Персистентная память: EvoScientist
EvoScientist опирается на персистентную память между шагами и прогонами (GitHub). Это то, что делает систему «само-эволюционирующей»: она помнит, какие стратегии и промпты сработали раньше, и уточняет их в следующий раз, не начиная с нуля.
Практический смысл прост. Субагенты не пересказывают друг другу всё подряд — они пишут структурированные выводы в общую память, а оттуда подтягивают только нужное. Так план, найденные факты и промежуточные результаты не теряются при переключении между ролями.
Трёхуровневая компрессия: Kosmos
Kosmos решает ту же задачу через многоуровневое сжатие контекста. По описанию архитектуры применяется трёхуровневая компрессия с коэффициентом порядка 20:1 (Kosmos, GitHub, статья arXiv 2511.02824). Идея — на каждом уровне оставлять всё более плотную выжимку, отбрасывая сырой текст.
Логику трёх уровней удобно представить как воронку: много сырого входа сверху, плотное ядро фактов внизу. Именно с этим ядром агент работает на длинной дистанции.
flowchart TB
RAW["Уровень 1: сырой вход<br/>статьи, логи, вывод кода"] --> SUM["Уровень 2: выжимки<br/>краткие саммари по источнику"]
SUM --> FACTS["Уровень 3: факты и связи<br/>граф знаний Neo4j"]
FACTS --> WORK["Рабочий контекст агента<br/>подтягивает только нужное"]
style RAW fill:#64748b,color:#fff,stroke:#475569
style SUM fill:#0891b2,color:#fff,stroke:#0e7490
style FACTS fill:#4400ff,color:#fff,stroke:#3300cc
style WORK fill:#059669,color:#fff,stroke:#047857
Почему граф знаний, а не один длинный текст
Третий уровень в Kosmos — граф знаний на Neo4j. Это не случайно. Если хранить выжимки как один длинный документ, агент всё равно вынужден перечитывать его целиком. Граф позволяет извлечь точечно: «все статьи, где метод X дал отрицательный эффект» — без загрузки всего остального.
Так агент удерживает нить на тысячах источников: в рабочий контекст попадает не вся история, а релевантный срез фактов под текущий шаг. Связи между фактами при этом сохраняются — что важно для научных выводов, где контекст утверждения решает.
Что из этого перенести в свою сборку
Даже без полноценного графа знаний приёмы работают на меньшем масштабе.
- Разделяйте контекст и память. Не держите всё в промпте — выносите выводы в файл, базу или заметки, подтягивайте по запросу.
- Сжимайте иерархично. Сырой источник, краткая выжимка, выделенные факты — три уровня уже сильно разгружают контекст.
- Храните провенанс. К каждому сжатому факту прикрепляйте ссылку на источник, иначе компрессия превратит проверяемые данные в неотличимые от галлюцинаций.
- Помните про human-on-the-loop. Сжатие теряет детали, поэтому ключевые факты перед выводом сверяйте с первоисточником сами.
Следующий модуль
Модуль S.6: Валидация, этика и оформление — как формально оценить вывод агента по рубрике ScholarEval и сдать аккуратный проверяемый артефакт.