3,583 papers
arXiv:2606.30005 79 29 июня 2026 г. FREE

VISTA: «Панель управления» контекстом — как сделать LLM самоуправляемой памятью в длинных диалогах

КЛЮЧЕВАЯ СУТЬ
Парадокс: LLM читает весь ваш диалог, но не знает что в нём важно — у неё нет карты собственной памяти. Сколько токенов занимает каждый блок, когда к нему последний раз обращались, что критичнее остального — это системная информация, которой в тексте просто нет. VISTA позволяет вести длинные рабочие диалоги без потери ключевых ограничений и условий — даже когда разговор перевалил за 50 сообщений. Фишка: вставляете в промпт таблицу с метаданными — ID блока, размер, давность, статус — и модель начинает рассуждать на основе явных сигналов вместо угадывания: сама решает что держать активным, что архивировать и когда попросить вас восстановить данные.
Адаптировать под запрос

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


📋 Дайджест исследования

Ключевая суть

Парадокс: LLM читает весь ваш диалог, но не знает что в нём важно — у неё нет карты собственной памяти. Сколько токенов занимает каждый блок, когда к нему последний раз обращались, что критичнее остального — это системная информация, которой в тексте просто нет. VISTA позволяет вести длинные рабочие диалоги без потери ключевых ограничений и условий — даже когда разговор перевалил за 50 сообщений. Фишка: вставляете в промпт таблицу с метаданными — ID блока, размер, давность, статус — и модель начинает рассуждать на основе явных сигналов вместо угадывания: сама решает что держать активным, что архивировать и когда попросить вас восстановить данные.

Принцип работы

Стандартный путь — суммаризация — это скрытая потеря данных. Пересказали финансовую модель своими словами? Точные цифры размылись навсегда. VISTA разрывает этот цикл: не пересказывай — выноси оригинал в архив и оставляй записку где лежит. Восстановление точное, не по памяти. Модель читает таблицу как любой структурированный текст — видит сигналы (старый + маленький + не трогали = кандидат на архив) и делает логичный вывод. Не магия — просто явные данные вместо невидимых.

Почему работает

LLM — генератор текста, а не инспектор архитектуры. Она физически не может вывести из текста диалога «этот блок занимает 800 токенов и к нему обращались 5 сообщений назад» — этой информации там нет. Зато модель отлично работает с явными таблицами: видит «20 сообщений назад + Маленький + Важный» — и принимает осмысленное решение. Невидимое становится видимым. Без дообучения, без кода — только структурированный промпт.

Когда применять

Деловые и проектные задачи — подготовка питч-деков, анализ документов, длинные рабочие переговоры, когда диалог перевалил за 20-30 сообщений и содержит несколько независимых тем. Особенно незаменим когда в начале диалога заданы жёсткие ограничения (бюджет, формат, требования заказчика), которые модель должна помнить до самого конца. НЕ подходит для коротких и однотемных разговоров — таблица занимает токены и только мешает.

Мини-рецепт

1. Разбейте диалог на блоки: каждый блок — одна тема или документ с коротким адресом (B1, B2...). Одна фраза на блок: «условия контракта с ООО Ромашка», «требования инвестора Петрова».

2. Создайте таблицу-дашборд: колонки — ID, содержимое, размер (Большой/Средний/Маленький), давность (сколько сообщений назад), статус (Активен / Важный / Можно убрать).

3. Добавьте раздел архива: что вынесено за пределы чата и где хранится точный оригинал. Правило железное: не пересказывайте — сохраняйте оригинал и пишите где он лежит. Ссылка на архив, который не существует, хуже чем его отсутствие.

4. Явно укажите приоритеты: в конце таблицы напишите какие блоки не трогать — <приоритет>Приоритет: B2, B5. Обновляйте таблицу вручную каждые 10-15 сообщений — забыли обновить, эффект угасает.

Примеры

[ПЛОХО] : Продолжай работу над питч-деком, учти всё что обсуждали в начале разговора
[ХОРОШО] : Перед новой задачей вставляете дашборд: ## ПАНЕЛЬ УПРАВЛЕНИЯ КОНТЕКСТОМ | B1 | Описание продукта и аудитория | Средний | 25 msg назад | Активен | | B2 | Ограничения инвестора Петрова | Маленький | 20 msg назад | Важный | | B3 | Финмодель год 1-3 | Большой | 8 msg назад | Активен | АРХИВ: ARCH-1 — полная финмодель v2 (Excel у меня) Приоритет: B2. Задача: перепиши слайд с рынком — явно сошлись на ограничения из B2 Результат: модель не «угадывает» ограничения инвестора из памяти — она прямо ссылается: «Учитывая B2 (требования Петрова)...» и просит вставить ARCH-1, если нужны точные цифры.
Источник: LLM Agents Are Latent Context Managers: Eliciting Self-Managed Context via a Proprioceptive Dashboard (2606.30005)
ArXiv ID: 2606.30005 | Сгенерировано: 2026-06-30 05:25

Проблемы LLM

ПроблемаСутьКак обойти
Модель не видит метаданные своего контекстаМодель не знает: какой блок информации большой, какой старый, к какому давно не обращались. Это системная информация — из текста её не вывести. Без неё модель не может решить что важно, а что можно убрать. Выбрасывает случайно или держит всё подрядНапиши метаданные явно в промпте. Таблица с размером, давностью и статусом каждого блока — модель начнёт рассуждать на их основе

Методы

МетодСуть
Таблица-карта памяти — явное управление длинным диалогомРаздели контекст на именованные блоки: B1, B2, B3. Каждый блок — одна тема или задача. Вставь в промпт таблицу: ID / содержимое / размер / давность / статус. Добавь явный приоритет: "Держать активными: B3, B5". Обновляй таблицу каждые 10–15 сообщений сам. Почему работает: Модель хорошо рассуждает по явным таблицам. Невидимое становится видимым — она читает карту памяти и принимает решения. Когда применять: длинные диалоги (30+ сообщений), несколько тем одновременно. Когда не нужно: короткий или однотемный диалог — только зашумит
📖 Простыми словами

LLMAgentsAre Latent Context Managers: Eliciting Self-Managed Context via a Proprioceptive Dashboard

arXiv: 2606.30005

Суть проблемы в том, что современные нейронки — это гениальные писатели с деменцией. Модель понятия не имеет, сколько места в её «голове» занимает конкретный кусок данных, когда она в последний раз его вспоминала и не пора ли выкинуть этот мусор, чтобы освободить ресурсы. Для LLM весь твой огромный чат — это просто бесконечная простыня текста без метаданных. Она не видит системных параметров, не умеет считать токены в уме и не понимает, что инструкция из первого сообщения уже давно «вымылась» из оперативной памяти. Она буквально слепа к собственному контексту.

Это как пытаться собрать сложный шкаф из Икеи, когда у тебя перед глазами триста страниц инструкции, но они не пронумерованы, перемешаны и постоянно вылетают из окна. Ты вроде помнишь, что где-то видел схему крепления ножек, но не знаешь, на какой она странице и сколько времени у тебя уйдет, чтобы её снова найти. В итоге ты тратишь силы на перечитывание ненужного хлама, а критически важные детали просто теряются в хаосе. Модель лажает не потому, что тупая, а потому что у неё нет «зеркала», чтобы оценить масштаб завала в собственной памяти.

Решение назвали VISTA, и оно работает как инъекция самосознания. Исследователи просто вставили в промпт проприоцептивную панель управления — по сути, таблицу-дашборд, где черным по белому написано: вот этот блок весит 800 токенов, к нему обращались пять сообщений назад, а вот этот старый кусок никто не трогал уже час. Когда модель видит эти цифры прямо в тексте, у неё случается инсайт. Она внезапно понимает, что память забита, и сама принимает решение: «Так, бюджет раунда я оставляю в активном доступе, а описание шрифтов для презентации отправляю в архив». Это превращает нейронку из пассивного читателя в активного менеджера своей памяти.

Тестировали это на длинных диалогах, но принцип универсален для любой сложной работы с данными. Будь то написание кода на десять файлов, создание стратегии или анализ пачки документов — везде, где контекст раздувается до неприличных размеров, стандартные методы пасуют. VISTA позволяет модели не «забывать» важные ограничения вроде тона общения или бюджета проекта, просто потому что она теперь видит их статус в реальном времени. Это переход от тупого заталкивания текста в «глотку» модели к умному управлению вниманием.

Короче: хватит надеяться, что нейронка сама магическим образом удержит в голове все детали твоего ТЗ на 50 страниц. Без четкой навигации и понимания веса данных она неизбежно начнет галлюцинировать или тупить. Метод VISTA доказывает, что если дать модели инструменты самоконтроля, она справляется с гигантскими объемами информации в разы лучше. Контекст — это ресурс, и если модель не умеет его администрировать, ты просто сливаешь токены в трубу. Кто научит свои системы «видеть себя», тот и получит вменяемые результаты на длинных дистанциях.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с