Использование контекста

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

График использования контекста

Как растёт контекст

Главное, что стоит понять про контекст: он растёт не понемногу, а очень быстро — вместе с каждым сообщением поставщику отправляется вся история разговора, а не только новое сообщение. Например, отправляя сотое сообщение, вы передаёте модели все сто сообщений сразу.

Индикатор использования контекста

Отсюда два практических следствия:

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

Поэтому не стоит без нужды вести очень длинные чаты: новую задачу лучше начинать в свежем разговоре, а не продолжать всё в одном.


Метрики токенов

Каждое сообщение добавляет в контекст токены — «единицы текста», которыми модель измеряет информацию. Основные показатели:

Статистика токенов и стоимости сообщения
  • Входные токены — текст, отправленный модели в запросе: ваше сообщение плюс код, файлы и контекст
  • Токены чтения кэша — токены, взятые из кэша запросов (повторно использованные с прошлых шагов; это заметно дешевле свежего ввода)
  • Выходные токены — текст, сгенерированный моделью в ответе
  • Токены контекста — общий расход на сообщение: cacheReadTokens + inputTokens (кэш плюс свежий ввод); у чатов на обвязке Codex это реальное заполнение окна, взятое из журнала движка, а не сумма по запросам хода
  • Лимит контекста — максимальный размер окна, который задаёт поставщик модели на своей стороне. Переменная окружения MODEL_CONTEXT_LENGTH влияет только на отображение — панель прогресса и графики; укажите в ней реальный лимит вашей модели, чтобы показатели были точными. У чатов на обвязке Codex размер окна называет сам движок, и переменная на них не влияет
  • Процент использования — какая часть окна занята: (использовано / лимит) × 100

Чат на обвязке Codex считает эти показатели иначе. Codex отдаёт расход, накопленный за весь поток, и собран он как сумма по всем запросам одного хода: как счёт за токены это верно, а как размер окна — нет (ход из полусотни запросов показал бы примерно пятидесятикратное заполнение). Поэтому у таких чатов расход считается за ход и в статистику больше не попадает накопленный итог, а «токены контекста» и заполнение окна берутся из журнала выполнения самого Codex — это реальное значение. Цифры уже накопленных чатов исправляются сами при открытии; принудительно — кнопкой «Пересчитать статистику» в аналитике.

Статистика токенов и стоимости сообщения

Отслеживание стоимости

Стоимость рассчитывается и показывается на трёх уровнях:

  • На сообщение — у каждого ответа ИИ в служебных данных сообщения видна его стоимость (если включено отображение токенов). Считается по фактическому расходу токенов этого сообщения и ценам активной модели.
  • Статистика токенов и стоимости по каждому сообщению
  • На чат — значок статистики над чатом показывает общую стоимость разговора. Наведите на него курсор — увидите разбивку: число сообщений, стоимость, токены в секунду и подробности по токенам (кэш, ввод, вывод).
  • Свёрнутый значок статистики в шапке чата
    Развёрнутый значок статистики в шапке чата
  • Недавняя статистика (в шапке страницы) — значок показывает общий расход по всем чатам за выбранный период: число запросов, общую стоимость и среднее число токенов в секунду. Клик по значку меняет период (сегодня, 7 дней, этот месяц и т.д.) или открывает полную страницу аналитики.
  • Последняя статистика в шапке страницы

Стоимость считается по четырём ценовым переменным активной модели — MODEL_INPUT_PRICE, MODEL_OUTPUT_PRICE, MODEL_CACHE_READ_PRICE и MODEL_CACHE_WRITE_PRICE — все в долларах за миллион токенов. Если переменные не заданы, используются значения по умолчанию:

  • MODEL_INPUT_PRICE — $0.60
  • MODEL_OUTPUT_PRICE — $2.20
  • MODEL_CACHE_READ_PRICE — $0.11
  • MODEL_CACHE_WRITE_PRICE — $0

Эти значения взяты из типичных цен китайских моделей (например, GLM 4.7), а не из прайс-листа Anthropic. Если вы используете Claude или другого поставщика, числа не совпадут. Собственные цены задаются на странице Модели — модели устроены иерархически: общие настройки (адрес API, ключ доступа) достаточно указать один раз в родительской модели, а цены каждой модели — в дочерних. Приоритет: переменные окружения → системная конфигурация → значения по умолчанию.

Настройка цен моделей на странице окружений

Помните: эти цифры показывают, во сколько обошлись бы запросы по тарифу за токены. На практике большинство пользователей подписываются на планы для разработчиков (Claude Max, GitHub Copilot и т.п.), которые в 10–30 раз дешевле. К тому же реальное ценообразование сложнее простой ставки за миллион токенов — поставщики учитывают время суток, объём использования, размер контекста и разные скидки или наценки. Поэтому суммы в Pastukhov Agent — это приблизительные оценки: они удобны, чтобы сравнивать «вес» запросов и находить необычно дорогие чаты. Единственный источник правды — страница биллинга или учётной записи вашего поставщика; сверяйтесь с ней регулярно.

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


Диалог графика контекста

График использования контекста показывает, как расход токенов меняется по ходу разговора. Он открывается кликом по индикатору контекста в заголовке чата. На графике два ряда данных:

График использования контекста
  • Токены контекста (синяя линия) — общий расход на сообщение, показан сглаженной линией: кэшированные токены плюс свежий ввод
  • Входные токены (оранжевые столбики) — только свежие токены на сообщение, то есть те, что не пришли из кэша

По горизонтали — номера сообщений (1, 2, 3…), по вертикали — число токенов. Значения больше 1000 сокращаются (например, «50k»). Сообщения без расхода токенов на график не попадают.

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


Лимит контекста

Реальный лимит контекста задаёт поставщик модели на своей стороне — изменить его нельзя. Переменная окружения MODEL_CONTEXT_LENGTH влияет только на отображение: панель прогресса и графики в Pastukhov Agent. Задайте в ней фактический размер окна вашей модели, чтобы процент и график отражали реальность. Если переменная не задана, используется 200 000 токенов. У чатов на обвязке Codex переменная не нужна: размер окна называет сам движок, и именно он показывается в панели прогресса.

Типичные лимиты по моделям:

  • Claude Opus 4.7 / Sonnet 4.6 — 200 000 токенов
  • Claude Haiku 4.5 — 200 000 токенов
  • Сторонние модели — лимиты различаются; задайте MODEL_CONTEXT_LENGTH под фактический лимит поставщика

При переключении моделей отображение обновляется автоматически, по значению MODEL_CONTEXT_LENGTH новой модели.


Управление использованием контекста

Несколько простых способов держать расход контекста под контролем:

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

Авто-уплотнение

Когда контекст достигает примерно 70% лимита, Claude Code автоматически уплотняет его: полная история разговора заменяется короткой сводкой, которую модель составила сама, — так освобождается место для новых сообщений.

Продолжать разговор после уплотнения можно, но у этого есть заметные минусы:

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

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