Токены, контекст и память
Три идеи проясняют множество моментов из серии «почему оно так сделало?»: токены, окно контекста и память. Поймёте их — и вас перестанут удивлять дрейф, забывчивость и неожиданные счета.
- Читать текст так, как это делает модель — в токенах, а не в словах или символах
- Представлять окно контекста как ограниченный стол и предугадывать, когда что-то с него падает
- Распознавать «гниль контекста» — почему модели могут терять середину длинного ввода
- Знать четыре реальных источника «памяти» и как осознанно её обеспечить
Токены: единица, в которой думают модели
Модели не читают символы или слова — они читают токены, куски текста размером примерно ¾ слова в английском. «Unbelievable» может быть 3–4 токена; распространённые слова — по одному; пробел, запятая или фрагмент кода тоже стоят токенов. Считаются и ваш ввод, и вывод модели, и именно в токенах измеряются цены и лимиты.
Считать вручную не нужно, но грубое чутьё помогает: ~750 слов ≈ ~1 000 токенов. Введите что-нибудь и понаблюдайте:
Лишь грубая оценка (~символы ÷ 4 или слова × 1.33). Подсчёт токенов зависит от модели — никогда не используйте токенизатор другой модели. Для точных чисел используйте эндпоинт подсчёта токенов от Anthropic.
:::tip Почему соотношение меняется Обычный английский держится около ¾ слова на токен. Код, JSON, нелатинские письменности, длинные URL и редкие слова разбиваются на больше токенов — так что файл на 500 строк или абзац по-китайски стоит дороже, чем подсказывает количество слов. Когда счёт или лимит вас удивляют, причина обычно в этом. :::
Окно контекста: рабочая память
Окно контекста — это максимальное число токенов, которое модель может учитывать за раз: ваш системный промпт, весь диалог на текущий момент, любые прикреплённые файлы и пишущийся ответ — всё вместе. Считайте это столом модели: большим, но конечным. Размеры окна различаются у разных моделей и продолжают расти — смотрите Модели и цены для актуальных значений, а не заучивайте одно число.
Всё, что модель «знает» в данный момент, лежит на этом столе:
Когда диалог перерастает окно, самое старое содержимое падает со стола. Поэтому очень длинный чат может будто бы «забыть», как он начинался, или уплыть от вашей исходной инструкции.
Гниль контекста: дело не только в том, полно оно или пусто
Более тонкая проблема: даже когда всё ещё помещается, модели обычно надёжнее используют начало и конец длинного ввода, чем середину. Закопайте единственное важное предложение в центр 50-страничной вставки — и его могут недооценить; этот сбой часто называют «потеря в середине».
- Поместите саму инструкцию или вопрос в начало, до вставки длинного документа — а не закопанным после него.
- Повторите ключевую инструкцию одной строкой после длинного содержимого. Первая и последняя позиции — самые сильные.
- Уберите нерелевантные разделы. Меньше шума в середине — значит оставшемуся сигналу достаётся больше внимания.
- Для очень больших вводов суммируйте или разбивайте на части вместо того, чтобы вываливать всё — или начните новый чат под новую подзадачу.
Вот тот же запрос, выстроенный так, чтобы инструкция оказалась в сильных позициях:
Инструкция первой, повторённая последней
Задача: найди все места, где этот договор ограничивает нашу ответственность, и процитируй точную формулировку. [... вставь сюда полный 40-страничный договор ...] Напоминание о задаче: перечисли только положения об ограничении ответственности, с точными цитатами и номерами разделов. Игнорируй всё остальное.
:::tip В Claude Code Длинные агентные сессии упираются в тот же потолок. Claude Code управляет этим целенаправленно — уплотняя историю и позволяя вам направлять то, что остаётся в поле зрения. Смотрите Управление контекстом и Инженерия контекста. :::
Память: её нет, если вы её не обеспечите
По умолчанию каждый диалог — это чистый лист. Модель не помнит ваш прошлый чат. Всё, что выглядит как память, — это одно из четырёх:
| Источник | Что это | Как вы этим управляете |
|---|---|---|
| Переотправляемая история | Чат-приложения переотправляют диалог каждый ход, пока окно не заполнится | Начинать новые чаты; держать ветки сфокусированными |
| Функции памяти | Некоторые поверхности Claude переносят факты между чатами | Настройки Памяти между чатами |
| Файлы, которые вы предоставляете | Постоянный контекст, прикрепляемый осознанно | Проекты, CLAUDE.md |
| Ваш собственный код | API не хранит состояние — вы переотправляете предыдущие сообщения | Первый вызов API |
Общая нить: если хотите, чтобы модель что-то помнила, придётся снова и снова класть это на стол.
Почему это важно
Почти каждая проблема в духе «оно проигнорировало мою раннюю инструкцию» или «оно потеряло нить» сводится к одному из трёх: окно заполнилось, новая сессия началась с нуля, или ключевая деталь застряла в мёртвой середине длинной вставки. Зная это, вы будете выстраивать промпты и сессии так, чтобы важное оставалось в поле зрения.
Проверь себя
Check yourself
0/3Ключевые термины
:::note Выводы
- Токены — единица и мышления, и тарификации: ~1 000 на 750 английских слов, больше для кода и других письменностей.
- Окно контекста — конечный стол; длинные чаты забывают, потому что старое содержимое с него падает.
- Даже в пределах окна начинайте с инструкции и повторяйте её в конце — середина используется недостаточно.
- По умолчанию памяти нет. Обеспечьте её осознанно файлами, Проектами, CLAUDE.md или переотправкой истории. :::