TL;DR
Модели плохо справляются с длинными задачами не потому что "забывают" — а потому что вся их история хранится как куча фактов, и они тащат нужное и ненужное по схожести слов. MAGE — система, которая хранит историю как дерево выполнения: каждый завершённый шаг сжимается в итог, недавние шаги остаются сырыми, а ошибочные ветки отрезаются.
Главная находка: стандартные системы памяти для агентов строятся на поиске по смыслу — "что похоже на мой вопрос". Для задач с взаимозависимыми шагами это катастрофа. Представь: ты покупаешь набор товаров, где каждый следующий должен сочетаться с предыдущим. Модель ищет "похожее" — и вытаскивает товар 4 из истории, но не то, что ты его в итоге не купила, а купила другой. Получаешь несовместимый выбор. Это не "забывчивость" — это неправильная архитектура памяти.
MAGE решает это через четыре операции в замкнутом цикле: Grow — записывает каждый шаг, Compress — сжимает завершённый подзадачу в итог, Maintain — проверяет итог до того как он стал "доверенной памятью", Revise — при обнаружении ошибки откатывается к нужной границе и продолжает с новой ветки, сохраняя весь корректный прогресс.
Схема метода
ТЕКУЩЕЕ СОСТОЯНИЕ = C + R + H
C (Compressed) — сжатые итоги завершённых подзадач
R (Raw) — сырые шаги с момента последнего сжатия
H (Hints) — заметки из провальных веток + что пробовали ранее
ШАГ 1 — GROW: новый шаг выполнен
→ записываем (действие + результат) в дерево
→ добавляем в R
ШАГ 2 — COMPRESS: подзадача завершена
→ сжимаем R в краткий итог → кладём в C
→ R обнуляется
→ H обновляется ветками, которые были из этой точки
ШАГ 3 — MAINTAIN: валидация итога
→ модель проверяет: итог соответствует задаче?
→ PASS → продолжаем
→ FAIL → записываем диагноз в H, запускаем REVISE
ШАГ 4 — REVISE: ошибка найдена
→ откатываемся по дереву до границы перед ошибкой
→ ошибочная ветка остаётся в H как "что не работало"
→ продолжаем с чистой ветки, но с памятью о провале
Все операции работают в одной сессии агента. В ручном режиме — разбиваются на отдельные запросы.
Пример применения
Задача: Ты пишешь большой контент-план для телеграм-канала про инвестиции — 12 тематических блоков, где каждый следующий опирается на предыдущий: сначала база, потом инструменты, потом стратегии. Если в блоке 3 ошиблись с фреймингом — блоки 4-12 будут кривыми. Задача на 8+ итераций с ChatGPT.
Промпт:
Мы работаем над длинной задачей в несколько этапов.
Используй структуру управления состоянием MAGE.
=== ТЕКУЩЕЕ СОСТОЯНИЕ ===
[C — ЗАВЕРШЁННЫЕ БЛОКИ]:
{Сюда вставляй краткие итоги завершённых блоков. Например:
"Блок 1 (Зачем инвестировать): аудитория — офисные работники 28-40 лет,
тон — без нравоучений, главный страх — потерять, а не заработать. ✓"}
[R — ТЕКУЩИЙ БЛОК]:
{Сырые шаги последнего незавершённого блока. Например:
"Набросок Блока 2: инфляция поедает накопления → нужны инструменты...
→ пробовали через пугалку — не зашло"}
[H — ЗАМЕТКИ ИЗ ПРОВАЛЬНЫХ ПОПЫТОК]:
{Что пробовали и почему не работало:
"Попытка через статистику ЦБ — аудитория уходит, слишком академично"}
=== ЗАДАЧА ===
{опиши общую задачу}
=== ТЕКУЩИЙ ЗАПРОС ===
{что делаем прямо сейчас}
--- ПРАВИЛА ---
После завершения каждого блока:
1. Сожми его в 2-3 предложения для [C]
2. Проверь: этот итог не противоречит предыдущим блокам в [C]?
3. Если противоречит — скажи "НУЖЕН ОТКАТ" и укажи до какого блока
4. Если ок — переходи к следующему блоку с чистым [R]
Результат:
Модель будет работать в явной структуре: после каждого завершённого блока — сама предложит краткий итог-саммари для раздела C. При обнаружении противоречия — явно скажет "итог блока 3 конфликтует с тоном из блока 1" и предложит откат. Раздел H накапливает "антипаттерны" — что пробовали и почему плохо. В следующем сообщении ты вставляешь обновлённый стейт и продолжаешь.
Почему это работает
Слабость LLM: Модель не имеет настоящей памяти между сообщениями. Она читает весь контекст заново каждый раз. Когда задача длинная — контекст разрастается, модель начинает "путаться в ногах": тащит старые попытки, забывает ограничения из шага 2, когда работает над шагом 8.
Что модель умеет хорошо: Следовать явной структуре. Если дать ей организованное состояние — C + R + H — она работает с ним как с инструкцией, а не угадывает что важно из вала текста.
Как метод использует это: MAGE убирает необходимость модели самостоятельно "вспоминать что важно". Ты сам (или агент) управляешь тем, что попадает в контекст: сжатые итоги завершённого + сырые шаги текущего + набор провальных веток. Модель всегда видит правильный срез, а не всё подряд.
Рычаги управления:
- Граница сжатия (COMPRESS) — чем чаще сжимать, тем короче контекст, но меньше деталей. Для творческих задач — сжимай реже, для аналитических — чаще.
- Раздел H (Hints) — чем подробнее описываешь что не работало, тем точнее модель избегает тех же граблей. Это важнее раздела R для задач где много проб.
- Явный откат (REVISE) — не продолжай ломаное из точки ошибки. Скажи модели "вернёмся к итогу блока 3, вот что было не так, поехали по-новому". Это принципиально другой результат, чем "исправь вот это".
Шаблон промпта
=== СОСТОЯНИЕ ЗАДАЧИ ===
[C — ЗАВЕРШЕНО]:
{краткие итоги каждого завершённого подэтапа, по 2-3 предложения}
[R — В РАБОТЕ]:
{сырые шаги текущего незавершённого этапа}
[H — ЧТО НЕ РАБОТАЛО]:
{попытки и причины провала: "пробовали {X} → {почему плохо}"}
=== ЗАДАЧА ===
{общая задача с ключевыми ограничениями}
=== СЕЙЧАС ===
Работаем над: {название текущего подэтапа}
Запрос: {конкретный вопрос/действие}
--- ИНСТРУКЦИЯ ---
После завершения этапа:
COMPRESS: дай краткий итог (2-3 предложения) для раздела C
MAINTAIN: проверь — итог не противоречит C выше?
- Если противоречит → напиши "ОТКАТ до этапа {X}" и объясни
- Если ок → переходи к следующему этапу
Что подставлять:
- {краткие итоги} — сжатые результаты каждого завершённого шага
- {сырые шаги} — всё что делали в текущем незавершённом этапе
- {попытки и провалы} — что пробовали, почему не подошло
- {общая задача} — цель и ключевые ограничения проекта
- {текущий подэтап} — над чем работаешь прямо сейчас
🚀 Быстрый старт — вставь в чат:
Вот шаблон MAGE для управления длинной задачей.
Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы чтобы заполнить разделы C, R, H.
[вставить шаблон выше]
LLM спросит какие этапы уже завершены, что делается сейчас и что уже пробовали — потому что без этого она не сможет правильно заполнить структуру состояния. Она возьмёт паттерн из шаблона и настроит под твою задачу.
Ограничения
⚠️ Ручной режим требует дисциплины: Весь смысл MAGE — в том, что состояние обновляется автоматически. В ручном чате ты должен после каждого этапа обновлять C, R, H и вставлять в следующее сообщение. Без этого — просто красивый шаблон без эффекта.
⚠️ Не для коротких задач: Если задача укладывается в 3-5 сообщений — структура не нужна, только замедляет. Метод окупается на задачах от 8-10 итераций с взаимозависимыми шагами.
⚠️ Сжатие теряет детали:
COMPRESSснижает контекст, но сжатый итог — это всегда потеря. Если подзадача содержит критичные нюансы — не сжимай, оставляй в R.
⚠️ Полная система — это инфраструктура: MAGE в оригинале — это агентная система с деревом, указателями, автоматическими операциями. В чате реализуется только ручной аналог принципов, не сама система.
Ресурсы
Статья: Beyond Semantic Organization: Memory as Execution State Management for Long-Horizon Agents
Авторы: Yaoqi Chen, Haibin Lai, Yuru Feng, Chuyu Han, Qianxi Zhang, Baotong Lu и др.
Аффилиации: University of Science and Technology of China, Microsoft Research, Nanjing University, UC San Diego
Бенчмарк: MemoryArena (He et al., 2026) — задачи с взаимозависимыми шагами: шопинг, планирование путешествий, веб-поиск, формальные доказательства
