Компоненты памяти агента
- В CL-Bench модели Opus 5 и Sonnet 5.5 сохраняли проверенные правила, улучшавшие ответы на будущие вопросы.
- В Pokémon Sonnet 3.7 создала 413 файлов памяти и получила один значок, а Fable 5 — девять файлов и четыре значка.
- Сновидение позволяет Claude сверять заметки со стенограммами, исправлять ошибки и создавать новые записи.
Почему это важно: Сновидение помогает Claude поддерживать эффективную память.
Инженерия
24 мар. 2026
Проектирование каркаса для разработки приложений с длительным сроком работы
Сёрен Кьеркегор писал, что жизнь можно понять лишь оглядываясь назад, но прожить её нужно двигаясь вперёд. При разработке памяти для ИИ-агентов мы столкнулись с похожей дилеммой.
Люди постоянно запечатлевают воспоминания по ходу жизни. Гиппокамп играет в этом центральную роль: он фиксирует переживания в момент их возникновения, благодаря чему воспоминания формируются быстро и сразу становятся доступными. Но лишь некоторые переживания закрепляются в долговременных знаниях.
Похоже, значительная часть этого закрепления происходит, когда мозг неактивен. Во время сна и спокойного отдыха гиппокамп воспроизводит недавние переживания. Считается, что так он постепенно отбирает эти переживания и интегрирует их в неокортекс — часть мозга, где хранится большая часть того, что мы считаем знаниями.
Память агентов может быть организована по схожему принципу разделения труда. Агенты сохраняют значительную часть своей работы в журналах или стенограммах. Исследователи из Letta и Калифорнийского университета в Беркли предложили использовать вычисления во время сна, чтобы модели использовали свободное время между взаимодействиями для реорганизации уже имеющегося контекста. Та же идея помогает агентам упорядочивать память: анализировать журналы, исправлять ошибки, создавать новые заметки и представления. Этот процесс часто называют сновидением (рисунок 1).
Мы убедились, что сновидение — полезный инструмент, помогающий обеспечить Claude эффективной памятью. В этой статье мы расскажем, как мы теперь рассматриваем память агентов, и разберём несколько оценок, с помощью которых исследовали память агентов, в том числе использование сновидения, а также вклад каждого компонента в организацию памяти.

Заметки памяти
Под «памятью агента» мы понимаем знания, которые Claude приобретает на основе опыта — в том числе взаимодействия с пользователями и порученных ему задач, — и сохраняет между сеансами в виде контекста, который можно прочитать позднее. Сюда не входят другие способы обучения моделей или управления контекстом, например изменение весов (внутренних параметров, заданных во время обучения), обучение в контексте (знания, полученные в рамках одного разговора) и сжатие (резюме, которые Claude составляет вместо своих более ранних реплик, чтобы продолжить работу в новом контекстном окне).
В человеческом мозге химические сигналы, выделяющиеся до, во время или после переживания, могут пометить воспоминание как важное. Во время периодов неактивности помеченные воспоминания воспроизводятся чаще, чем непомеченные. Этот процесс, называемый повторным воспроизведением, помогает закрепить их и интегрировать в долговременную память.
Аналогичным образом Claude может отмечать в журнале сеанса значимые события по мере их возникновения, чтобы их было легче найти позднее, или записывать их в хранилище памяти, например в папку с заметками (рисунок 2). Но как Claude может понять, что важно именно сейчас, ещё не зная, что произойдёт дальше?

Память может предсказывать, что понадобится в будущем
Иногда память — это предсказание. Записывая правило, агент предполагает, что описанная им закономерность снова окажется полезной. Например, записывая проверенный факт, агент предсказывает, что в будущем ему понадобится опереться на этот факт, не перепроверяя его. Со временем Claude научился гораздо лучше делать подобные прогнозы.
Рассмотрим задание из Continual Learning Bench (CL-Bench) 1.0 — теста, который измеряет способность агента использовать память для решения долгосрочных задач. В одном из заданий Claude должен ответить на серию вопросов, находя сведения в базе данных. После каждого ответа Claude сообщают правильное решение, и он может сохранить заметку в памяти, чтобы помочь себе ответить на будущие вопросы.
В этом случае память может поддерживать цикл обучения. Если Claude отвечает неправильно, он может зафиксировать ошибку, выдвинуть предположения о её причинах, проверить их и сформулировать найденное как правило, которое поможет отвечать в будущем.
Мы выполнили задание CL-Bench 1.0 с помощью Claude Managed Agents. Claude начинал отвечать на каждый вопрос в новом сеансе. Единственным исключением была возможность получать файлы из каталога памяти, который сохранялся между сеансами.
Разные модели добились разного успеха в создании собственных циклов обучения. Claude Sonnet 4.6 смог выдвигать предположения о том, почему ответ был неправильным. Его каталог памяти содержал разрозненные файлы, в каждом из которых перечислялось несколько непроверенных догадок.

Claude Opus 4.7 свёл заметки в один справочный документ и начал отмечать, какие факты он проверил, а какие ещё не подтвердил. Claude Sonnet 5 помечал каждый ответ как подтверждённый после проверки оценщиком и записывал исправление, если отвечал неверно.
Claude Opus 5 первой из этих моделей замкнула цикл. Большинство записей содержали правило (а также сведения о том, откуда известно, что оно верно), ответы на предыдущие вопросы и чёткие предупреждения о ловушках, обнаруженных в процессе (рисунок 3).
Как и Opus 5, Claude Opus 5.5 и Claude Sonnet 5.5 замкнули цикл, используя память для сохранения проверенных правил, которые помогают лучше отвечать на будущие вопросы. С памятью обе модели набрали примерно столько же, сколько Opus 5, хотя без памяти их базовые показатели были немного выше.
Claude научился оценивать значимость
Мы также оценили способность Claude играть в Pokémon Red — игру, которая проверяет умение Claude справляться со сложными долгосрочными задачами. Это позволило проверить, насколько хорошо Claude решает, что сохранять в памяти. В начале каждого прохождения мы предоставляли каждой модели папку с файлами памяти, которые она могла читать и записывать во время игры (рисунок 4).
Мы сравнили папки памяти по одному прохождению Claude Sonnet 3.7 и Claude Fable 5, когда каждая модель провела в игре около 10 000 шагов. Одно из главных различий заключалось в том, что именно каждая модель считала достойным запоминания. Sonnet 3.7 исходила из того, что важным может оказаться всё, и без разбора записывала сведения в память. В её папке хранился архив встреч: зачастую отдельный файл для каждого сражения, каждого найденного предмета и каждого встреченного неигрового персонажа. В итоге Sonnet 3.7 создала 413 файлов памяти в 225 папках и получила один значок (значки отмечают прогресс игрока в игре).
Для сравнения, Fable 5 создала девять файлов в двух папках, а также один файл верхнего уровня под названием global.md и получила четыре значка.

Подход Sonnet 3.7 был проблематичным главным образом потому, что состояние игры Pokémon постоянно меняется: подробные записи Sonnet 3.7 всё время устаревали. В результате, продвигаясь по игре, Claude приходилось тратить всё больше времени и ресурсов на просмотр воспоминаний, а не на саму игру. Например, примерно на 10 000-м шаге Sonnet 3.7 начала четвёртую папку «главных» файлов памяти. За следующие 17 шагов она создала шесть файлов, удалила девять других и не совершила ни одного действия в самой игре.
Fable 5 использовала память для сведений, о которых игра не сообщала явно. Некоторые сведения, которые Sonnet 3.7 записывала в память, — например, сколько у игрока денег или где он находится на карте, — можно увидеть на экране в любой ход, поэтому их хранение избыточно. Напротив, файлы памяти со стратегиями, планами и проверенными правилами появляются, только если Claude самостоятельно их выведет, и исчезнут, если Claude их не запишет.
Fable 5 соответствующим образом организовала память. Файл global.md служил панелью управления: в нём хранилась текущая цель, заранее составленный план прохождения спортивных залов (испытаний, за которые дают значки) и собственные правила модели по использованию памяти. В папке locations находились планы прохождения отдельных маршрутов, а в папке gameplay — стратегии, основанные на усвоенных сведениях о том, как устроена игра. Например, после того как семь Poké Ball подряд не смогли поймать Magikarp (одного из самых простых для поимки покемонов), Claude записала: «Если подряд не срабатывают 3 и более мячей, МЕНЯЙТЕ время (добавляйте дополнительные нажатия «подождать» между шагами в меню) — после этого покемон попался».
Обладая гораздо меньшей папкой памяти, Fable 5 продвинулась по игре намного дальше, чем Sonnet 3.7. Opus 5.5 действовала похожим образом: она хранила небольшую папку с заметками о текущей цели и следующих шагах, переписывала их по ходу игры и прошла её до конца.
Как направлять Claude при записи в память
Мы обнаружили, что полезно объяснить Claude, для чего нужна память, но не говорить, как ею пользоваться. В CL-Bench мы просто сообщали Claude, что ему доступна папка памяти. Этого общего указания хватило, чтобы Opus 4.7 и Opus 5 эффективно использовали память и заметно повысили свои результаты (рисунок 3).
Мы также проверили, как модели справляются, если задать им конкретные правила о том, что записывать в память, — по одному правилу для каждого теста. Мы сравнили, насколько улучшались результаты каждой модели с памятью при каждом правиле, с тем, насколько они улучшались без него. Когда мы задали правило «записывать только ошибки», Opus 5 и Opus 4.7 в значительной степени утратили прирост, который давала им память (рисунок 5, справа). Более сильным моделям было полезнее самостоятельно оценивать значимость, чем заранее устанавливать фиксированные правила; такие правила могли даже ухудшить результаты.

Мы также заметили, что направляющие указания больше всего помогали старым моделям. Например, Sonnet 4.6 часто не читала файлы из каталога памяти и не проверяла свои предположения о причинах неправильного ответа.
В этом случае подсказка, предлагавшая Claude прочитать файлы памяти перед ответом, а затем явно проверить свои предположения, почти вдвое повысила результат модели в тесте (рисунок 5, слева). Sonnet 5 делает это самостоятельно. Без каких-либо подсказок она читала память перед ответом в 9 случаях из 10. Для сравнения, Sonnet 4.6 делала это менее чем в половине случаев.
Для самых новых моделей Claude мы обычно даём простое указание создавать заметки в памяти, когда об этом просит человек или когда что-то явно заслуживает запоминания, а решение оставляем за Claude.
Сновидение помогает исправлять память
Поскольку Claude записывает сведения в память, исходя из того, что считает важным в ходе сеанса, он может прочитать и принять за достоверную заметку, которая изначально была неверной или устарела из-за изменений среды.
Сновидение позволяет Claude проверять заметки по исходным стенограммам (рисунок 6). Мы увидели положительный пример этого, когда Claude играла в Pokémon с помощью Managed Agents и подключённым каталогом памяти.

В одной части игры игроку нужно пройти гору Moon — систему пещер, вход в которую находится на западной стороне карты, а выход — на восточной. Возле входа есть ловушка: односторонний уступ, с которого игрок падает на маршрут, по которому пришёл, и не может выбраться обратно. Claude использовала PokéCenter — здание у входа в гору — как ориентир, поэтому решение пройти по уступу зависело от того, с какой стороны горы, по её мнению, находился PokéCenter.
Однажды Claude ошибочно записала, что PokéCenter находится на восточной стороне. Выйдя из PokéCenter, она объявила: «Гора Moon осталась позади» — и обновила заметки: «Гора Moon ПРОЙДЕНА». Но гора Moon не осталась позади. Через несколько ходов Claude перешла через уступ и оказалась на маршруте, с которого пришла (рисунок 7). Инструмент навигации не показывал обрыв, поэтому Claude решила: «Я ушла слишком далеко на запад», — и сделала вывод, что всё это время находилась на правильной стороне. Это было не так.

Затем мы проверили, поможет ли сновидение Claude избежать этой ловушки. Мы запустили сновидение для папки памяти, где было указано неверное местоположение PokéCenter. Claude сверила заметку со стенограммой сеанса, обнаружила ошибку и переписала её. Стенограмма предоставила Claude достоверную информацию, по которой можно было проверить память. С исправленной заметкой Claude сразу вернулась на гору Moon и в конце концов добралась до Cerulean City.
В прохождении с неисправленной заметкой Claude трижды падала обратно на прежний маршрут. После третьей неудачи она, похоже, решила сдаться и написала: «Пожалуй, остановлюсь, вместо того чтобы продолжать ходить по кругу». Автоматический ответ в нашей системе предложил ей продолжить. Так она и поступила, пройдя весь путь до Pewter City — города перед горой, — где надеялась восстановить силы и запастись припасами. Прохождение завершилось, так и не достигнув Cerulean City.

Сновидение помогает создавать новые представления о памяти
С помощью сновидения Claude может создавать представления, упрощающие навигацию по памяти (рисунок 9). Один из используемых ею типов представлений называется вики: это набор страниц, которые Claude создаёт и поддерживает, собирая сведения об одной теме и связывая их с другими заметками. Такие ссылки фактически дают Claude карту, с помощью которой можно просматривать память и быстро находить нужные воспоминания.

Такие представления, как вики, помогают Claude ориентироваться в постоянно растущей базе знаний. Мы изучили пользу вики как представления памяти на корпусе внутренних документов — около 350 000 файлов, примерно 420 млн токенов, — предоставленном Stainless, компанией-разработчиком программного обеспечения, которую мы приобрели в мае. Мы подготовили набор из 25 вопросов по этому корпусу и дали Claude инструмент поиска, чтобы исследовать его. Кроме того, мы поручили Claude создать на основе этих файлов вики с помощью сновидения. В течение 128 сеансов мы предлагали агентам Opus 5 изучать файлы, создавать или исправлять связанные страницы вики, объединять дубликаты и сверять утверждения с источниками.
Каждый сеанс продолжал работу, проделанную агентами в предыдущих сеансах, используя общий журнал для координации. По мере того как мы увеличивали число сеансов сновидения с двух до 128, результаты по 25 вопросам выросли с 13% до 48% критериев, засчитанных оценщиками (рисунок 10).
Claude создаёт вики постепенно. Сначала она составляет первоначальную версию, а затем в ходе следующих циклов сновидения дополняет, редактирует или сокращает её. На ранних этапах знания Claude похожи на знания нового сотрудника, поэтому её способность отвечать на вопросы, опираясь только на вики, ограничена. Чем дольше она «видит сны», тем богаче становится её карта знаний — как у опытного сотрудника. Наши тесты показали, что вики приносила Claude наибольшую пользу, когда у неё также был доступ к инструменту поиска. При использовании поиска и вики совокупный результат Claude рос по мере расширения вики с 54% до 61%, тогда как при доступе только к инструменту поиска он составлял 53%. Лучший результат Claude при ответах только по вики составил 48%. Использование поиска вместе с вики также экономило около 20 000 токенов на вопрос.

Мы хотели выяснить, для каких задач наличие вики приносит Claude пользу. Для этого мы использовали тест Harvey LAB и набор документов о слиянии компаний. В этом тесте Claude получает документы и должна составить на их основе юридическое заключение, которое затем оценивают по списку критериев. Возможно, это не так увлекательно, как игра в Pokémon, но такие оценки позволяют работать с разнообразными наборами документов и создавать по ним вики.
Мы поручили Claude создать вики по документам. Затем попросили её отвечать на вопросы о слиянии или составлять юридические заключения по тесту LAB, используя либо вики, либо прямой поиск по файлам. В одном тесте нужно было ответить на 24 вопроса о слиянии (рисунок 11, слева). Более чем для половины из них Claude требовалось находить сведения в нескольких документах, а для многих — также применять суждение или выполнять вычисления. По таким пунктам (красная и оранжевая линии) результат Claude составил 87% при обращении к вики против 73% при использовании только поиска.

В других случаях вики была менее полезна. В одном задании LAB (рисунок 11, справа) критерии для заключения часто можно было найти текстовым поиском в одном документе, и вики не дала заметного преимущества перед поиском. В другом задании LAB вики разрослась и стала больше исходных документов (рисунок 12). Подобно картографам из короткого рассказа Борхеса «О строгости в науке», составившим настолько подробную карту, что она была размером с империю, которую изображала, Claude создала чрезвычайно подробную вики, которая практически ничего не обобщала.

Сновидение помогает поднимать заметки выше в иерархии памяти
Сновидение также может поднимать заметки на верхний уровень иерархии памяти, а система агента — заранее загружать их в контекст Claude в начале каждого сеанса (рисунок 13). Это значит, что Claude не нужно искать эти сведения и даже знать, что их можно искать.
Перенос воспоминаний в новый сеанс (форма внедрения контекста) требует осторожности. Внедрённые воспоминания расходуют ценные токены, а неверная заметка может попадать в каждый сеанс. Кроме того, загрузка заметки не гарантирует, что Claude будет ей следовать: в нашей документации о Claude Code предупреждается, что длинные файлы с инструкциями снижают их соблюдение. Поэтому верхний уровень иерархии памяти должен оставаться относительно небольшим; одна из задач сновидения — поддерживать его компактность, перемещая некоторые подробности на нижние уровни и оставляя ссылки.
Автоматическая память Claude Code тоже поддерживает небольшой объём внедряемого контекста: Claude обновляет его во время сеанса. Claude не загружает всю автоматическую память в контекстное окно каждого сеанса. Она загружает только первые 200 строк или 25 КБ файла MEMORY.md. Этот заголовочный файл служит указателем: он показывает Claude, что ей известно и где это найти.

Сновидение помогает сосредоточить память на конкретной цели
Сновидение также может влиять на то, как развивается память. Например, такому помощнику, как Claude Duet, часто полезны воспоминания, организованные вокруг человека, которому он помогает. Сновидение можно настроить так, чтобы память формировалась для достижения определённой цели.
Указания, задающие направление развития памяти, различаются в зависимости от задачи и сообщают Claude, какие сведения действительно важны. Например, одно из заданий теста LAB моделирует приобретение компании и предоставляет набор договоров. Юридическое заключение оценивается по тому, насколько верно в нём описаны условия договоров.
Сначала мы задали базовые инструкции по созданию вики, не объясняя Claude, как её использовать. Эта задача во многом зависела от условий договоров. Пока создавалась вики, несколько агентов одновременно вносили сведения об условиях договоров в общую таблицу (рисунок 14, слева).

В результате получилась вики, в которой не хватало важных фактов. Когда мы оценили краткую сводку, созданную на основе вики, Claude учёл только 41 из 57 фактов (72%). Разбираясь в причинах, мы обнаружили, что общая таблица плохо описывала условия договоров, а некоторые из них и вовсе отсутствовали: агенты перезаписывали работу друг друга.
Условия договоров были важнейшей частью вики, но в инструкциях об этом не говорилось. Чтобы улучшить инструкции, мы запустили цикл, в котором Claude анализировал свои ошибки, предлагал изменить инструкции и перестраивал вики. Благодаря этому Claude понял, насколько важно точно следовать условиям договоров, и соответствующим образом переписал инструкции по созданию вики.
Для каждого договора на вики создали отдельную страницу, которую готовил один агент: он цитировал условия дословно, а не сводил их в общую таблицу. При оценке краткой сводки, созданной на основе этой улучшенной вики, удалось выполнить 100% критериев — против прежних 72%.
В ходе «сновидений» можно восполнить пробелы, оставшиеся после сессии
Создавая заметки в памяти, Claude видит только контекст конкретной сессии. «Сновидения» позволяют анализировать множество сессий, выявлять общие закономерности и исправлять типичные ошибки.
При создании вики для бенчмарка LAB (пример см. на рисунке 14) Claude иногда ссылался на страницы, которые ещё не были созданы. Второй проход «сновидений» помог устранить многие пробелы. При выполнении одного задания (рисунок 15) система нашла в вики девять ссылок на отсутствующую страницу и перенаправила их на уже существующую страницу того же документа. Она также добавила три новые страницы, в том числе указатель, чтобы улучшить вики.

Оглядываясь назад и заглядывая вперёд
О проектировании систем памяти для агентов остаётся много открытых вопросов. Один из них — когда Claude должен создавать воспоминания. Работая над задачей, Claude может записывать данные в хранилище памяти (например, в папку, файл или базу данных), отмечая важное прямо в исходном контексте и сразу делая нужные детали доступными для будущих ходов или сессий. Однако записи на ходу неизбежно отвлекают Claude от основной задачи. «Сновидения», напротив, позволяют отложить создание воспоминаний на фон, но их результаты могут быть недоступны Claude сразу.
Другой вопрос — как поддерживать память в актуальном состоянии. Claude может делать неверные прогнозы или записывать в память правила, ошибочные с самого начала. Кроме того, память может устаревать и терять актуальность по мере изменения среды. «Сновидения» — один из способов исправить такие ошибки (рисунок 8), но для этого требуются вычислительные ресурсы. Постоянно поручать Claude проверять все свои воспоминания может быть непрактично. Возможно, вместо этого стоит сосредоточить «сновидения» на информации, которая, скорее всего, изменится, или тщательно подобрать их периодичность (например, с учётом того, как часто используются воспоминания).
Также можно рассматривать поиск по стенограмме как основу памяти Claude. Сочетание представлений данных (например, вики) с поиском (рисунок 10) порой оказывается эффективным. Однако Claude должен тратить вычислительные ресурсы на поддержание этих представлений памяти и следить за тем, чтобы в них не накапливались ошибки и галлюцинации.
Хотя Claude стал лучше определять важность информации, ни одна модель не может точно знать, что произойдёт в будущих ходах. «Сновидения» дают Claude возможность оглянуться назад и использовать вычислительные ресурсы, чтобы упорядочить память, исправить ошибки и поддерживать представления, благодаря которым будущие сессии смогут проще обращаться к воспоминаниям. Системы памяти будут развиваться по мере того, как Claude будет становиться способнее, и нам ещё многое предстоит узнать о проектировании систем памяти для Claude.
Ознакомьтесь с нашими практическими руководствами: начало работы со «сновидениями» и вики знаний.
Авторы и благодарности
Текст написал Lance Martin при редакционной поддержке Caitlin Love, Tom Chivers, Rebecca Hiscott, Jake Eaton и Blake Wilson. Мы благодарны Barry Zhang, Theodora Chu, Daliang Li, Mahesh Murag, Jake Noble, Ravi Trivedi, Tina Vachovsky, Brad Abrams, Henry de Valence, Jeremy Fox, Matt Bell, Allen Li, Chris Gorgolewski, Eugene Yan, Artur Renault, Wei Zhang и Kevin Chen за полезные обсуждения и вклад в работу, а David Hershey — за Claude Plays Pokémon. Иллюстрации — Monika Tuchowska.
Полный текст статьи читайте на Anthropic
