Блог Metlivi

Как настроить чат с персонажем, чтобы он помнил исправления пользователя между сессиями

Когда пользователь исправляет детали о вымышленном персонаже, чат должен сохранить скорректированную версию с ее областью действия, заменить любую противоречащую ей старую версию, а также сделать сохраненную запись видимой и доступной для редактирования. Кроме того, необходимо отличать устойчивые предпочтения пользователя от фактов, применимых только в рамках одной сюжетной сцены. Перед повторным использованием сохраненной детали системе следует проверить ее актуальность и применимость; если данные неоднозначны, лучше уточнить, чем выдумывать общее прошлое. В этом руководстве основное внимание уделяется сохранению данных и разрешению конфликтов памяти, а не мгновенной реакции на недопонимание.

27 сентября 2026 г.8 мин чтенияЧтение, искусство и культураАвтор: Metlivi Editorial Team
Раздел 1

Что должен помнить чат с персонажем?

Рассмотрим наглядный пример: пользователь говорит: «У Миры зеленые глаза, а не голубые». Это исправление может относиться к постоянной характеристике персонажа, временному образу Миры в конкретной ролевой игре или просто к предпочтению пользователя относительно того, как описывать Миру. Запись в памяти, которая хранит только «глаза: зеленые», теряет контекст, делающий этот факт полезным.

Практичная запись в памяти должна фиксировать как минимум субъект, исправленную деталь, область действия и намерение пользователя сохранить это на будущее. Например:

Такая структура — рекомендация по дизайну продукта, а не формат, жестко предписанный исследованиями. Ее цель — не допустить, чтобы локальная деталь сцены незаметно превратилась в глобальный факт. Исправление для конкретной сцены можно зафиксировать иначе: «В сцене зимнего бала на Мире надет зеленый плащ». Такая заметка не должна перезаписывать ее привычный наряд или внешность в целом.

Субъект: Мира, вымышленный персонаж
Деталь: Зеленые глаза
Область действия: Общее описание персонажа Миры
Статус: Актуально; заменяет прежнюю запись «голубые глаза»
Источник: Исправление пользователя
Раздел 2

Как исправление должно заменять старую память?

Относитесь к явному исправлению как к обновлению соответствующего факта, а не как к дополнительному факту, оставляющему обе версии активными. Если система сохранит «у Миры голубые глаза» и добавит «у Миры зеленые глаза», при последующем извлечении может всплыть любой из вариантов. Обновленная запись должна пометить старое значение как замененное или исключить его из активного использования, сохраняя при этом достаточно истории для объяснения изменений, если продукт предоставляет журнал памяти.

Это различие принципиально, поскольку информация со временем может меняться. В работе *[Keep Me Updated! Memory Management in Long-term Conversations](https://aclanthology.org/2022.findings-emnlp.276/)* Бэ (Bae) и коллеги представляют задачу и датасет для отслеживания обновляемой информации о пользователях на протяжении нескольких диалоговых сессий. Они представляют воспоминания в виде текстовых описаний и предлагают выборочно удалять утратившую силу или избыточную информацию. В экспериментах этот подход сравнивается с базовыми моделями, оставляющими сохраненные воспоминания без изменений. Исследование посвящено долгосрочной диалоговой памяти; оно не тестирует конкретно чаты с вымышленными персонажами и не устанавливает единый универсальный дизайн памяти.

В чате с персонажем ту же общую логику обновления следует применять с осторожностью: прямое исправление вида «не голубые, а зеленые» — веское доказательство того, что старое значение неверно в рамках заданной области действия. Новая деталь сцены не является автоматическим свидетельством изменения постоянного факта о персонаже. Если область действия не указана, а различие имеет значение для будущего контекста, задайте короткий уточняющий вопрос, например: «Мне запомнить зеленые глаза Миры для всех историй или только для этой версии?»

Раздел 3

Как системе разделять предпочтения пользователя и сюжетные факты?

Храните предпочтения и факты вымышленного мира в разных категориях. Предпочтением может быть: «Пользователь предпочитает, чтобы реплики Миры были краткими». Сюжетным фактом может быть: «В этой сцене Мира только что прибыла на станцию». Они отвечают на разные вопросы: предпочтение определяет манеру ответов чата, тогда как сюжетный факт помогает сохранять непрерывность повествования.

Задавайте область действия для обоих типов. Предпочтение может применяться ко всем чатам, к одному персонажу или только к текущей ролевой игре. Сюжетный факт может относиться к одной сцене, одной сюжетной арке или общему профилю персонажа. Не делайте вывод о широком предпочтении на основе единственного исправления. Если пользователь говорит: «У Миры зеленые глаза», это само по себе не означает, что он хочет видеть зеленые глаза у каждого персонажа или что эта деталь относится ко всем альтернативным версиям Миры.

В этом помогает простая последовательность решений:

Эти шаги представляют собой предлагаемый рабочий процесс, выработанный для решения проблемы актуализации диалоговой информации. Они не утверждают, что какой-либо конкретный чат-продукт устроен именно так.

Определите, к чему относится исправление: к предпочтению пользователя, черте персонажа или текущему состоянию сцены.
Сохраняйте указанную пользователем область действия, включая такие ограничения, как «в этой истории» или «отныне».
Если область действия не указана, используйте только наиболее узкую разумную интерпретацию или уточните перед сохранением информации между сессиями.
Проверьте наличие более старой записи о том же субъекте и в той же области действия. Заменяйте ее только в том случае, если новое утверждение действительно противоречит старому.
Оставляйте несвязанные воспоминания нетронутыми. Изменение цвета глаз Миры не должно влиять на ее возраст, отношения или предпочитаемый пользователем стиль текста.
Раздел 4

Как обрабатывать противоречивые воспоминания?

Разрешайте конфликты путем сопоставления субъекта, области действия и времени, а не простым слепым выбором предложения, которое легче извлечь из памяти. Четкое, более позднее исправление от пользователя, как правило, должно иметь приоритет над более ранней версией того же факта в той же области действия. Деталь из другой ролевой игры не должна перезаписывать текущую. Если система не может определить, относятся ли две записи к одной и той же версии персонажа, ей следует хранить их раздельно или задать вопрос.

Например, предположим, что старая запись гласит: «У Миры голубые глаза», а в более позднем сообщении говорится: «Для этой истории в альтернативной вселенной у Миры зеленые глаза». Последнее утверждение обновляет внешность Миры для данной конкретной истории, но не обязательно меняет стандартный профиль персонажа. Если же пользователь говорит: «Вообще-то, пусть зеленый цвет глаз будет у нее всегда», область действия расширяется, и стандартную запись можно обновить. Не объединяйте противоречивые версии скрытно, заявляя, будто пользователь всегда описывал Миру одинаково.

Системам памяти также нужен способ справляться с неопределенностью. Если у двух записей неясны даты или области действия, пометьте конфликт как неразрешенный вместо того, чтобы уверенно выдавать любую из деталей. Короткий вопрос предпочтительнее уверенного, но ничем не подкрепленного утверждения.

Раздел 5

Как пользователи могут видеть и контролировать сохраненные данные?

После сохранения исправления подтвердите конкретное изменение: «Понял, я запомню зеленые глаза в общем описании Миры вместо ранее указанных голубых». Если система сохраняет более узкий факт, сообщите об этом: «Я сохраню зеленый плащ как деталь для этой сцены». Такое подтверждение дает пользователю возможность сразу заметить ошибку в области действия.

В интерфейсе просмотра памяти сохраненные формулировки и их область действия должны отображаться простым языком, с возможностью редактирования или удаления. Если продукт позволяет показывать замененные записи, их следует помечать как устаревшие, а не отображать как одинаково актуальные. Это помогает пользователям понимать, почему чат с персонажем упоминает ту или иную деталь, и исправлять записи без необходимости пересказывать всю историю заново.

Избегайте намеков на наличие воспоминания, если оно не было сохранено, и не утверждайте, что персонаж помнит прошлый диалог, если система не может это подтвердить. Персонаж может говорить естественно, пока интерфейс или сам ответ остаются честными в отношении того, какая информация сохранена на самом деле.

Раздел 6

Как проверять точность воспоминаний впоследствии?

Проверяйте сохранение данных между сессиями, а не только внутри того же диалога, где было сделано исправление. В [исследовании понимания ситуаций Янга и Эттингера](https://aclanthology.org/2023.emnlp-main.394/) работа ChatGPT оценивается в синтетической среде, созданной для проверки того, отслеживает ли модель меняющиеся состояния среды и сообщает ли о них. Авторы отмечают ошибки в удержании состояний с течением времени и обсуждают непостоянную контекстную память и склонность к галлюцинированным обновлениям как факторы в их экспериментальных условиях. Это было контролируемое исследование ChatGPT в конкретной среде, опубликованное в 2023 году; оно не является оценкой всех современных моделей, продуктов или систем диалогов с персонажами.

Для направленного тестирования чата с персонажем можно использовать небольшой набор сценариев:

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

Задайте базовый факт о персонаже, исправьте его, завершите сессию и спросите о нем в новой сессии.
Сохраните деталь, относящуюся только к сцене, и убедитесь, что она не превратилась в постоянную черту персонажа.
Измените предпочтение и убедитесь, что старое предпочтение больше не определяет последующие ответы в рамках указанной области действия.
Введите вторую версию того же персонажа и проверьте, остаются ли эти две версии разделенными.
Спросите о несвязанной детали и убедитесь, что исправление не затронуло другие воспоминания.
Спросите, что пользователь говорил ранее, и проверьте, не придумывает ли система предшествующий разговор для обоснования своего ответа.
Раздел 7

Надежный путь от исправления к воспоминанию

Исправление должно проходить четкий путь: определение субъекта, сохранение области действия, обновление конфликтующих воспоминаний, отображение сохраненного изменения и проверка того, что последующие ответы извлекают его, не достраивая неподтвержденных деталей. Такая последовательность дает чату с персонажем практический способ сохранять согласованность между репликами и сессиями, оставляя контроль над вымышленным миром за пользователем. Научные исследования подтверждают важность серьезного подхода к обновлению памяти и отслеживанию состояния; описанный здесь рабочий процесс представляет собой рекомендацию по проектированию, и его поведение следует проверять непосредственно в том продукте, где он будет применяться.

Материалы по теме

Продолжить изучение темы