
Claude Code v2.1.201 | Sonnet 5가 대화 도중의 system role 사용을 중단함 | 매일 Changelog 해설
요약
Claude Code v2.1.201 업데이트를 통해 Sonnet 5 세션에서 대화 도중 system role을 사용하여 harness reminder를 삽입하던 동작이 제거되었습니다. 이는 모델의 지시 추종성을 높이기 위한 조정으로, 일반 사용자보다는 메시지 구조를 다루는 개발자에게 중요한 변경 사항입니다.
핵심 포인트
- Sonnet 5 세션에서 대화 중 system role 삽입 중단
- harness reminder의 전달 방식이 system role에서 일반 메시지 열로 변경
- 모델의 지시 추종성(followability) 최적화를 위한 조정
- 메시지 구조를 파싱하거나 검증하는 개발자 주의 필요
v2.1.201의 변경 사항은 단 한 줄입니다. Claude Sonnet 5 세션에서, 대화 도중에 harness reminder를 system role로 삽입하던 동작이 제거되었습니다. 리마인더를 어떤 역할(role)로 전달할지는 모델의 추종성(followability)을 좌우하는 부분이며, 그 부분에 Sonnet 5를 위한 조정이 들어갔습니다.
Claude Sonnet 5 세션은 더 이상 harness reminder를 위해 대화 도중의 system role을 사용하지 않습니다.
harness reminder라는 용어도, mid-conversation system role이라는 용어도 Claude Code의 로그를 보지 않으면 감이 오지 않습니다. 우선 그 관계부터 살펴보겠습니다.
Claude Code는 대화 도중에 모델을 향한 리마인더를 백그라운드에서 삽입하고 있습니다. TODO 리스트의 현재 상태, 열려 있는 파일에 대한 주의 사항, 도구 사용 가능 여부, 권한 관련 유의 사항 등입니다. 이것이 harness reminder이며, 세션 로그를 살펴보면 <system-reminder> 태그로 둘러싸여 나타납니다.
문제는 그 전달 방식입니다. 시스템 프롬프트(system prompt)는 통상 대화의 시작 부분에 한 번만 배치합니다. 그런데 Sonnet 5 세션에서는 이 리마인더를 대화 도중에도 system role로서 삽입하고 있었습니다. 대화의 시작이 아니라, user와 assistant의 주고받음 사이에 시스템 권한의 지시가 다시 한번 들어가는 것입니다. 이것이 「mid-conversation system role」입니다.
system role로 전달할지, user의 발화에 섞어서 전달할지에 따라 모델이 받아들이는 방식이 달라집니다. system 측은 지켜야 할 전제로 강력하게 작용하기 쉬운 반면, user 측의 문장은 당시의 요청으로 읽힙니다. 같은 문구라도 어떤 역할(role)에 담느냐에 따라 리마인더의 가중치가 달라집니다.
대화 도중에 system role을 삽입하는 것, 이 한 가지 점이 Sonnet 5에서 사라졌습니다.
# 기존의 Sonnet 5 세션 (이미지)
system : 시작 부분의 시스템 프롬프트
user : 요청
...
원문이 명시하고 있는 것은 대화 도중의 system role을 중단했다는 점뿐입니다. 리마인더 자체가 사라진 것이 아니라, 담는 역할(role)이 바뀌었다고 읽는 것이 자연스럽습니다. 이는 Sonnet 5에 국한된 이야기이며, 다른 모델의 세션은 이 기술 대상에서 제외됩니다.
대화에서 일반적인 용도로 사용하는 동안에는 겉으로 보이는 동작은 변하지 않습니다. 영향이 나타나는 부분은 Sonnet 5의 세션을 생(raw) 로그 단위로 다루는 상황입니다.
Agent SDK로 구축한 앱의 메시지 열을 검증하는 사람, 세션을 재생/평가하는 사람, 리마인더의 작동 방식을 추적하는 사람. 이 계층에게는 메시지 구조가 바뀌는 것이 오직 Sonnet 5 세션뿐이라는 점이 중요하게 작용합니다. 역할(role) 구성을 전제로 한 파서(parser)나 필터를 작성하고 있다면, 대화 도중의 system role을 상정한 분기 처리는 Sonnet 5에서는 실행되지 않게 됩니다.
v2.1.201은 Sonnet 5의 harness reminder를 대화 도중의 system role에서 일반적인 메시지 열로 옮기는 변경입니다. 대화 이용 시 체감 차이는 거의 없으며, 생(raw) 메시지 열을 다루는 개발자 대상의 조정입니다. 동일한 리마인더라도 담는 역할(role)은 모델마다 다릅니다. Sonnet 5에서는 그것이 system role에서 제외되었다는 것이 이번 조정의 핵심이었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기