TL;DR
LLM слепа к своему же контексту. Она не знает, сколько токенов занимает каждый блок информации, насколько он старый, обращались ли к нему недавно. Из одного текста промпта это не вывести — это системная информация, которой в промпте просто нет. VISTA — принцип, который вставляет эти метаданные прямо в промпт в виде табличной «панели управления», после чего модель сама решает, что держать активным, а что отправить в архив.
Главная находка: когда у модели нет метаданных о контексте, она либо держит всё подряд (и захлёбывается), либо бездумно выбрасывает старое (и теряет нужное). Например, в длинном рабочем диалоге модель может «потерять» ключевое ограничение из первых сообщений — не потому что переполнилась, а потому что не видит, что этот блок важный и старый одновременно. Без метаданных у неё нет сигнала для решения «оставить или убрать».
Решение в три части: дать блокам имена и адреса → показать модели таблицу с размером/давностью/статусом каждого блока → дать инструмент «архивировать с возможностью точного восстановления». Модель видит карту своей памяти и управляет ею сама — без дообучения, без кода.
Схема метода
ШАГ 1: Разбейте контекст на именованные блоки
→ каждый блок = одна тема/задача/документ с ID (B1, B2...)
ШАГ 2: Вставьте в промпт «панель управления» (dashboard)
→ таблица: ID | содержимое | размер | давность | статус
→ обновляйте каждые N сообщений
ШАГ 3: Укажите архив вне чата
→ что именно вынесено, куда, как восстановить
→ архив хранит точные данные, не пересказ
Всё выполняется в одном промпте / одном чате.
Обновление dashboard — ваше ручное действие каждые ~10-15 сообщений.
Пример применения
Задача: Вы готовите питч-дек для инвестора и ведёте длинный диалог с Claude. Уже 30+ сообщений — модель начинает «забывать» ограничения из начала разговора: бюджет раунда, формат инвестора, пожелания по тону.
Промпт:
## ПАНЕЛЬ УПРАВЛЕНИЯ КОНТЕКСТОМ
Ты ведёшь длинный диалог по питч-деку. Вот карта нашего контекста:
| ID | Блок | Размер | Давность | Статус |
|-----|-----------------------------------|-----------|-----------------|-----------|
| B1 | Описание бизнеса и аудитория | Большой | 25 msg назад | Активен |
| B2 | Конкурентный анализ (Ozon, Wildberries) | Средний | 18 msg назад | Активен |
| B3 | Ограничения инвестора Петрова | Маленький | 20 msg назад | ⚠️ Важный |
| B4 | Финансовая модель, год 1-3 | Большой | 10 msg назад | Активен |
| B5 | Обратная связь с последней встречи | Средний | 3 msg назад | Активен |
АРХИВ (вынесено вне чата, данные точные):
- ARCH-1: Полный финмодель v2 (у меня в Excel)
- ARCH-2: Первая версия питча (у меня в Google Docs)
БЮДЖЕТ: Диалог становится длинным. Приоритет: B3, B5.
Если нужны данные из архива — попроси меня вставить нужный фрагмент.
---
Продолжай работу с учётом этой карты.
Текущая задача: переработай слайд с рынком, учти ограничение инвестора из B3.
Результат:
Модель явно сошлётся на B3 при работе над слайдом. Не «угадает» ограничение, а прямо укажет: «Учитывая В3 (ограничения Петрова)...». Если нужен архивный материал — попросит вас его вставить, а не будет генерировать из пустоты.
Почему это работает
LLM не видит свои внутренние параметры. Размер блока в токенах, время последнего обращения, количество раз, когда на него ссылались — это системная информация. Из текста она не выводится. Модель буквально не может посчитать «этот блок занимает 800 токенов и к нему обращались 5 msg назад» — она не архитектурный инспектор, она генератор текста.
Зато модель отлично работает с явными таблицами и инструкциями. Если вы напишете ей метаданные — размер, давность, статус — она сможет рассуждать на их основе. Она использует ту же логику, что при чтении любого структурированного текста: видит сигналы, делает вывод. Невидимое становится видимым.
Механика «архив + точное восстановление» важнее, чем кажется. Суммаризация (пересказ) — это потеря информации. Если будущий вопрос требует точных данных, которые вы пересказали словами — они безвозвратно искажены. VISTA-принцип: не пересказывай, убирай оригинал в сторону с запиской где лежит. Восстановишь точно, когда понадобится.
Рычаги управления: - Частота обновления dashboard — чем длиннее диалог, тем чаще. Раз в 10 сообщений для рабочих задач. - Флаг ⚠️ Важный у блока — модель будет его беречь дольше. - Явный приоритет в конце таблицы — «Приоритет: B3, B5» — прямая инструкция что не трогать. - Размер описания в архиве — чем точнее описание «что там», тем точнее модель скажет когда его запросить.
Шаблон промпта
## ПАНЕЛЬ УПРАВЛЕНИЯ КОНТЕКСТОМ
| ID | Блок | Размер | Давность | Статус |
|-----|-----------------------|--------------|--------------------|--------------|
| B1 | {содержимое_блока_1} | {Большой/Средний/Маленький} | {N msg назад} | {Активен/Важный/Можно убрать} |
| B2 | {содержимое_блока_2} | {размер} | {давность} | {статус} |
| ... | ... | ... | ... | ... |
АРХИВ (вынесено, данные точные — восстанавливается по запросу):
- ARCH-1: {что_архивировано_1} ({где_хранится})
- ARCH-2: {что_архивировано_2} ({где_хранится})
БЮДЖЕТ КОНТЕКСТА: {оценка_длины_диалога}.
Приоритет держать активными: {список_важных_ID}.
Если нужны данные из архива — попроси меня вставить фрагмент.
---
{текущая_задача}
Плейсхолдеры:
- {содержимое_блока} — одна фраза о чём этот кусок: «условия контракта с ООО Ромашка», «требования к дизайну»
- {размер} — на глаз: Большой / Средний / Маленький
- {давность} — «3 msg назад», «в начале диалога», «15 сообщений назад»
- {статус} — Активен / ⚠️ Важный / Можно убрать / В архиве
- {текущая_задача} — что делать прямо сейчас
🚀 Быстрый старт — вставь в чат:
Вот шаблон панели управления контекстом (VISTA-принцип).
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит о ключевых темах вашего диалога, их важности и что уже вынесено за пределы — потому что без этого она не сможет заполнить таблицу с нужными блоками и приоритетами. Она возьмёт паттерн из шаблона и адаптирует под вашу задачу.
Ограничения
⚠️ Ручная работа: Автоматического обновления нет — вы сами обновляете таблицу каждые N сообщений. Забыли обновить — эффект угасает.
⚠️ Накладные расходы на токены: Dashboard сам занимает место в контексте. Для коротких диалогов (до 20 сообщений) — избыточен, только зашумляет.
⚠️ Архив требует дисциплины: Принцип «точного восстановления» работает только если вы действительно сохранили оригинал вне чата. Иначе ссылка на ARCH-1 ведёт в никуда.
⚠️ Не для простых задач: Если диалог короткий или однотопиковый — это лишняя структура. Метод раскрывается на длинных, многослойных задачах.
Как исследовали
Команда взяла идею простую и жёсткую: если модели дать метаданные о её же контексте, она справится лучше без всякого дообучения? Проверяли на трёх бенчмарках разного масштаба — от миллионных до 10К-токенных траекторий — чтобы убедиться, что эффект не случайный. Главный тест, LOCA-Bench, изощрённо жестокий: важные данные появляются в начале, мусор накапливается в середине, нужный ответ требует того самого раннего блока. Именно здесь модели без метаданных сыпались чаще всего.
Результаты оказались неприлично впечатляющими. Gemini-3-Flash прыгнул с 22.7% до 50.7% — просто от добавления dashboard, без дообучения. Claude Sonnet — с 8% до 34.7%. Что особенно важно: убрали dashboard, оставили архив и восстановление — точность упала. То есть дело не только в «ящике для хранения», а именно в том, что модель видит карту своей памяти.
Интересный аблейшн (ablation — проверка компонентов по отдельности): архив без dashboard работает хуже, чем архив с dashboard. Это подтверждает core-инсайт: не инструмент хранения решает задачу, а видимость состояния. Ещё одна находка — у VISTA меньший токен-расход на задачу, чем у Claude Code, при лучшей точности. Экономия и качество одновременно — редкость в исследованиях.
Адаптации и экстраполяции
🔧 Адаптация: добавь флаг «Риск потери» вместо просто «Важный»
Статус
⚠️ Риск потери: если уберёшь — потеряем Xсильнее, чем простоВажный. Модель понимает последствие удаления, а не только приоритет.
| B3 | Лимит бюджета проекта (500K руб) | Маленький | 20 msg назад | ⚠️ Риск потери: все оценки слетят |
🔧 Адаптация: «контрольная точка» вместо полной таблицы
Для задач средней длины — краткий вариант без таблицы:
КОНТРОЛЬНАЯ ТОЧКА (сообщение 15 из ?):
Что держу в уме как критичное:
→ B3: ограничение инвестора — только B2B, не B2C
→ B5: последнее решение было "делаем MVP за 2 месяца"
Что можно не держать, оно у меня сохранено:
→ Вся история по конкурентам (у меня в доке)
Продолжаем: {задача}
🔧 Экстраполяция: VISTA + Chain-of-Thought для сложных задач
Перед началом длинного рассуждения — явно скажите модели, какими блоками информации она должна оперировать:
Перед ответом:
1. Проверь по панели какие блоки релевантны задаче
2. Назови их (B1, B3...) в начале ответа
3. Реши задачу, опираясь на них явно
Это превращает dashboard из пассивной «карты» в активный инструмент планирования ответа.
Ресурсы
Статья: LLM Agents Are Latent Context Managers: Eliciting Self-Managed Context via a Proprioceptive Dashboard
Авторы: Binyan Xu, Haitao Li, Kehuan Zhang
Организации: The Chinese University of Hong Kong; LIGHTSPEED, Shenzhen
Связанные бенчмарки из статьи: LOCA-Bench, BrowseComp-Plus, GAIA, AMA-Bench
