핵심 개념

컨텍스트 오염

컨텍스트 오염이 무엇인지, Bob 대화에서 이를 어떻게 알아차릴 수 있는지, 그리고 새 task를 시작하거나 컨텍스트 위생을 개선해서 어떻게 복구할 수 있는지 알아보세요.

컨텍스트 오염이란

컨텍스트 오염은 잘못되었거나 관련 없는 정보가 context window 안으로 들어와 transcript에 계속 남아 있는 상태를 말합니다. Bob은 후속 prompt에서 그 정보를 사실처럼 다룹니다. 답변은 점점 엇나갑니다. tool 호출은 부정확해집니다. work goal은 흐려집니다.

이건 단순히 한 번 나쁜 답변이 나온 경우와는 다릅니다. 잘못된 데이터는 Messages 안에 남습니다(또는 file 읽기, log 붙여넣기, 오래된 comment를 통해 들어왔을 수도 있습니다). Bob은 네가 reset하거나 condense할 때까지 모든 prompt마다 그 내용을 다시 보냅니다.

window가 어떻게 차고 언제 새로 시작해야 하는지는 Context window management에서 확인하세요. 실제 reset 과정을 따라 해보려면 Create a new context window를 참고하세요.

증상

다음 중 하나라도 보인다면 컨텍스트 오염일 가능성이 높습니다.

  • 출력 품질 저하: 제안이 반복되거나, 엉뚱한 방향으로 가거나, repository와 맞지 않게 된다.
  • 잘못된 tool 사용: transcript 안의 tool 단계가 네가 요청한 내용과 더 이상 맞지 않는다.
  • 막히는 다단계 작업: 여러 prompt에 걸친 긴 작업 흐름이 반복되거나 멈춘다(Agent mode에서).
  • 잠깐만 먹히는 수정: 교정용 prompt가 한 번은 효과가 있지만 곧 문제가 다시 돌아온다.
  • tool 혼란: Tool definitions는 바뀌지 않았는데도 Bob이 tool을 잘못 사용한다.

이미 Messages가 많이 쌓였다면 먼저 context window breakdown을 확인하세요. 오염과 과도하게 찬 window는 자주 같이 나타납니다.

흔한 원인

원인어떤 일이 생기나
thread 안의 잘못된 사실Bob이 틀린 내용을 말하고, 이후 대화가 그 내용을 Messages 안의 사실처럼 취급한다.
오래되었거나 잘못된 repository 텍스트오래된 comment, README 조각, 생성된 docs가 file 읽기를 잘못된 방향으로 이끈다.
너무 큰 붙여넣기잡음, 잘림, 숨은 문자가 포함된 log나 snippet이 Messages에 들어간다.
CondensationBob은 오래된 Messages를 요약합니다. 유용한 세부 정보는 사라지고, 남은 내용이 thread를 지배할 수 있다.
관련 없는 컨텍스트관계없는 file, 오래된 plan, 이전 work goal이 여전히 transcript에 남아 있다.

한번 나쁜 컨텍스트가 Messages에 들어오면 이후의 모든 prompt에 걸쳐 계속 남습니다. Bob은 그럴듯해 보이는 텍스트가 틀렸다는 이유만으로 안정적으로 무시하지 못합니다.

교정 prompt의 한계

대화에 Tool definitions, 규칙, 또는 엄격한 교정용 prompt를 붙여넣으면 한두 번의 대화에서는 문제가 가려질 수 있습니다. 하지만 오염된 Messages 기록은 그대로 남아 있습니다. 다음에 주제에서 벗어난 질문이 나오면 같은 실패가 다시 나타날 수 있습니다.

확실한 해결책은 새 task입니다. 채팅 패널에서 +(New task)를 클릭하세요. 자세한 내용은 Create a new context window를 참고하세요.

복구

  • +(New Task)로 새 task를 시작하세요. 이렇게 하면 오염된 Messages는 지워지지만 Rules와 disk에 있는 project files는 유지됩니다.
  • 붙여넣는 양을 줄이세요. Bob에게 필요한 log 줄이나 error만 보내세요. 큰 덤프는 Messages를 늘리고 위험도 키웁니다.
  • work goal을 나누세요. 관련 없는 단계는 별도 task로 나눠서 오래된 transcript가 따라오지 않게 하세요.
  • tool 출력을 확인하세요. tool이 쓰레기 같은 결과를 돌려주면 Bob이 Messages에서 그 위에 쌓아가기 전에 멈추고 reset하세요.
  • 텍스트보다 테스트를 더 믿으세요. comment와 code가 다르면 Bob을 실행 가능한 검증으로 안내하세요. 이건 context window best practices와 같은 지침입니다.

예방

예방의 대부분은 좋은 컨텍스트 위생에서 나옵니다.

  • repository를 탐색하기 전에 work goal 범위를 정하세요(context window management).
  • AGENTS.mdRules는 짧고 실무적으로 유지하세요.
  • file과 log는 필요할 때 추가하고, 처음부터 다 넣지 마세요.
  • 진전 없이 Messages만 커진다면 reset하세요.

repository 전체를 읽어야 할 때는 subagents를 사용하세요. 그러면 task는 Messages 안의 모든 tool 단계 대신 subagent results만 보게 됩니다.

더 알아보기

이 주제는 어떤가요?