클로드 코드 품질 저하 원인 및 복구 안내
최근 일부 사용자들이 겪은 클로드(Claude) 응답 품질 저하 현상은 클로드 코드의 추론 노력도 하향 조정, 세션 기억 삭제 버그, 프롬프트 변경에 따른 코딩 성능 악화 등 세 가지 개별적인 변경에서 비롯되었습니다. 해당 문제들은 모두 4월 20일까지 패치되었으며, 안스로픽은 재발 방지 대책 마련과 함께 전체 구독자의 사용량 한도를 초기화(리셋)하여 보상 조치를 진행합니다.
지난 한 달 동안, 저희는 일부 사용자들의 클로드(Claude) 응답 품질이 악화되었다는 제보를 조사해 왔습니다. 조사 결과, 이러한 제보는 클로드 코드(Claude Code), 클로드 에이전트 SDK(Claude Agent SDK), 그리고 클로드 코워크(Claude Cowork)에 영향을 미친 세 가지 개별적인 변경 사항에서 비롯된 것으로 확인되었습니다. API에는 영향이 없었습니다. 세 가지 문제는 모두 4월 20일(v2.1.116)에 해결되었습니다. 이 글에서는 발견한 문제점, 수정한 내용, 그리고 유사한 문제가 재발하지 않도록 향후 다르게 진행할 사항들을 설명해 드리고자 합니다.
저희는 품질 저하 제보를 매우 심각하게 받아들이고 있습니다. 저희는 의도적으로 모델의 성능을 저하시킨 적이 없으며, API와 추론 레이어가 영향을 받지 않았다는 사실을 즉시 확인할 수 있었습니다. 조사 결과 세 가지 다른 문제를 파악했습니다.
첫째, 3월 4일, 일부 사용자들이 '높음(high)' 모드에서 겪던 UI가 멈춘 것처럼 보일 정도의 매우 긴 지연 시간을 줄이기 위해, 클로드 코드의 기본 추론 노력도(reasoning effort)를 '높음'에서 '보통(medium)'으로 변경했습니다. 이는 잘못된 트레이드오프였습니다. 사용자들이 단순한 작업에서만 낮은 노력도를 선택하고 기본적으로는 더 높은 지능을 선호한다는 피드백을 받은 후, 4월 7일 이 변경을 롤백했습니다. 이는 Sonnet 4.6 및 Opus 4.6에 영향을 미쳤습니다.
둘째, 3월 26일, 1시간 이상 유휴 상태였던 세션에서 사용자가 세션을 재개할 때 지연 시간을 줄이기 위해 클로드의 이전 생각(thinking) 기록을 삭제하는 변경 사항을 배포했습니다. 버그로 인해 이 작업이 단 한 번이 아닌 이후 세션의 매 턴마다 계속해서 발생했고, 결과적으로 클로드가 건망증에 걸린 것처럼 보이고 같은 말을 반복하게 만들었습니다. 이 문제는 4월 10일에 수정되었습니다. Sonnet 4.6 및 Opus 4.6에 영향을 미쳤습니다.
셋째, 4월 16일, 장황한 답변을 줄이기 위해 시스템 프롬프트 지시어를 추가했습니다. 다른 프롬프트 변경 사항과 결합되면서 코딩 품질이 저하되었고, 4월 20일에 해당 사항을 롤백했습니다. 이는 Sonnet 4.6, Opus 4.6 및 Opus 4.7에 영향을 미쳤습니다.
각 변경 사항이 다른 시간대에 트래픽의 다른 영역에 영향을 미쳤기 때문에, 전체적인 결과는 광범위하고 일관성 없는 품질 저하처럼 보였습니다. 3월 초부터 제보를 조사하기 시작했지만, 처음에는 사용자 피드백의 정상적인 편차와 구별하기가 어려웠고 내부 사용 및 평가(eval)에서 초기에 문제를 재현하지 못했습니다. 이는 사용자가 클로드 코드에서 기대할 수 있는 경험이 아닙니다. 그리하여 4월 23일부터 모든 구독자의 사용량 한도를 초기화(reset)해 드립니다.
클로드 코드의 기본 추론 노력도 변경에 관하여
2월에 클로드 코드에 Opus 4.6을 출시했을 때, 기본 추론 노력도를 '높음'으로 설정했습니다. 곧이어 '높음' 모드의 클로드 Opus 4.6이 가끔 너무 오래 생각하여 UI가 멈춘 것처럼 보이고, 해당 사용자들에게 불균형적인 지연 시간과 토큰 사용량을 초래한다는 사용자 피드백을 받았습니다.
일반적으로 모델이 더 오래 생각할수록 출력 품질은 더 좋아집니다. 노력도 수준은 클로드 코드가 사용자가 더 많은 생각과 낮은 지연 시간 및 적은 사용량 한도 소모 사이의 트레이드오프를 설정할 수 있게 해주는 방식입니다. 모델의 노력도 수준을 보정할 때, 사람들에게 최적의 선택지를 제공하는 테스트 시점 연산(test-time-compute) 곡선의 지점을 선택하기 위해 이러한 트레이드오프를 고려합니다. 제품 레이어에서는 이 곡선을 따라 기본값으로 설정할 지점을 선택하며, 이 값이 노력도(effort) 파라미터로서 메시지(Messages) API에 전달됩니다. 그런 다음 /effort 명령어를 통해 다른 옵션을 사용할 수 있게 제공합니다.
내부 평가 및 테스트에서 '보통' 노력도는 대다수의 작업에서 지연 시간을 훨씬 줄이면서 약간의 지능 저하를 보였습니다. 또한 생각하는 과정에서 발생하는 간헐적인 매우 긴 꼬리 지연 시간 문제를 겪지 않았으며, 사용자의 사용량 한도를 극대화하는 데 도움이 되었습니다. 그 결과 '보통'을 기본 노력도로 만드는 변경 사항을 출시하고, 제품 내 대화 상자를 통해 그 근거를 설명했습니다.
출시 직후, 사용자들은 클로드 코드가 덜 똑똑해진 것 같다고 보고하기 시작했습니다. 저희는 사용자가 기본값을 변경할 수 있다는 점을 알리기 위해 현재의 노력도 설정을 더 명확하게 보여주는 여러 디자인 개선(시작 시 공지, 인라인 노력도 선택기, ultrathink 기능 복원 등)을 배포했지만, 대부분의 사용자는 '보통' 노력도 기본값을 그대로 유지했습니다. 더 많은 맞춤형 피드백을 들은 후...