컨텍스트 창 정보
사용하는 GitHub Copilot CLI경우, 보내는 모든 메시지, 모든 Copilot응답, 모든 도구 호출 및 결과 및 '의 동작을 정의하는 Copilot시스템 지침은 모두 컨텍스트 창에 보관됩니다. 컨텍스트 창은 AI 모델이 응답을 생성할 때 한 번에 고려할 수 있는 총 정보 양입니다.
컨텍스트 창에는 모델에 따라 달라지는 토큰으로 측정되는 고정 크기가 있습니다. 토큰은 일반적으로 짧고 일반적으로 사용되는 단어와 다중 음절 단어의 조각으로 구성됩니다. 대화가 진행됨에 따라 컨텍스트 창은 다음으로 채워집니다.
-
**시스템 지침 및 도구 정의**: 동작 방법을 알려주 Copilot 는 기본 제공 지침과 사용 가능한 모든 도구의 스키마. 이러한 항목은 항상 존재하며 컨텍스트 창의 고정된 부분을 차지합니다. -
**메시지**: 보내는 모든 프롬프트입니다. -
** Copilot'의 응답**: Copilot이/가 당신에게 다시 하는 말. -
**도구 호출 및 결과**: 파일을 읽거나 명령을 실행하거나 코드베이스를 검색할 때 Copilot 요청과 출력이 모두 컨텍스트에 추가됩니다. 도구 결과는 특히 클 수 있습니다. 예를 들어 도구가 긴 파일을 읽거나 광범위한 출력을 생성하는 명령을 실행하는 경우입니다.
이 모든 것이 컨텍스트 창에 누적됩니다. 긴 세션이나 복잡한 세션에서 컨텍스트 창이 채워지도록 할 수 있습니다.
컨텍스트 창이 중요한 이유
컨텍스트 창은 대화의 "메모리"를 제공합니다 Copilot . Copilot는 응답할 때 컨텍스트 창 내의 모든 항목을 참조할 수 있습니다.
즉, Copilot 매우 긴 세션에서 전체 대화 기록을 한 번에 보유하지 못할 수 있습니다. Copilot CLI 따라서 필요한 기간 동안 대화를 Copilot 계속할 수 있는 컨텍스트 관리 기능이 있습니다.
컨텍스트 사용량 확인
슬래시 명령을 입력 /context 하여 현재 사용 중인 컨텍스트 창의 양을 확인할 수 있습니다. 그러면 토큰 사용량에 대한 시각적 분석이 표시되며 다음을 보여 줍니다.
-
**시스템/도구**: 시스템 명령 및 도구 정의의 고정 오버헤드입니다. -
**메시지**: 대화 기록에 사용되는 공간입니다. -
**여유 공간**: 새 메시지의 남은 공간입니다. -
**버퍼**: 자동 컨텍스트 관리를 트리거하는 예약된 부분입니다.

다음과 같은 경우 /context 슬래시 명령을 사용할 수 있습니다.
- 긴 세션을 진행 중이며 남은 공간을 알고 싶습니다.
-
Copilot 대화의 이전 부분을 잊어 버린 것 같습니다. - 압축이 발생했는지 또는 곧 발생할 가능성이 있는지 이해하려고 합니다.
압축
압축은 컨텍스트 창의 제한에 도달하지 않고 장기 실행 세션을 지원할 수 있는 GitHub Copilot CLI 프로세스입니다.
압축이 발생하는 경우
대화가 컨텍스트 창 용량 Copilot CLI 의 약 80% 도달하면 자동으로 백그라운드에서 컨텍스트 압축을 시작합니다. 압축이 진행되는 동안 도구 호출이 계속 실행되도록 약 20개% 버퍼를 남깁니다. 압축이 완료 Copilot CLI 되기 전에 컨텍스트가 약 95% 채워지면 잠시 일시 중지하여 압축이 완료되기를 기다렸다가 계속합니다.
`/compact` 명령어를 입력하여 언제든지 수동으로 압축을 트리거할 수도 있습니다. 이는 새로운 작업 단계를 시작하려는 경우 컨텍스트 공간을 사전에 확보하려는 경우에 유용합니다. 마음이 바뀌면 <kbd>Esc</kbd> 키를 눌러 수동 압축을 취소합니다.
압축이 수행하는 기능
압축이 실행되면 다음을 Copilot CLI수행합니다.
- 현재 대화 기록의 스냅샷을 만듭니다.
- 구조화된 요약을 생성하도록 요청하는 특별한 프롬프트를 사용하여 AI 모델에 전체 대화를 보냅니다. 요약은 대화의 목표, 수행된 작업, 주요 기술 세부 정보, 중요한 파일 및 계획된 다음 단계를 캡처합니다.
- 이전 대화 기록을 원래 사용자 지침 및 계획 또는 to-do 목록의 현재 상태와 함께 요약으로 바꿉니다.
- 압축이 백그라운드에서 실행되는 동안 추가된 모든 메시지를 유지합니다.
그 결과 대화 기록이 훨씬 더 작은 요약으로 압축되어 새 작업에 대한 대부분의 컨텍스트 창이 확보됩니다. Copilot 에서는 원본 메시지가 대체되었더라도 이 요약을 사용하여 연속성을 유지합니다. 이 요약은 설명된 내용, 결정된 내용 및 다음에 수행할 작업을 알고 있습니다.
압축이 보존하지 않는 것
압축은 요약 프로세스이므로 일부 세부 정보는 필연적으로 손실됩니다. 요약은 핵심 사항을 캡처하지만, 모든 메시지의 정확한 표현, 모든 명령의 전체 출력 또는 긴 대화 초기에 내려진 사소한 결정과 같은 세분화된 세부 정보는 포함되지 않을 수 있습니다. 세션의 앞부분에서 매우 구체적인 세부 정보를 기억해야 하는 Copilot 경우 압축 후 해당 정보가 없을 수 있습니다.
압축 없이 어떤 일이 일어날까요?
압축이 없으면 컨텍스트 창이 가득 차면 Copilot 이전 메시지를 단순히 삭제하여 요약이나 기록 없이 제거하게 됩니다. 이로 인해 Copilot가 삭제된 메시지에 어떤 내용이 있었는지 알 수 없게 되어, 컨텍스트가 갑자기 손실됩니다. 압축은 기록을 삭제하지 않고 지능형 요약으로 바꿔서 이를 방지합니다.
Checkpoints
자동으로 또는 수동으로 압축이 발생할 때마다 검사점 이 만들어집니다. 검사점은 압축 요약의 저장된 복사본으로, 세션의 작업 영역에 번호가 매겨진 파일로 저장됩니다.
검사점 보기
현재 세션의 모든 검사점을 보려면 다음을 입력합니다.
/session checkpoints
/session checkpoints
그러면 모든 검사점의 번호와 제목이 나열됩니다.
Checkpoint History (3 total):
3. Refactoring authentication module
2. Implementing user dashboard
1. Initial planning and setup
검사점 번호를 사용하여 검사점의 전체 콘텐츠를 볼 수 있습니다. 예를 들어 검사점 2를 보려면 다음을 입력합니다.
/session checkpoints 2
/session checkpoints 2
검사점이 유용한 경우
-
**진행 상황 검토**: 여러 압축이 포함된 긴 세션 후에는 대화의 이전 단계가 더 이상 활성 컨텍스트에 있지 않습니다. 검사점을 사용하면 Copilot가 각 압축 시점에서 수행한 작업을 다시 확인할 수 있습니다. -
**연속성 확인**: 계속하기 전에 이전 작업을 정확하게 캡처한 요약을 확인 Copilot하려면 가장 최근의 검사점을 검토할 수 있습니다. -
**혼동 디버깅**: 결정을 잊어버렸거나 이전 작업과 모순되는 방향으로 진행 중인 경우 검사점을 확인하면 Copilot 압축 중에 보존된 내용과 예상과 다르게 요약된 내용이 표시될 수 있습니다.
참고
- 검사점은 자동으로 만들어집니다. 관리를 하지 않아도 됩니다. 필요할 때 이용 가능합니다. 대부분의 세션에서는 검사점을 전혀 볼 필요가 없습니다.
- 압축이 완료되면 되돌릴 수 없습니다.
장기 실행 세션 사용
자동 압축을 사용하면 컨텍스트 창의 제한에 도달할 염려 없이 장기 실행 세션에서 작업을 계속할 수 있습니다. 이 방법이 매우 유용한 경우도 있고, 새 세션을 시작하는 것을 선호할 수도 있는 경우도 있습니다.
긴 세션이 유용한 경우
장기 실행 세션은 다음과 같은 경우에 잘 작동합니다.
- 스캐폴딩, 구현, 테스트 및 끌어오기 요청이 필요한 기능을 빌드하는 것과 같은 다단계 작업을 수행하고 있습니다.
- 문제를 반복하고 있으며 시도된 내용과 작동하지 않은 항목의 컨텍스트를 유지하려고 Copilot 합니다.
- 코드베이스 전반에 걸쳐 탐색 작업을 수행하고 있으며, 시간이 지남에 따라 Copilot와 함께 공동의 이해를 구축하고 있습니다.
새 세션을 시작하는 경우
다음과 같은 경우 새 세션을 시작하는 것이 좋습니다.
- 관련 없는 작업으로 전환하고 있습니다. Copilot 에서는 이전 작업의 컨텍스트가 필요하지 않으며, 정리된 컨텍스트 창은 새 작업을 위한 더 많은 공간을 의미합니다.
- 대화는 많은 압축을 거쳤으며 요약 프로세스에서 중요한 컨텍스트가 손실되고 있다고 느낍니다.
- 예를 들어 작업이 잘못된 방향으로 진행되어 이전의 결정을 새 접근 방식으로 조정하는 것보다 Copilot 다시 시작하는 경우처럼 깨끗한 슬레이트를 원합니다.
팁
명령을 사용하여 /resume 언제든지 이전 세션을 다시 시작할 수 있습니다. 이렇게 하면 해당 세션 중에 생성된 검사점을 포함하여 이어서 진행할 수 있습니다.
추가 읽기
-
[AUTOTITLE](/copilot/how-tos/copilot-cli) -
[AUTOTITLE](/copilot/how-tos/use-copilot-agents/use-copilot-cli) -
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference)