세션 중간에 모델을 전환하는 방법
Anthropic의 모델 구성 가이드에 따르면 세션 중에 모델을 변경하는 방법으로 /model을 나열하고 있습니다. 즉시 전환하려면 /model <alias|name>을 실행하고, 선택기를 열려면 인자 없이 /model을 실행하세요. 단축키도 있습니다. Anthropic의 키보드 참조 문서에 따르면 macOS에서는 Option+P, Windows 및 Linux에서는 Alt+P를 사용하여 프롬프트를 지우지 않고 모델을 전환할 수 있습니다.
이번 세션만, 또는 모든 세션에 적용
이 부분은 사람들이 놀라는 디테일입니다. Anthropic은 "/model은 사용자 설정의 model 필드를 작성하여 선택한 모델을 새 세션의 기본값으로 저장합니다"라고 설명합니다. 하나의 작업을 마치기 위해 모델을 선택하는 행위가 다음 세션이 시작되는 모델을 바꿀 수 있습니다.
현재 세션에만 변경 사항을 유지하려면 선택기를 사용하세요. Anthropic은 다음과 같이 말합니다. "이번 세션에만 전환하려면 /model로 선택기를 열고 해당 모델의 행에서 s를 누르세요." 이름을 포함하여 /model을 입력하는 것은 선택기에서 Enter를 누르는 것과 같이 동작하며, 이는 기본값으로 저장됩니다.
실행 옵션은 다르게 작동합니다. Anthropic은 "--model 플래그와 ANTHROPIC_MODEL 환경 변수는 해당 플래그로 시작한 세션에만 적용됩니다"라고 명시합니다.
전환 시 전달되는 내용
대화 내용
사용자의 메시지, Claude의 답변, Claude가 읽은 파일, 그리고 명령어 출력 결과는 모두 세션에 유지됩니다. 새 모델은 동일한 대화 내용을 전달받습니다. Anthropic의 프롬프트 캐싱 가이드는 내용이 변경되지 않음을 확인해 줍니다. 즉, 전환은 "콘텐츠가 동일하더라도" 다음 요청 시 전체 대화 기록을 다시 읽는다는 것을 의미합니다.
메모리 파일
CLAUDE.md, 규칙(rules), 자동 메모리는 특정 모델에 종속되지 않은 세션 context의 일부입니다. 이들은 이전 모델에서와 마찬가지로 새 모델에서도 그대로 유지됩니다.
모델을 상속받는 하위 에이전트(Subagents)
전환은 메인 대화보다 더 넓은 범위에 영향을 미칩니다. Anthropic은 "/model로 모델을 전환하면, 메인 대화의 모델을 상속받는 하위 에이전트들에게도 전환이 적용됩니다"라고 설명합니다. 자체 model 설정이 있는 하위 에이전트는 해당 설정을 유지합니다. Claude Code 하위 에이전트가 메모리를 공유하지 않는 이유에 대한 가이드에서 이러한 하위 에이전트가 무엇으로 시작하는지 확인할 수 있습니다.
새 모델에 따라 달라지는 것
대화 내용은 동일하지만, 이를 읽는 모델이 다르고 context window도 다릅니다. Anthropic은 Fable 모델, Sonnet 5 이상, Haiku 5.5, Opus 4.7 이상이 기본적으로 1M window로 실행되는 반면, 확장 context가 없는 Sonnet 4.6 및 Opus 4.6은 200K 경계에서 압축(compact)된다고 명시합니다. 한 모델의 window에 맞는 긴 대화가 다른 모델에서는 압축이 필요할 수 있습니다. Anthropic의 폴백(fallback) 문서는 한 사례에서 다음과 같은 원칙을 밝힙니다. Claude Code는 "기본 모델보다 context window가 작은 모델로 폴백하지 않습니다. 요약 과정에서 대화의 일부가 먼저 잘려 나갈 수 있기 때문입니다."
알아두어야 할 사례가 하나 더 있습니다. 게이트웨이 별칭과 같이 Claude Code가 인식하지 못하는 모델 ID로 전환하면, 모델의 window를 판단할 수 없어 200K 토큰으로 가정합니다. Claude Code v2.1.316에서 이에 대한 경고가 추가되었습니다. 변경 로그에 따르면 인식되지 않는 ID로 /model을 사용할 때 "모델이 인식되지 않아 자동 압축이 200K context window를 가정한다는 경고가 표시되지 않던 문제"를 수정했습니다.
다시 읽히는 내용
전환해도 대화 내용을 잃지는 않지만, 다음 턴의 비용은 달라집니다.
Claude Code는 대화를 캐싱하여 매 턴마다 모든 내용을 다시 처리하는 비용을 지불하지 않도록 합니다. 이 캐시는 모델에 귀속됩니다. Anthropic의 프롬프트 캐싱 가이드는 다음과 같이 설명합니다. "각 모델은 고유한 캐시를 가집니다. /model로 전환하면 콘텐츠가 동일하더라도 다음 요청은 캐시 적중 없이 전체 대화 기록을 읽습니다."
짧은 세션에서는 미미한 차이입니다. 하지만 긴 세션에서는 새 모델에서의 첫 번째 턴이 처음부터 모든 것을 처리하므로, 더 느려질 수 있고 사용량 제한을 더 많이 소모할 수 있습니다. 이전 세션 재개 시 사용량 경고에 대한 가이드에서 오래된 세션으로 돌아올 때 발생하는 동일한 효과를 다루고 있습니다.
Claude Code가 먼저 물어보는 경우
Claude Code는 전환으로 인해 활성 캐시(warm cache)를 버리게 될 때 사용자에게 확인을 요청합니다. Anthropic은 "터미널에서 /model을 실행할 때, 캐시가 아직 활성 상태이고 새 모델이 마지막 응답을 생성한 모델이 아닌 경우에만 Claude Code가 전환 확인을 요청합니다"라고 말합니다.
캐시는 마지막 요청 또는 응답 후 한 번의 캐시 수명 동안 활성 상태를 유지합니다. 그 시간이 지나면 손실될 활성 캐시가 남지 않습니다. "그 시간이 지나 캐시가 만료되면 Claude Code는 묻지 않고 전환합니다."
추론 강도(effort) 변경도 동일하게 작동합니다. Anthropic은 "대부분의 모델에서 세션 중간에 effort 레벨을 변경하면 다음 요청은 캐시 적중 없이 전체 대화 기록을 읽습니다"라고 설명합니다.
전환으로 사용량 제한이 초기화되지 않음
제한에 도달하여 모델을 전환하려는 경우, 어떤 제한인지 확인하세요. Anthropic의 오류 참조 문서에 따르면 "세션 및 주간 제한은 모든 모델에서 공유되므로, 모델을 전환해도 액세스 권한이 복구되지 않습니다." 특정 모델 제품군에만 적용되는 제한은 다릅니다. 해당 제품군 외부의 모델로 전환하면 작업을 계속할 수 있습니다.
Claude Code가 스스로 전환하는 경우
모든 모델 변경이 /model로 시작되는 것은 아닙니다. Anthropic의 프롬프트 캐싱 가이드는 몇 가지 사례를 나열하며, 각각은 동일한 의미의 전환입니다. 즉, 다른 모델이 대화를 읽게 됩니다.
opusplan
opusplan 설정은 계획된 전환입니다. Anthropic은 이를 "계획 모드에서는 opus를 사용하고, 실행 모드에서는 sonnet으로 전환하는 특수 모드"라고 설명합니다. 캐싱 가이드는 "각 계획 모드 토글은 모델 전환이며 새로운 캐시를 시작한다"고 덧붙입니다.
모델을 지정하는 스킬(Skill)
스킬과 명령어는 frontmatter에서 자체 모델을 설정할 수 있습니다. 스킬이 세션 모델과 다른 모델을 지정하면 Anthropic은 "해당 턴 또한 모델 전환이다"라고 말합니다. 이는 한 턴 동안만 지속됩니다. "다음 프롬프트에서는 세션 모델이 다시 시작됩니다."
자동 모델 폴백(Fallback)
이 경우 기록(transcript)에 알림이 남습니다. Fable 모델, Opus 5.5, Sonnet 5.5, Opus 5는 주로 사이버 보안 및 생물학 콘텐츠를 필터링하는 안전 분류기(safety classifiers)와 함께 실행됩니다. 일부 필터링된 요청에 대해 Claude Code는 폴백 모델에서 요청을 재실행합니다. Anthropic은 "메인 대화의 기록에 알림이 표시됩니다"라고 설명합니다.
스킬의 모델과 달리, 이 전환은 유지됩니다. "폴백 후 세션은 폴백 모델에서 계속됩니다. 원래 모델로 돌아가려면 /model을 실행하세요."
폴백은 특이한 질문을 하기 전에도 발생할 수 있습니다. Anthropic은 "첫 번째 요청에는 CLAUDE.md 내용 및 git 상태와 같은 워크스페이스 context가 포함되므로, 특이한 내용을 보내기 전인 세션의 첫 번째 요청에서도 트리거될 수 있다"고 설명합니다. 사용자의 메모리 파일도 분류기가 읽는 내용의 일부입니다.
확인 여부를 선택할 수 있습니다. /config를 실행하여 메시지가 필터링될 때 모델을 전환하는 설정을 찾아 'Ask each time'으로 선택하거나, switchModelsOnFlag를 false로 설정하세요. 그러면 Claude Code는 필터링된 요청에서 멈추고 사용자가 전환하거나 프롬프트를 편집하여 재시도할 수 있게 해줍니다. Fable 5.1이 사고 블록(thinking blocks)을 결합하는 방식에 대한 가이드에서 폴백이 모델의 이전 추론에 어떤 의미를 갖는지 다룹니다.
폴백 체인(Fallback chains)
가용성을 위해 폴백 모델을 설정한 경우, 기본 모델이 과부하 상태이거나 사용할 수 없을 때 전환이 발생할 수 있습니다. 이 전환은 짧습니다. Anthropic은 "전환은 현재 턴에만 지속되므로, 다음 메시지는 다시 기본 모델을 먼저 시도합니다"라고 말합니다.
모든 전환 확인하기
모델 전환을 위한 훅(hook)이 있습니다. Anthropic은 PreModelSwitch에 대해 "사용자 또는 클라이언트가 요청한 모델 전환을 Claude Code가 적용하기 전에 실행됩니다. 이를 사용하여 전환을 차단하거나, 확인을 요구하거나, 전환 전 비용이 얼마나 들지 표시할 수 있습니다"라고 설명합니다.
이는 사용자의 전환에만 해당하며 Claude Code 자체의 전환에는 해당하지 않습니다. "Claude Code는 자동 모델 폴백이나 세션 재개 시 모델 복구와 같이 스스로 수행하는 전환에 대해서는 PreModelSwitch 훅을 실행하지 않습니다." 이러한 경우에는 PostModelSwitch에만 도달합니다.
빠른 참조
- 이름과 함께
/model사용: 즉시 전환하고 기본값으로 저장합니다. /model선택기 사용 후s입력: 이번 세션에만 전환합니다.- 시작 시
--model사용: 해당 세션에만 적용됩니다. opusplan: 계획 단계와 실행 단계 사이를 전환합니다.model이 지정된 스킬: 한 턴 동안 전환합니다.- 안전 폴백: 전환된 상태가 유지되며 사용자가 직접 되돌려야 합니다.
- 가용성 폴백 체인: 현재 턴에만 전환됩니다.
모든 경우에 대화 내용은 전달되지만, 다른 모델에서의 첫 번째 턴은 캐시 없이 대화를 읽습니다.
사람들이 처음에 시도하는 것들
하나의 작업을 끝내기 위해 전환했다가, 왜 다음 세션이 그 모델로 시작되는지 의아해함. 이름을 포함한 /model은 기본값을 저장합니다. 한 세션만 사용하려면 선택기에서 s를 사용하세요.
사용량 제한을 피하기 위해 전환함. 세션 및 주간 제한은 모델 간에 공유됩니다.
답변을 비교하기 위해 앞뒤로 전환함. 각 전환은 캐시 없이 전체 대화를 다시 읽습니다. 대신 포크(fork)를 하거나 새 세션에서 비교하세요.
폴백 알림을 놓침. 안전 폴백 후 세션은 폴백 모델에 머뭅니다. 기록의 알림을 확인하고 원한다면 다시 전환하세요.
새 모델이 이전 모델과 동일하게 세션을 이해할 것이라고 가정함. 동일한 대화를 읽지만, 자체 context window와 무엇이 중요한지에 대한 자체적인 판단을 가지고 읽습니다.
해결책: 의도적으로 모델을 전환하고, 결정 사항은 대화 외부에 보관하기
1단계: 전환이 일시적인지 영구적인지 결정하기
단일 세션 변경을 위해서는 /model 선택기를 사용하고 s를 누르세요. 기본값을 변경하려는 의도가 있을 때만 이름과 함께 /model을 사용하세요. 모든 전환을 직접 승인하고 싶다면 PreModelSwitch 훅을 추가하세요.
2단계: 자연스러운 중단점에서 전환하기
작업 중간이 아닌 작업 사이에서 전환하고, 전환 후 첫 번째 턴은 더 오래 걸릴 것을 예상하세요. 세션이 길다면 전환하기 전에 압축하거나 짧은 요약과 함께 새로 시작하여 새 모델이 읽을 양을 줄이는 것을 고려하세요.
3단계: 모든 모델이 읽을 수 있는 곳에 세션의 결정 사항 기록하기
긴 세션에서 확정된 결정 사항이 대화의 전환이나 압축 과정에서 살아남는 것에 의존해서는 안 됩니다. 저장소 컨벤션은 CLAUDE.md에 작성하세요. 이전 시점으로 되돌아가야 한다면, Claude Code 세션 되감기 가이드에서 어떤 편집 내용이 복구되는지 설명합니다.
MemoryLake에서 설정하기
모델 전환 시 대화는 유지되지만 각 모델은 이를 새로 읽으며, 긴 대화는 결국 압축됩니다. 한 세션을 넘어서거나 다른 도구에서도 중요한 결정 사항은 어떤 모델이 읽고 있는지 또는 대화가 얼마나 길어졌는지에 의존하지 않는 보관 장소가 필요합니다.
MemoryLake는 이러한 결정 사항을 사용자가 관리하는 하나의 리스트로 유지하고, Claude Code뿐만 아니라 ChatGPT, Codex 등 연결된 다른 어시스턴트에서도 사용할 수 있게 해주는 memory 레이어입니다.
사용자는 자신의 언어로 직접 항목을 작성합니다. Claude Code 세션, CLAUDE.md 파일, 자동 메모리 또는 벤더의 저장소에서 데이터를 읽거나 쓰거나 삭제하지 않습니다. 모델 전환은 Anthropic이 설명하는 방식 그대로 계속 작동합니다.
1단계: API 키 생성
로그인 후 대시보드에서 키를 생성합니다. 이 키는 MemoryLake 워크스페이스에 속하며 Claude 계정과는 별개입니다.

2단계: 첫 번째 메모리 업로드
단일 저장소를 넘어서 적용되는 해결책 3단계의 결정 사항들(컨벤션, 제약 조건 및 그 이유)부터 시작하세요. 항목당 하나의 포인트를 날짜와 함께 기록합니다.

3단계: AI 및 에이전트 연결
Claude Code와 사용하는 다른 어시스턴트를 연결하세요. 어떤 모델이 실행 중이든, 다음 세션에서든, 다른 도구에서든 결정 사항을 사용할 수 있습니다.

실제적인 변화
첫 번째 차이점은 전환이 더 이상 당혹스럽지 않다는 것입니다. 어떤 전환이 한 턴 동안 유지되는지, 어떤 것이 세션 동안 유지되는지, 어떤 것이 기본값을 바꾸는지 알게 됩니다.
두 번째는 느리고 비용이 많이 드는 턴이 줄어든다는 점입니다. 작업 중간에 앞뒤로 전환하는 대신 자연스러운 중단점에서 전환하고 다시 읽기를 예상하게 됩니다.
세 번째는 결정 사항이 하나의 대화에만 의존하지 않는다는 것입니다. 모델이 바뀌거나 세션이 압축되어도 중요한 내용은 이미 기록되어 있습니다. 대화에 전혀 추가되지 않아야 하는 빠른 질문의 경우, /btw 가이드에서 부가적인 질문 처리 방법을 다룹니다.
Claude Code 모델 전환 모범 사례
일회성 전환을 위해서는 선택기에서 s를 누르세요. 이름과 함께 /model을 사용하면 기본값이 저장됩니다.
작업 사이에서 전환하세요. 전환 후 첫 번째 턴은 캐시 없이 전체 대화를 읽습니다.
폴백 알림이 있는지 기록을 확인하세요. 안전 폴백은 세션을 새 모델로 유지시킵니다.
폴백이 중요하다면 'Ask each time'을 선택하세요. 그러면 전환할지 프롬프트를 편집할지 직접 결정할 수 있습니다.
공유 제한을 피하기 위해 전환하지 마세요. 세션 및 주간 제한은 모델 전반에 걸쳐 적용됩니다.
인식되지 않는 모델 ID를 주의하세요. Claude Code는 이에 대해 200K window를 가정합니다.
결정 사항은 대화 외부에 보관하세요. 저장소 관련은 CLAUDE.md에, 나머지는 관리되는 리스트에 보관하세요.
전환 시 1M-context 오류가 발생했다면, 사용량 크레딧 메시지 가이드에서 그 의미와 압축 시 대화가 유지하는 내용에 대해 설명합니다.
결론
Claude Code에서 /model을 사용하여 세션 중간에 모델을 전환할 수 있으며, 메시지, 파일 읽기, 명령어 출력 및 메모리 파일 등 대화 내용이 전달됩니다. 각 모델은 고유한 캐시를 가지므로 전환 후 첫 번째 턴은 전체 대화를 다시 읽으며, 선택기에서 s를 누르지 않는 한 이름과 함께 /model을 사용하면 해당 선택이 기본값으로 저장됩니다.
Claude Code는 또한 스스로 전환을 수행합니다. opusplan을 통한 계획과 실행 사이의 전환, 스킬이 모델을 지정할 때의 한 턴 전환, 폴백 체인에서의 한 턴 전환, 그리고 안전 폴백 후 남은 세션 동안의 전환이 있습니다. 각각의 차이를 파악하고, 자연스러운 중단점에서 전환하며, 세션의 결정 사항을 모델의 읽기 방식에 의존하지 않는 곳에 보관하세요.