{"meta":{"title":"Управление контекстом в GitHub Copilot CLI","intro":"Поймите, как Copilot управлять контекстом разговора, что происходит во время долгих сессий и как контролировать контекстное окно.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ru/copilot","title":"GitHub Copilot"},{"href":"/ru/copilot/concepts","title":"Основные понятия"},{"href":"/ru/copilot/concepts/agents","title":"Агенты"},{"href":"/ru/copilot/concepts/agents/copilot-cli","title":"Copilot CLI"},{"href":"/ru/copilot/concepts/agents/copilot-cli/context-management","title":"Управление контекстом"}],"documentType":"article"},"body":"# Управление контекстом в GitHub Copilot CLI\n\nПоймите, как Copilot управлять контекстом разговора, что происходит во время долгих сессий и как контролировать контекстное окно.\n\n## О контекстном окне\n\nКогда вы используете GitHub Copilot CLI, каждое отправленное сообщение, каждый ответ от Copilot, каждый вызов инструмента и его результат, а также системные инструкции, определяющие Copilotповедение , хранятся в **контекстном окне**. Контекстное окно — это общее количество информации, которое модель ИИ может учитывать за один момент при формировании ответа.\n\nОкно контекста имеет фиксированный размер, измеряемый в токенах, который варьируется в зависимости от модели. Токены обычно состоят из коротких, часто используемых слов и фрагментов многосложных слов. По мере развития разговора окно контекста заполняется следующими:\n\n* **Системные инструкции и определения инструментов**: встроенные инструкции, указывающие Copilot на поведение, а также схемы всех доступных инструментов. Они всегда присутствуют и занимают фиксированную часть контекстного окна.\n* **Ваши сообщения**: Каждый запрос, который вы отправляете.\n* **CopilotОтветы**: Всё Copilot отвечает тебе.\n* **Вызовы инструментов и результаты**: При Copilot чтении файлов, выполнении команд или поиске в вашей кодовой базе в контекст добавляются как запрос, так и результат. Результаты инструментов могут быть особенно большими — например, если инструмент читает длинный файл или запускает команду, дающую обширный результат.\n\nВсё это накапливается в контекстном окне. В длинной или сложной сессии окно контекста может заполниться.\n\n### Управление выходными данными большого инструмента\n\nЧтобы предотвратить слишком много использования большого количества элементов в окне контекста, по умолчанию выходные данные средства, превышающие 20 КиБ, сохраняются во временный файл. Модель получает путь к файлу и предварительную версию вместо полного вывода. Это относится ко всем средствам, включая средства, предоставляемые серверами MCP.\n\nЧтобы изменить ограничение, задайте `COPILOT_LARGE_OUTPUT_THRESHOLD_BYTES` положительное число байтов UTF-8 перед запуском интерфейса командной строки. Увеличение ограничения оставляет меньше контекста для беседы и последующих вызовов инструментов.\n\n## Почему контекстное окно важно\n\nКонтекстное окно — это то, что даёт Copilot ему «воспоминание» о вашем разговоре. Всё, что находится в контекстном окне, доступно для Copilot обращения при ответе вам.\n\nЭто значит, что за очень длинную сессию Copilot можно не сможет собрать всю историю разговора одновременно.\nCopilot CLI Поэтому у вас есть функции управления контекстом, которые позволяют продолжать разговор Copilot столько, сколько нужно.\n\n## Проверка использования контекста\n\nВы можете использовать команду `/context` косой черты, чтобы визуализировать текущее использование контекстного окна. Первая строка вывода показывает активную модель и количество используемых токенов из общей ёмкости окна контекста модели. Остальная часть вывода показывает использование токенов и процент контекстного окна для:\n\n* **Системный запрос**: базовый системный запрос.\n* **Пользовательские инструкции**: ваши загруженные пользовательские инструкции (отображаются только при наличии).\n* **Системные инструменты**: встроенные определения инструментов.\n* **Инструменты MCP**: определения инструментов, предоставляемые серверами MCP.\n* **Сообщения**: ваша история переписок.\n* **Свободное пространство**: неиспользуемый контекст всё ещё доступен.\n* **Буфер**: ёмкость, зарезервированная для отклика и запаса мощности модели.\n\n![Скриншот вывода команды CLI '/context'.](/assets/images/help/copilot/copilot-cli-context-usage.png)\n\nВозможно, стоит использовать `/context` команду slash, когда:\n\n* Вы на длительной сессии и хотите узнать, сколько места осталось.\n* Copilot Похоже, он забывает ранние части разговора.\n* Вам нужно понять, произошло ли уплотнение или скорее всего произойдёт в ближайшее время.\n\n## Сжатие\n\nКомпрессия — это процесс, позволяющий GitHub Copilot CLI поддерживать длительные сессии без выхода за пределы контекстного окна.\n\n### Когда происходит уплотнение\n\nКогда разговор достигает примерно 80% ёмкости окна контекста, Copilot CLI он автоматически начинает сжимать контекст в фоне. Это оставляет буфер примерно в 20%, чтобы вызовы инструментов могли продолжаться во время уплотнения. Если контекст заполняется примерно до 95% до окончания уплотнения, Copilot CLI сделайте короткую паузу, чтобы дождаться завершения уплотнения, прежде чем продолжить.\n\nВы также можете вручную активировать уплотнение в любой момент, введя команду `/compact` . Это полезно, если вы собираетесь начать новую фазу работы и хотите заранее освободить контекстное пространство. Нажмите <kbd>Esc</kbd> , чтобы отменить ручное уплотнение, если передумаете.\n\n### Что делает уплотнение\n\nПри уплотнении работает: Copilot CLI\n\n1. Делает снимок текущей истории разговоров.\n2. Отправляет полный диалог в модель ИИ со специальным запросом, который требует сгенерировать структурированное резюме. В резюме отражаются цели беседы, что было сделано, ключевые технические детали, важные файлы и запланированные дальнейшие шаги.\n3. Заменяет старую историю переписки на краткое описание, а также оригинальные инструкции пользователя и текущее состояние планов или списков to-do.\n4. Сохраняет все сообщения, добавленные во время работы уплотнения, в фоне.\n\nВ результате история разговоров сжимается в гораздо меньший обзор, освобождая большую часть контекстного окна для новых работ.\nCopilot использует это резюме для поддержания непрерывности — он знает, что обсуждалось, что было решено и что делать дальше — даже несмотря на то, что исходные сообщения были заменёны.\n\n### Какое уплотнение не сохраняет\n\nУплотнение — это процесс суммирования, поэтому некоторые детали неизбежно теряются. Краткое изложение охватывает ключевые моменты, но мелкие детали — такие как точная формулировка каждого сообщения, полный результат каждой команды или мелкие решения, принятые в начале длительного разговора — могут не быть включены. Если вам нужно Copilot вспомнить очень конкретную деталь из гораздо более ранней сессии, после уплотнения этой информации может не остаться.\n\n### Что произошло бы без уплотнения\n\nБез уплотнения, когда окно контекста заполнилось, Copilot пришлось бы просто убрать старые сообщения из истории переписки — удалять их без какого-либо сводки или записи. Это означало бы резкую потерю контекста, без возможности Copilot узнать, что было в удалённых сообщениях. Уплотнение избегает этого, заменяя историю на интеллектуальное резюме, а не отбрасывая её.\n\n## Checkpoints\n\nКаждый раз, когда происходит уплотнение — автоматически или вручную — создаётся **контрольная точка** . Контрольная точка — это сохранённая копия сводки по сжатию, хранящаяся в виде пронумерованного и заголованного файла в рабочем пространстве вашей сессии.\n\n### Смотровые пункты\n\nЧтобы увидеть все контрольные точки в вашей текущей сессии, введите:\n\n```copilot copy\n/session checkpoints\n```\n\nЗдесь перечислены все контрольные точки с их номером и названием:\n\n```text\nCheckpoint History (3 total):\n  3. Refactoring authentication module\n  2. Implementing user dashboard\n  1. Initial planning and setup\n```\n\nИспользуйте номер контрольной точки, чтобы увидеть полное содержимое любого контрольного пункта. Например, чтобы увидеть контрольную точку 2, введите:\n\n```copilot copy\n/session checkpoints 2\n```\n\n### Когда контрольные точки полезны\n\n* **Обзор произошедшего**: После долгой сессии с множеством уплотнений ранние этапы разговора больше не находятся в активном контексте. Контрольные точки позволяют прочитать, что Copilot произошло при каждом уплотнении.\n* **Проверка непрерывности**: Если вы хотите проверить, что Copilotрезюме точно отражает вашу предыдущую работу перед продолжением, вы можете просмотреть последнюю контрольную точку.\n* **Путаницы при отладке**: если Copilot кажется, что вы забыли решение или движетесь в направлении, противоречащем предыдущим работам, проверка чекпойнтов может выявить, что было сохранено во время уплотнения, а что могло быть обобщено иначе, чем вы ожидали.\n\n> \\[!NOTE]\n>\n> * Контрольные точки создаются автоматически. Вам не нужно ими управлять — они есть, если вам это нужно. В большинстве сессий вам вообще не нужно смотреть на контрольные точки.\n> * Нельзя обратить уплотнение после завершения.\n\n## Использование длительных сессий\n\nАвтоматическое уплотнение позволяет продолжать работу в течение длительной сессии, не беспокоясь о выходе за пределы контекстного окна. Бывают моменты, когда это очень полезно, а бывают — когда хочется начать новую сессию.\n\n### Когда длительные сессии полезны\n\nДлительные сессии хорошо работают, когда:\n\n* Вы работаете над многоэтапной задачей, например, созданием функции, требующей подготовки, внедрения, тестирования и создания pull-запроса.\n* Вы прорабатываете задачу и хотите Copilot сохранить контекст того, что уже пробовали, а что нет.\n* Вы проводите исследовательскую работу по всему коду и со временем налаживаете общее понимание.Copilot\n\n### Когда начинать новую сессию\n\nНачинать новую сессию лучше, когда:\n\n* Вы переходите к другой задаче.\n  Copilot Не нужен контекст вашей предыдущей работы, а чистое окно контекста даёт больше пространства для новой задачи.\n* Разговор прошёл через множество уплотнений, и вы чувствуете, что важный контекст теряется в процессе резюме.\n* Вам нужен чистый лист — например, если работа пошла не в том направлении, и вы предпочитаете начинать заново, чем Copilot пытаться примирить предыдущие решения с новым подходом.\n\n> \\[!TIP]\n> Вы можете возобновить предыдущие сессии в любой момент с помощью `/resume` этой команды. Это позволяет продолжить с того места, где остановились, включая все контрольные точки, созданные в ходе сессии.\n\n## Дополнительные материалы\n\n* [GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli)\n* [Использование GitHub Copilot CLI](/ru/copilot/how-tos/copilot-cli/use-copilot-cli/overview)\n* [Справочник команды GitHub Copilot CLI](/ru/copilot/reference/copilot-cli-reference/cli-command-reference)"}