# Управление контекстом в GitHub Copilot CLI

Поймите, как Copilot управлять контекстом разговора, что происходит во время долгих сессий и как контролировать контекстное окно.

## О контекстном окне

Когда вы используете GitHub Copilot CLI, каждое отправленное сообщение, каждый ответ от Copilot, каждый вызов инструмента и его результат, а также системные инструкции, определяющие Copilotповедение , хранятся в **контекстном окне**. Контекстное окно — это общее количество информации, которое модель ИИ может учитывать за один момент при формировании ответа.

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

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

Всё это накапливается в контекстном окне. В длинной или сложной сессии окно контекста может заполниться.

### Управление выходными данными большого инструмента

Чтобы предотвратить слишком много использования большого количества элементов в окне контекста, по умолчанию выходные данные средства, превышающие 20 КиБ, сохраняются во временный файл. Модель получает путь к файлу и предварительную версию вместо полного вывода. Это относится ко всем средствам, включая средства, предоставляемые серверами MCP.

Чтобы изменить ограничение, задайте `COPILOT_LARGE_OUTPUT_THRESHOLD_BYTES` положительное число байтов UTF-8 перед запуском интерфейса командной строки. Увеличение ограничения оставляет меньше контекста для беседы и последующих вызовов инструментов.

## Почему контекстное окно важно

Контекстное окно — это то, что даёт Copilot ему «воспоминание» о вашем разговоре. Всё, что находится в контекстном окне, доступно для Copilot обращения при ответе вам.

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

## Проверка использования контекста

Вы можете использовать команду `/context` косой черты, чтобы визуализировать текущее использование контекстного окна. Первая строка вывода показывает активную модель и количество используемых токенов из общей ёмкости окна контекста модели. Остальная часть вывода показывает использование токенов и процент контекстного окна для:

* **Системный запрос**: базовый системный запрос.
* **Пользовательские инструкции**: ваши загруженные пользовательские инструкции (отображаются только при наличии).
* **Системные инструменты**: встроенные определения инструментов.
* **Инструменты MCP**: определения инструментов, предоставляемые серверами MCP.
* **Сообщения**: ваша история переписок.
* **Свободное пространство**: неиспользуемый контекст всё ещё доступен.
* **Буфер**: ёмкость, зарезервированная для отклика и запаса мощности модели.

![Скриншот вывода команды CLI '/context'.](/assets/images/help/copilot/copilot-cli-context-usage.png)

Возможно, стоит использовать `/context` команду slash, когда:

* Вы на длительной сессии и хотите узнать, сколько места осталось.
* Copilot Похоже, он забывает ранние части разговора.
* Вам нужно понять, произошло ли уплотнение или скорее всего произойдёт в ближайшее время.

## Сжатие

Компрессия — это процесс, позволяющий GitHub Copilot CLI поддерживать длительные сессии без выхода за пределы контекстного окна.

### Когда происходит уплотнение

Когда разговор достигает примерно 80% ёмкости окна контекста, Copilot CLI он автоматически начинает сжимать контекст в фоне. Это оставляет буфер примерно в 20%, чтобы вызовы инструментов могли продолжаться во время уплотнения. Если контекст заполняется примерно до 95% до окончания уплотнения, Copilot CLI сделайте короткую паузу, чтобы дождаться завершения уплотнения, прежде чем продолжить.

Вы также можете вручную активировать уплотнение в любой момент, введя команду `/compact` . Это полезно, если вы собираетесь начать новую фазу работы и хотите заранее освободить контекстное пространство. Нажмите <kbd>Esc</kbd> , чтобы отменить ручное уплотнение, если передумаете.

### Что делает уплотнение

При уплотнении работает: Copilot CLI

1. Делает снимок текущей истории разговоров.
2. Отправляет полный диалог в модель ИИ со специальным запросом, который требует сгенерировать структурированное резюме. В резюме отражаются цели беседы, что было сделано, ключевые технические детали, важные файлы и запланированные дальнейшие шаги.
3. Заменяет старую историю переписки на краткое описание, а также оригинальные инструкции пользователя и текущее состояние планов или списков to-do.
4. Сохраняет все сообщения, добавленные во время работы уплотнения, в фоне.

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

### Какое уплотнение не сохраняет

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

### Что произошло бы без уплотнения

Без уплотнения, когда окно контекста заполнилось, Copilot пришлось бы просто убрать старые сообщения из истории переписки — удалять их без какого-либо сводки или записи. Это означало бы резкую потерю контекста, без возможности Copilot узнать, что было в удалённых сообщениях. Уплотнение избегает этого, заменяя историю на интеллектуальное резюме, а не отбрасывая её.

## Checkpoints

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

### Смотровые пункты

Чтобы увидеть все контрольные точки в вашей текущей сессии, введите:

```copilot copy
/session checkpoints
```

Здесь перечислены все контрольные точки с их номером и названием:

```text
Checkpoint History (3 total):
  3. Refactoring authentication module
  2. Implementing user dashboard
  1. Initial planning and setup
```

Используйте номер контрольной точки, чтобы увидеть полное содержимое любого контрольного пункта. Например, чтобы увидеть контрольную точку 2, введите:

```copilot copy
/session checkpoints 2
```

### Когда контрольные точки полезны

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

> \[!NOTE]
>
> * Контрольные точки создаются автоматически. Вам не нужно ими управлять — они есть, если вам это нужно. В большинстве сессий вам вообще не нужно смотреть на контрольные точки.
> * Нельзя обратить уплотнение после завершения.

## Использование длительных сессий

Автоматическое уплотнение позволяет продолжать работу в течение длительной сессии, не беспокоясь о выходе за пределы контекстного окна. Бывают моменты, когда это очень полезно, а бывают — когда хочется начать новую сессию.

### Когда длительные сессии полезны

Длительные сессии хорошо работают, когда:

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

### Когда начинать новую сессию

Начинать новую сессию лучше, когда:

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

> \[!TIP]
> Вы можете возобновить предыдущие сессии в любой момент с помощью `/resume` этой команды. Это позволяет продолжить с того места, где остановились, включая все контрольные точки, созданные в ходе сессии.

## Дополнительные материалы

* [GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli)
* [Использование GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli/use-copilot-cli/overview)
* [Справочник команды GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-command-reference)