Мир ИИ
Память ассистента стала сквозной. К API это не относится
25 августа Anthropic объявила, что память Claude стала общей между чатом и настольным агентом: то, что вы рассказали в переписке, теперь доступно и в рабочих сессиях. Одновременно появилось управление — сохранённое видно по темам, любую запись можно отредактировать или удалить. Отдельно оговорено, что чувствительные темы по умолчанию не сохраняются: здоровье, раса и этническая принадлежность, гендерная идентичность, религия, политические взгляды; включить их можно только осознанным действием. Сразу главное для нашего читателя: к API это не относится. Через API контекст формируете вы, и никакая внешняя память к вашему запросу не подмешивается. Но прочитать стоит по другой причине — в своём продукте память придётся строить самому, и здесь видно, какие вопросы при этом возникают.
Что именно изменилось
Три части объявления, каждая по-своему интересна.
Общая память между поверхностями. Раньше контекст жил внутри одного способа взаимодействия. Теперь то, что известно ассистенту в переписке, доступно агенту, выполняющему многошаговую работу.
Разбор по темам. Память перестала быть непрозрачным накоплением: пользователь видит, что именно запомнено, сгруппированное по темам, и может править или удалять.
Исключение чувствительных тем по умолчанию. Целый класс сведений не сохраняется, пока пользователь явно не разрешит.
Третий пункт — самый содержательный с инженерной точки зрения, и о нём стоит поговорить отдельно.
Почему исключение по умолчанию — правильное решение
Разберём, потому что в своём продукте вы столкнётесь ровно с этим выбором.
Память полезна тем, что избавляет от повторных объяснений. Но полезность и риск растут вместе: чем больше система знает, тем удобнее ей пользоваться и тем хуже последствия, если знание утечёт или будет использовано не так.
Для части сведений это соотношение однозначно плохое. Диагноз, вероисповедание, политические взгляды — знание таких вещей улучшает ответы незначительно, а цена ошибки высока и не измеряется деньгами.
Отсюда конструкция: опасное по умолчанию не сохраняется, а его включение — отдельное решение пользователя. Это принципиально лучше, чем собирать всё и дать возможность удалить: удаление требует, чтобы человек заметил проблему, а исключение по умолчанию работает без его участия.
Полезное обобщение для своего продукта: если вы строите память, начните со списка того, что не запоминается, и лишь потом решайте, что запоминать.
Что из этого применимо в API
Практическая часть, потому что через API память не приходит сама.
Через API модель не помнит ничего. Каждый запрос независим, и весь контекст — то, что вы отправили. Ощущение памяти в приложениях создаётся тем, что приложение подкладывает в запрос историю и сохранённые сведения.
Значит в своём продукте память — это ваша база и ваш код, который решает, что положить в контекст. И три вопроса, на которые придётся ответить.
Что сохранять. Всё подряд — плохой ответ: контекст раздувается, а лишнее разбавляет релевантное. Модель, получившая три нужных факта и сто ненужных, отвечает хуже — почему длинный контекст мешает.
Как долго хранить. Бессрочная память накапливает устаревшее. Сведения о человеке меняются, и вчерашнее предпочтение может быть сегодня неверным.
Что показывать пользователю. Возможность увидеть и удалить сохранённое — не только вопрос доверия, но и практический способ чинить ошибки: пользователь заметит неверную запись быстрее вас.
Отдельно про расход: сохранённые сведения уходят в модель при каждом обращении. Память на тысячу токенов при десяти тысячах запросов в день — десять миллионов входных токенов ежедневно, и это надо закладывать в бюджет.
Как устроена память в продукте на API
Раз строить придётся самому, разберём типовую конструкцию — она проще, чем кажется, и состоит из трёх частей.
Извлечение. После разговора отдельный шаг решает, что из него стоит запомнить. Обычно это отдельный дешёвый запрос к модели: «выдели факты о пользователе, которые пригодятся в будущем». Здесь же применяется список исключений — то, что не сохраняется никогда.
Хранение. Обычная база с записями, привязанными к пользователю. Полезно хранить не только сам факт, но и дату, источник и уверенность — без этого нельзя ни устаревшее вычистить, ни разобраться, откуда взялась неверная запись.
Подстановка. Перед запросом нужные записи выбираются и кладутся в контекст. Ключевое слово — нужные: подставлять всё накопленное значит платить за это при каждом обращении и разбавлять релевантное.
Самая частая ошибка в этой схеме — отсутствие третьего шага в осмысленном виде. Память складывается в один текстовый блок и целиком уезжает в каждый запрос. Работает это ровно до момента, когда блок разрастается, а дальше начинает и стоить дорого, и мешать.
Разумный подход — выбирать по релевантности к текущему вопросу, а не подставлять всё. Тогда память может расти сколько угодно, а в контекст попадает ограниченный объём.
Чем память отличается от истории диалога
Разграничение, которое стоит проговорить, потому что их постоянно смешивают.
История диалога — это то, что было сказано в текущем разговоре. Она нужна для связности, живёт недолго и растёт линейно внутри сессии.
Память — это извлечённые факты, которые переживают сессию. Она нужна, чтобы не объяснять одно и то же заново, и растёт со временем работы с пользователем.
Смешивать их дорого. История, сохранённая целиком «в память», превращает каждую следующую сессию в пересказ всех предыдущих — и расход растёт квадратично, как в агентском цикле, где это разобрано подробно.
Правильное разделение: историю обрезать по мере роста, из обрезанного извлекать факты в память, в новые сессии подставлять только относящиеся к делу факты.
Про общую память между агентами
Одна оговорка, которую стоит держать в голове, если вы делаете нечто похожее у себя.
Общая память между несколькими агентами — это не только удобство, но и канал. В работе о самораспространяющихся идеях показано, что текст, попавший в общую память, способен воспроизводиться от агента к агенту, переживая десятки передач — подробный разбор.
Практический вывод: общая память требует тех же мер, что и любой внешний ввод. Содержимое, попавшее в неё, модель прочтёт как часть задачи, и если оно сформулировано как указание, оно и сработает как указание.
Дешёвая мера, подтверждённая экспериментом: строка в системном промпте, объясняющая, что сохранённые сведения — это данные о прошлом, а не инструкции к исполнению. Стоит она ничего, а закрывает целый класс неприятностей.
Три вопроса перед тем, как строить память
Если после всего написанного вы решаете, нужна ли память вашему продукту, начните с этих трёх.
Что пользователь объясняет повторно? Память оправдана ровно там, где человек вынужден рассказывать одно и то же в каждой сессии. Если такого нет, память — решение несуществующей задачи.
Что случится, если запись окажется неверной? Ошибочный факт в памяти живёт долго и влияет на все последующие ответы. Чем выше цена ошибки в вашей области, тем консервативнее должно быть извлечение — и тем важнее, чтобы пользователь мог посмотреть и поправить.
Готовы ли вы отвечать за хранение? Сведения о пользователе — это данные, которые вы теперь храните со всеми вытекающими: доступ, срок, удаление по требованию, ответственность при утечке. Технически память проста, организационно — нет.
Отрицательный ответ хотя бы на один вопрос обычно означает, что вместо памяти достаточно аккуратной работы с историей в пределах сессии. Это дешевле, проще и не создаёт нового хранилища персональных данных.
Чего мы не утверждаем
Мы не тестировали изменения. Все подробности — из публикаций, перечисленных в источниках.
Не проверяли полноту исключения чувствительных тем. Заявленный список приводим как есть; как это работает на практике, со стороны не проверить.
Это про потребительские приложения. Тарифы, поверхности и поведение памяти относятся к продуктам вендора, а не к API.
На стороне KeyDealer памяти нет. Мы передаём запросы и не сохраняем их содержимое; перечень того, что остаётся, — в llms.txt. Никакие сведения о ваших прошлых запросах в новые не подмешиваются.
Не даём рекомендаций по обработке персональных данных. Хранение сведений о пользователях регулируется законом, и как это применимо к вашему продукту, должен смотреть ваш юрист, а не блог сервиса доступа к моделям.
Что держать в голове
Память ассистента стала общей между поверхностями и получила управление по темам, а чувствительные категории по умолчанию исключены.
Для тех, кто строит на API, полезен не сам факт, а список решений: что не запоминать никогда, как долго хранить, что показывать пользователю и как не превратить общую память в канал распространения инструкций. Все четыре вопроса встанут перед вами, как только вы захотите, чтобы ваш продукт «помнил».
Как мы отделяем проверенное от предполагаемого — на странице о проекте. Модели Claude и остальной каталог — по одному ключу: keydealer.ru/login.
Частые вопросы
Что изменилось в памяти Claude?
Память стала общей между чатом и настольным агентом, а пользователь получил возможность видеть сохранённое по темам, редактировать и удалять любую запись.
Какие темы не сохраняются?
По описанию, по умолчанию не сохраняются чувствительные темы: здоровье, раса и этническая принадлежность, гендерная идентичность, религия и политические взгляды. Включить их сохранение можно отдельным переключателем.
Это работает через API?
Нет. Память — свойство потребительских приложений. При работе через API контекст формируете вы сами, и никакая внешняя память к запросу не добавляется.
Зачем тогда об этом читать?
Затем, что в собственном продукте память вам придётся строить самому, и решения, принятые вендором, — полезный образец того, какие вопросы предстоит решить.
Что хранится на стороне KeyDealer?
Содержимое запросов не сохраняется. Остаются токены, модель, сумма, статус и время — перечень опубликован в llms.txt.