큰 컨텍스트 윈도는 신뢰하지 마세요
출처: 해커 뉴스
최근에 한 동영상을 봤는데, 제가 느껴왔던 것을 이름 붙여 주었습니다. 저자는 LLM의 컨텍스트 창을 두 개의 영역으로 나눕니다. 스마트 영역은 모델이 날카로운 영역이고, 더러운 영역(dumb zone)에서는 주의가 떨어지고 5분 전 이야기를 기억하지 못하는 경우가 발생합니다. 이 경계는 대략 100k 토큰 정도에 위치해 있습니다. 광고된 컨텍스트 창의 크기와는 상관없습니다.
이것이 중요한 이유는 코딩 에이전트가 편하게 바로 더러운 영역에 끌어들일 수 있다는 점입니다. 현대 에이전트는 토큰을 빠르게 소모합니다. 파일 몇 개 읽고, 긴 디버깅 세션을 진행하고, 대규모 테스트를 실행하면 점심 전 이미 100k 토큰에 도달할 수 있습니다. 반면 업체들은 200k, 1M, 심지어 2M 토큰 창이라고 광고하지만, 그 숫자는 실제 활용 가능한 워크셋을 나타낸다는 의미가 아닙니다.
RULER와 Chroma의 컨텍스트 썩음 보고서 같은 연구는 실제 유용한 컨텍스트가 광고된 수치의 일부분임을 보여주고, 창이 채워질수록 성능이 서서히 저하된다는 점을 확인합니다.
대규모 컨텍스트 창은 대부분 마케팅 수치에 불과합니다. 그 뒤에 숨겨진 아키텍처는 작동하지만, 기본적인 注意 메커니즘이 근본적으로 해결하지 못하는 문제를 가려울 뿐입니다. 박스에 표시되는 숫자는 매 출시마다 커지지만, 실제 활용 가능한 부분은 그에 따라 성장하지 못합니다.
현대 에이전트는 이 문제를 해결하려는 방향으로 진화하고 있습니다. Claude Code와 같은 도구는 세션이 길어지면 요약을 자동으로 만들고 새롭게 시작합니다. 도움이 되지만, 이미 더러운 영역에서 시간을 낭비한 뒤에 작동하며, 요약 자체가 이미 성능이 저하된 모델에 의해 생성됩니다. 없는 것보다 낫긴 하지만, 전반적으로 이 상황을 피하고 싶습니다.
제가 하는 방법은 새로운 세션을 열고 직접 작성한 사양을 전달하는 것입니다. 자동 요약보다 훨씬 명확한 신호 전달이 가능합니다. 앞으로 무엇을 중요한지 스스로 결정할 수 있기 때문입니다. 이 빵 부스러기 접근법을 에이전트에 적용한 것입니다. 다음 세션 혹은 다음 사람이 깨끗하게 이어갈 수 있는 아티팩트를 남기는 것이죠.
이 개념을 더 확장할 수 있습니다. obra/superpowers와 mattpocock/skills 같은 프로젝트는 PRD, 계획, 기술, 하위 에이전트 전달 등 작은 명명된 아티팩트를 중심으로 전체 에이전트 워크플로를 구성합니다. 각각은 세션을 스마트 영역에 유지하면서 정보를 세션 밖으로 의도적으로 옮기고, 다음 세션이 읽을 수 있게 만드는 방법입니다.
따라서 저는 컨텍스트 창을 예산처럼 생각합니다. 첫 번째 청크만이 실제로 저에게 효과적이라고 가정하고, 실시간 세션에서 아티팩트로 옮길 수 있는 모든 것을 적어두면 注意가 경쟁해야 할 항목이 하나 줄어듭니다.