[아티클 01] 컨텍스트 오염 유형
에이전트와 오랫동안 대화하다 보면 이상한 현상을 겪게 됩니다. 처음에는 정확하게 코드를 작성하던 에이전트가 갑자기 엉뚱한 파일을 수정하거나, 이미 해결된 문제를 다시 고치려 하거나, 응답 품질이 눈에 띄게 떨어집니다. 이런 현상의 원인은 여러 가지이며, 그중 하나는 컨텍스트 자체에 문제가 생긴 경우입니다.
이런 증상의 원인은 여러 가지이며, 그중 한 가지는 컨텍스트 자체에 문제가 생기는 경우입니다. 컨텍스트 윈도우에 불필요하거나 잘못된 정보가 쌓여 모델의 성능이 저하되는 현상을 컨텍스트 오염(Context Pollution)이라고 부릅니다. 에이전트가 오래 작업할수록, 이전의 실패한 시도, 잘못된 경로, 긴 에러 메시지, 이미 수정된 코드 등이 컨텍스트에 남아 모델을 혼란스럽게 만듭니다.
작업 초반에는 컨텍스트에 현재 작업에 필요한 정보만 들어 있습니다. 그러나 세션이 길어지면 지난 시도, 이미 해결된 오류, 작업과 무관한 파일 내용이 함께 쌓여, 모델이 정작 필요한 정보를 가려내기 어려워집니다. 이때는 컨텍스트를 정리하고 다시 시작하는 편이 가장 빠른 해결책입니다. 컨텍스트 오염은 원인에 따라 네 가지로 분류할 수 있습니다.
유형 1 : 히스토리 오염
대화가 길어지면서 이전의 잘못된 시도나 에러가 컨텍스트에 남아 있는 경우입니다. 에이전트가 이전에 실패한 접근법을 반복하거나, 이미 수정된 에러에 다시 대응하려 합니다.
이전 대화에서 발생했던 에러 메시지가 컨텍스트에 남아 있어서, 에이전트가 현재 상태가 아닌 과거 상태를 기준으로 판단하는 것입니다.
유형 2 : 파일 오염
관련 없는 파일을 너무 많이 읽어서 컨텍스트가 불필요한 정보로 가득 찬 경우입니다. 에이전트가 작업과 무관한 파일을 수십 개 읽으면, 정작 중요한 파일의 내용이 Lost in the Middle 현상으로 묻히게 됩니다.
유형 3 : 지시 충돌
상충하는 지시가 컨텍스트에 공존하는 경우입니다.
컨텍스트에 “JavaScript로”와 “TypeScript로” 두 지시가 모두 남아 있어서 에이전트가 일관성을 잃게 됩니다.
유형 4 : 도구 출력 오염
도구 실행 결과, 특히 긴 에러 로그나 빌드 출력이 컨텍스트를 대량으로 소비하는 경우입니다. 에이전트가 npm install을 실행했는데 수백 줄의 경고 메시지가 출력되면, 그 모든 텍스트가 컨텍스트에 들어갑니다. MCP 도구의 대량 출력도 같은 문제를 일으킵니다.
여러분이 에이전트를 사용하면서 다음과 같은 징후가 나타나면 컨텍스트 오염을 의심해봅시다.
에이전트가 이전에 해결된 문제를 다시 언급한다
같은 실수를 반복한다 (같은 에러 → 같은 잘못된 수정 → 같은 에러)
응답이 느려지거나 품질이 갑자기 저하된다
“앞서 말씀하신 X에 대해”라며 실제로 말한 적 없는 내용을 참조한다
관련 없는 파일이나 코드를 갑자기 수정하려 한다
에이전트의 응답이 점점 길어지고 초점을 잃는다
이런 징후가 보이면, 더 길게 끌기보다 바로 정리하는 편이 전체 작업 시간을 오히려 줄여줍니다.

