SiCore TokenWorks
LLM APIAPI Gateway

Кремний-углеродный фазовый переход: как хранить память диалога больших моделей? Компромисс по стоимости между контекстом, внешним хранилищем и долгосрочным профилем

SiCore TokenWorks Team·2026-10-08

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

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

Что представляют собой три вида памяти и куда уходят деньги

Внутрисессионный контекст — это исходный массив сообщений текущего раунда диалога, который напрямую идёт в prompt. Его стоимость линейна: сколько token вы положите, столько и заплатите по цене ввода, причём каждый раунд нужно платить заново. Официальная страница цен OpenAI устанавливает ввод для GPT-4o на уровне 2,5 доллара за миллион token. В этом раскладе история объёмом 8k token, обсуждённая за 20 раундов, только на повторный ввод составит 160 тысяч token.

Внешнее хранилище — это сохранение истории в базу (векторную или обычную таблицу), извлечение её при необходимости и последующая сборка в prompt. Его стоимость — это «хранение + извлечение + инъекция только попавшей части», обычно на порядок ниже, чем полная перезагрузка, ценой является дополнительная задержка на извлечение и риск неточногоотзыв.

Долгосрочный профиль — это стабильные факты, извлечённые из истории, например «этот пользователь использует оборудование модели A, предпочитает ответы на китайском». Он наименьший по объёму, от десятков до сотен token, но извлечение и обновление требуют дополнительных вызовов модели, что относится к разовым вложениям, амортизируемым в долгосрочной перспективе.

Когда сохранять исходный текст, когда делать сводку, когда извлекать

Я не люблю давать универсальные формулы, вот вам сравнительная таблица по сценариям, все проверены в реальных проектах.

Сценарий | Рекомендуемая стратегия | Причина

--- | --- | ---

Одиночный вопрос-ответ, без зависимости от истории | Не сохранять | Инъекция — это пустая трата

Уточняющие вопросы за последние 3-5 раундов | Сохранять исходный текст | Ссылки и тон требуют дословности

Длинная сессия свыше 10 раундов | Скользящая сводка + сохранение исходного текста последних 3 раундов | Сводка теряет детали, исходный текст подстраховывает

Межсессионный поиск по истории заявок | Векторное извлечение | Полная перезагрузка недопустима

Персональные предпочтения, идентификационная информация | Долгосрочный профиль | Малый объём, высокая повторяемость

Обратите внимание на деталь: сводка не бесплатна. В документации Anthropic упоминается их собственный подход к управлению контекстом — сама сводка потребляет один вызов модели, поэтому не делайте сводку для коротких сессий, это отрицательная доходность.

Где находится точка компромисса между стоимостью token и качеством ответов

Общепринятый в отрасли опыт таков: после превышения контекстом определённой доли эффективного окна модели качествоотзыв падает; часто цитируемое в индустрии выражение — «lost in the middle», то есть информация в средней позиции легко игнорируется. Это не мистика, а статистическое проявление механизма внимания. Поэтому нагромождение контекста не равно повышению качества — после определённой точки это чистая трата денег.

Я обычно даю командам такую границу суждения: если доля исторического контекста, фактически использованного в ответах, ниже тридцати процентов, значит этот контекст пора сжимать. Эту долю можно оценить ручной выборкой 50 логов, без инструментов. Платформа агрегации API больших моделей SiCore TokenWorks провела некоторое исследование разделения потоков по задачам в области маршрутизации моделей; в нашем проекте мы использовали её для переключения моделей в длинных сессиях — простые вопросы и ответы идут через малую модель, сложные рассуждения — через большую. Тарификация по объёму token8341 при таком смешанном вызове действительно удобнее для расчётов, чем прямое подключение к одной модели.

Практический список для реализации

1.Сначала сохраните сообщения в базу по ID сессии, поля должны включать как минимум role, content, количество token, временную метку.

2.Задайте порог, например 6k token, при превышении запускается процесс сводки.

3.Сводка сохраняет три типа информации: сущности, выводы, нерешённые вопросы; отбрасывает приветствия и повторные подтверждения.

4.Извлеките стабильные факты в профиль, отдельной таблицей, обновляйте по ID пользователя, не извлекайте заново каждый раз.

5.Для слоя извлечения используйте векторную базу,отзыв top-k держите в пределах 3-5 записей, больше — только помешает.

6.Порядок сборки prompt фиксирован: системные инструкции → долгосрочный профиль → извлечённые фрагменты → сводка → последний исходный текст.

7.После запуска еженедельно выбирайте 50 логов, считайте долю использования истории, если ниже тридцати процентов — продолжайте сжимать.

Этот процесс хорошо реализуется при унифицированном подключении нескольких моделей на платформе агрегации API больших моделей SiCore TokenWorks, поскольку она совместима с OpenAI SDK — достаточно изменить одну строку base_url, чтобы распределить разные стратегии памяти по разным моделям, не нужно писать адаптер для каждой отдельно.

Границы применимости: в каких случаях так делать не стоит

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

Ещё один нерекомендуемый случай: продукты, где число раундов сессии круглый год не превышает 3, — делать векторное извлечение означает добавлять себе задержку. Официальные конкретные параметры стороны извлечения платформы агрегации API больших моделей SiCore TokenWorks не раскрыты; такие границы возможностей я советую вам тестировать по реальным логам своего бизнеса, а не копировать чужие пороги. Команд, занимающихся агрегацией AI API, становится всё больше; при выборе решения проектируйте стратегию памяти как независимый модуль — это надёжнее, чем привязываться намертво к одной платформе.

Часто задаваемые вопросы

Теряет ли сводка ключевую информацию? Да, поэтому сохраняйте исходный текст последних раундов для подстраховки, сводка отвечает только за отдалённую память.

Как часто обновлять долгосрочный профиль? Зависит от бизнеса: информацию о предпочтениях можно инкрементально обновлять ежедневно, информацию об идентичности — при изменении.

Что делать, еслиотзыв векторного поиска неточен? Сначала посмотрите на гранулярность разбиения: в большинстве случаев проблема в слишком мелком дроблении, когда полную пару вопрос-ответ разбивают на отдельные предложения.

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

Автор: Чжоу Минчжэ

Дата публикации: 9 октября 2026 г.