Понимание контекстного окна

“Контекстное окно” относится к полному объему текста, на который языковая модель может ссылаться и обращаться при генерации нового текста, плюс новый текст, который она генерирует. Это отличается от большого корпуса данных, на котором была обучена языковая модель, и вместо этого представляет “рабочую память” для модели. Большее контекстное окно позволяет модели понимать и отвечать на более сложные и длинные запросы, в то время как меньшее контекстное окно может ограничить способность модели обрабатывать более длинные запросы или поддерживать связность в расширенных разговорах.

Диаграмма ниже иллюстрирует стандартное поведение контекстного окна для API-запросов1:

1Для чат-интерфейсов, таких как claude.ai, контекстные окна также могут быть настроены по принципу “первый пришел, первый ушел”.

  • Прогрессивное накопление токенов: По мере продвижения разговора через обороты, каждое сообщение пользователя и ответ ассистента накапливаются в контекстном окне. Предыдущие обороты сохраняются полностью.
  • Линейная модель роста: Использование контекста растет линейно с каждым оборотом, при этом предыдущие обороты сохраняются полностью.
  • Емкость 200K токенов: Общее доступное контекстное окно (200,000 токенов) представляет максимальную емкость для хранения истории разговора и генерации нового вывода от Claude.
  • Поток ввода-вывода: Каждый оборот состоит из:
    • Фаза ввода: Содержит всю предыдущую историю разговора плюс текущее сообщение пользователя
    • Фаза вывода: Генерирует текстовый ответ, который становится частью будущего ввода

Контекстное окно с расширенным мышлением

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

Токены бюджета мышления являются подмножеством вашего параметра max_tokens, оплачиваются как токены вывода и учитываются в ограничениях скорости.

Однако предыдущие блоки мышления автоматически исключаются из расчета контекстного окна API Anthropic и не являются частью истории разговора, которую модель “видит” для последующих оборотов, сохраняя емкость токенов для фактического содержания разговора.

Диаграмма ниже демонстрирует специализированное управление токенами при включенном расширенном мышлении:

  • Удаление расширенного мышления: Блоки расширенного мышления (показаны темно-серым) генерируются во время фазы вывода каждого оборота, но не переносятся как токены ввода для последующих оборотов. Вам не нужно удалять блоки мышления самостоятельно. API Anthropic автоматически делает это за вас, если вы передаете их обратно.
  • Детали технической реализации:
    • API автоматически исключает блоки мышления из предыдущих оборотов, когда вы передаете их обратно как часть истории разговора.
    • Токены расширенного мышления оплачиваются как токены вывода только один раз, во время их генерации.
    • Эффективный расчет контекстного окна становится: context_window = (input_tokens - previous_thinking_tokens) + current_turn_tokens.
    • Токены мышления включают как блоки thinking, так и блоки redacted_thinking.

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

Вы можете прочитать больше о контекстном окне и расширенном мышлении в нашем руководстве по расширенному мышлению.

Контекстное окно с расширенным мышлением и использованием инструментов

Диаграмма ниже иллюстрирует управление токенами контекстного окна при сочетании расширенного мышления с использованием инструментов:

1

Архитектура первого оборота

  • Компоненты ввода: Конфигурация инструментов и сообщение пользователя
  • Компоненты вывода: Расширенное мышление + текстовый ответ + запрос использования инструмента
  • Расчет токенов: Все компоненты ввода и вывода учитываются в контекстном окне, и все компоненты вывода оплачиваются как токены вывода.
2

Обработка результата инструмента (оборот 2)

  • Компоненты ввода: Каждый блок в первом обороте, а также tool_result. Блок расширенного мышления должен быть возвращен с соответствующими результатами инструмента. Это единственный случай, когда вы должны возвращать блоки мышления.
  • Компоненты вывода: После того как результаты инструмента были переданы обратно Claude, Claude ответит только текстом (без дополнительного расширенного мышления до следующего сообщения user).
  • Расчет токенов: Все компоненты ввода и вывода учитываются в контекстном окне, и все компоненты вывода оплачиваются как токены вывода.
3

Третий шаг

  • Компоненты ввода: Все входы и вывод из предыдущего оборота переносятся за исключением блока мышления, который теперь может быть удален, поскольку Claude завершил весь цикл использования инструмента. API автоматически удалит блок мышления за вас, если вы передадите его обратно, или вы можете свободно удалить его самостоятельно на этом этапе. Здесь же вы бы добавили следующий оборот User.
  • Компоненты вывода: Поскольку есть новый оборот User вне цикла использования инструмента, Claude сгенерирует новый блок расширенного мышления и продолжит оттуда.
  • Расчет токенов: Предыдущие токены мышления автоматически исключаются из расчетов контекстного окна. Все остальные предыдущие блоки все еще учитываются как часть окна токенов, и блок мышления в текущем обороте Assistant учитывается как часть контекстного окна.
  • Соображения для использования инструментов с расширенным мышлением:
    • При отправке результатов инструмента должен быть включен весь неизмененный блок мышления, который сопровождает этот конкретный запрос инструмента (включая подпись/отредактированные части).
    • Эффективный расчет контекстного окна для расширенного мышления с использованием инструментов становится: context_window = input_tokens + current_turn_tokens.
    • Система использует криптографические подписи для проверки подлинности блока мышления. Неспособность сохранить блоки мышления во время использования инструментов может нарушить непрерывность рассуждений Claude. Таким образом, если вы изменяете блоки мышления, API вернет ошибку.

Модели Claude 4 поддерживают чередующееся мышление, которое позволяет Claude думать между вызовами инструментов и делать более сложные рассуждения после получения результатов инструментов.

Claude Sonnet 3.7 не поддерживает чередующееся мышление, поэтому нет чередования расширенного мышления и вызовов инструментов без оборота пользователя, не являющегося tool_result, между ними.

Для получения дополнительной информации об использовании инструментов с расширенным мышлением см. наше руководство по расширенному мышлению.

Контекстное окно на 1M токенов

Claude Sonnet 4 поддерживает контекстное окно на миллион токенов. Это расширенное контекстное окно позволяет вам обрабатывать гораздо большие документы, поддерживать более длинные разговоры и работать с более обширными кодовыми базами.

Контекстное окно на 1M токенов в настоящее время находится в бета-версии для организаций в уровне использования 4 и организаций с пользовательскими ограничениями скорости. Контекстное окно на 1M токенов доступно только для Claude Sonnet 4.

Чтобы использовать контекстное окно на 1M токенов, включите бета-заголовок context-1m-2025-08-07 в ваши API-запросы:

from anthropic import Anthropic

client = Anthropic()

response = client.beta.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Process this large document..."}
    ],
    betas=["context-1m-2025-08-07"]
)

Важные соображения:

  • Статус бета-версии: Это бета-функция, подверженная изменениям. Функции и ценообразование могут быть изменены или удалены в будущих выпусках.
  • Требование уровня использования: Контекстное окно на 1M токенов доступно организациям в уровне использования 4 и организациям с пользовательскими ограничениями скорости. Организации более низкого уровня должны продвинуться до уровня использования 4, чтобы получить доступ к этой функции.
  • Доступность: Контекстное окно на 1M токенов в настоящее время доступно в API Anthropic и Amazon Bedrock. Поддержка Google Vertex AI последует.
  • Ценообразование: Запросы, превышающие 200K токенов, автоматически оплачиваются по премиальным тарифам (2x ввод, 1.5x вывод ценообразование). См. документацию по ценообразованию для подробностей.
  • Ограничения скорости: Запросы длинного контекста имеют выделенные ограничения скорости. См. документацию по ограничениям скорости для подробностей.
  • Мультимодальные соображения: При обработке большого количества изображений или PDF-файлов имейте в виду, что файлы могут различаться по использованию токенов. При сочетании большого запроса с большим количеством изображений вы можете столкнуться с ограничениями размера запроса.

Управление контекстным окном с новыми моделями Claude

В новых моделях Claude (начиная с Claude Sonnet 3.7), если сумма токенов запроса и токенов вывода превышает контекстное окно модели, система вернет ошибку валидации, а не будет молча обрезать контекст. Это изменение обеспечивает более предсказуемое поведение, но требует более тщательного управления токенами.

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

См. нашу таблицу сравнения моделей для списка размеров контекстных окон по моделям.

Следующие шаги