Codex의 모델 제공자(model provider)란 무엇인가
Codex의 구성 가이드에서는 이를 다음과 같이 정의합니다: "모델 제공자는 Codex가 모델에 연결하는 방식(기본 URL, 통신 API, 인증 및 선택적 HTTP 헤더)을 정의합니다."
model_provider 설정을 통해 하나를 선택합니다. Codex에는 내장 제공자가 있으며, 가이드에는 이들을 위해 예약된 ID 목록이 있습니다: openai, ollama, lmstudio, amazon-bedrock, amazon-bedrock-runtime, gcp. 또한 프록시, 회사 게이트웨이 또는 호환되는 API를 가진 다른 서비스와 같이 직접 정의할 수도 있습니다. --oss 플래그는 로컬 오픈 소스 제공자로 세션을 시작합니다.
--oss 경로에는 고유한 선택 순서가 있습니다. 명령 참조에 따르면 --oss 사용 시 Codex는 "--local-provider, 구성된 oss_provider를 사용하거나 LM Studio와 Ollama 중 하나를 선택하도록 요청합니다." 따라서 일회성 로컬 세션은 평소 설정과 다른 제공자에서 실행될 수 있으며, 이때 저장되는 채팅은 해당 제공자에 귀속됩니다.
즉, 제공자를 전환한다는 것은 config.toml의 한 줄을 바꾸거나, --oss로 단일 세션을 시작하거나, 전체 설정을 조직에서 사용하는 클라우드 제공자로 옮기는 등 여러 가지를 의미할 수 있습니다.
전환 후 채팅이 사라졌던 이유
풀 리퀘스트에 따르면 저장된 채팅과 구성된 제공자가 일치해야 합니다. 제공자가 일치하지 않으면 재개가 거부될 수 있습니다. 0.167.0 이전에는 이것이 두 가지 측면에 영향을 미쳤습니다.
- 검색 문제. 다른 제공자의 채팅이 재개 조회에서 제외되어 예상한 위치에 나타나지 않았습니다.
- 열기 문제. 채팅에 필요한 제공자가 현재 구성된 제공자와 다를 경우 채팅을 여는 데 실패할 수 있었습니다.
릴리스 노트 어디에도 채팅이 삭제되었다는 내용은 없습니다. 단지 조회에서 숨겨지거나 열기가 차단되었던 것입니다. 이것이 이번 수정 사항이 데이터 복구가 아닌 가시성 및 복구 기능에 초점을 맞춘 이유입니다.
Codex 0.167.0의 변경 사항
풀 리퀘스트에 나열된 변경 사항은 다음과 같습니다. 각 항목이 사용자에게 어떤 의미인지 설명합니다.
모든 제공자가 재개 조회에 표시됨
첫 번째 변경 사항은 "포크(fork) 조회의 제공자 필터링은 유지하면서, 재개 선택기(picker), 이름 기반 재개 조회 및 resume --last에 모든 제공자를 포함"하는 것입니다.
실제로 이제 재개 선택기, 이름으로 채팅 재개, codex resume --last 명령은 모든 제공자의 채팅을 고려합니다. OpenAI에서 실행했던 채팅이 Bedrock으로 구성된 상태에서도 표시되며, 그 반대의 경우도 마찬가지입니다.
재개할 수 없는 채팅은 읽기 전용 기록으로 열림
채팅이 보인다고 해서 현재 제공자가 이를 바로 이어갈 수 있다는 뜻은 아닙니다. 풀 리퀘스트에서는 그 목적을 다음과 같이 명시합니다: "서버가 제공자 불일치, 구성 누락 또는 정책 충돌로 인해 재개를 거부할 때 기록을 읽을 수 있도록 유지하는 것."
이런 상황이 발생하면 Codex는 이제 설명 및 단축키와 함께 채팅을 읽기 전용 기록으로 엽니다. 풀 리퀘스트에 나열된 단축키는 새 채팅에서 계속하기 위한 c, 새로 시작하기 위한 n, 다른 채팅을 선택하기 위한 Esc입니다.
읽기 전용이란 대화 내용을 스크롤하고, 결정된 사항을 읽고, 필요한 내용을 메모할 수 있음을 의미합니다. 현재 제공자에서 해당 채팅에 새로운 대화를 추가할 수는 없습니다.
새 채팅에서 계속하기
c 단축키가 가장 중요합니다. 풀 리퀘스트에 따르면: "새 채팅에서 계속하기는 저장된 대화를 참조하는 편집 가능하고 전송되지 않은 프롬프트를 준비합니다."
여기서 두 단어가 중요합니다. 편집 가능하다는 것은 전송 전에 프롬프트를 수정할 수 있다는 뜻입니다. 전송되지 않음은 사용자가 결정하기 전까지 모델에 아무것도 보내지 않는다는 뜻입니다. 새 채팅은 현재 제공자에서 실행되며 해당 프롬프트부터 시작됩니다.
초안이 손실되지 않음
풀 리퀘스트는 또한 Codex가 "초안과 거부된 프롬프트 또는 스티어(steer)를 보존하고, 자동 제출을 억제하며, 채팅을 다시 열 때 제공자 승인을 재시도"할 것이라고 명시합니다. 재개에 실패한 채팅에 무언가를 입력했었다면, 그것은 삭제되지 않고 유지되며 Codex가 임의로 전송하지도 않습니다.
포크 조회는 여전히 제공자별로 필터링됨
한 가지 예외가 있습니다. 포크 조회는 제공자 필터링을 유지합니다. 이전 채팅을 포크하려면 포크 선택기에 현재 제공자의 채팅만 표시됩니다. 다른 제공자의 채팅을 기반으로 작업하려면 '새 채팅에서 계속하기'를 사용하거나, 먼저 해당 제공자로 다시 전환해야 합니다. Codex 채팅 포크하기 가이드에서 포크의 일반적인 작동 방식을 다룹니다.
채팅이 나타나지 않는 다른 이유들
제공자 전환만이 원인은 아닙니다. 최악의 상황을 가정하기 전에 다음 사항들을 확인하세요.
작업 디렉토리. Codex 명령 참조에 따르면 "codex resume는 --all을 전달하지 않는 한 --last 범위를 현재 작업 디렉토리로 제한합니다." 다른 프로젝트 폴더에서 채팅을 시작했다면 --last로는 찾을 수 없습니다. --all을 추가하거나 선택기를 여세요.
디렉토리 프롬프트. 현재 디렉토리가 세션이 저장된 디렉토리와 다를 경우 Codex는 어느 것을 사용할지 묻습니다. tui.resume_cwd 설정을 통해 이 선택을 자동화할 수 있습니다.
아카이브된 채팅. 아카이브는 채팅을 삭제하지 않고 활성 목록에서 숨깁니다. 명령 참조에서는 codex archive를 "대화 내용을 삭제하지 않고" 세션 선택기를 정리하는 방법으로 설명합니다.
다른 계정 또는 Codex 홈. Codex 문서에 따르면 세션 기록은 $CODEX_HOME/sessions에, 아카이브된 세션은 $CODEX_HOME/archived_sessions에 저장됩니다. 계정을 전환했거나 다른 CODEX_HOME을 설정했다면 다른 세션 세트를 보고 있는 것입니다. Codex 계정 전환하기 가이드에서 로컬 장치에 무엇이 남는지 설명합니다.
이전 버전. 제공자 관련 수정 사항은 0.167.0에서 도입되었습니다. 이전 버전에서는 다른 제공자의 채팅이 여전히 숨겨져 있을 수 있습니다.
새 채팅으로 전달되는 내용
새 채팅에서 계속하기를 사용하면, Codex가 준비한 프롬프트(저장된 대화를 참조함)에서 시작하는 별도의 대화가 생성되며, 전송 전에 이 프롬프트를 편집할 수 있습니다.
릴리스 노트와 풀 리퀘스트에는 해당 프롬프트에 정확히 무엇이 포함되는지 명시되어 있지 않습니다. 따라서 다음 사항을 확인하며 초안으로 취급하세요.
- 먼저 이전 대화 내용을 읽으세요. 읽기 전용 모드로 열려 있으므로 무엇이 논의되었고 어디서 작업이 멈췄는지 확인할 수 있습니다.
- 새 모델에 필요한 내용을 추가하세요. 제약 조건이나 결정 사항이 중요하다면 본인의 언어로 프롬프트에 넣으세요.
- 모델이 다르다는 점에 유의하세요. 제공자가 다르면 모델도 다를 수 있습니다. 이전에 작동했던 지침을 더 명확하게 다듬어야 할 수도 있습니다.
어떤 채팅이나 제공자를 사용하든 적용되어야 하는 사항은 채팅 기록보다 파일이 더 신뢰할 수 있습니다. OpenAI의 지침 가이드에 따르면 "Codex는 작업을 수행하기 전에 AGENTS.md 파일을 읽습니다." AGENTS.md의 규칙은 다시 언급하지 않아도 새 채팅에 로드됩니다. Codex 외부에서 이전 채팅의 복사본을 원하신다면 Codex 채팅 내보내기 가이드를 참고하세요.
사람들이 흔히 하는 실수
채팅이 삭제되었다고 가정함. 릴리스 노트는 삭제된 것이 아니라 숨겨지거나 열 수 없는 채팅에 대해 설명합니다.
채팅을 찾으려고 제공자를 계속 앞뒤로 전환함. 0.167.0 이상 버전에서는 재개 선택기에 모든 제공자가 포함됩니다.
읽기 전용 채팅에서 새 메시지를 보내려고 시도함. 대신 '새 채팅에서 계속하기'를 사용하세요.
다른 제공자의 채팅을 포크하려고 함. 포크 조회는 여전히 제공자별로 필터링됩니다.
준비된 프롬프트를 읽지 않고 바로 전송함. 편집 가능한 데에는 이유가 있습니다.
해결 방법: 채팅을 찾고 현재 제공자에서 계속하기
1단계: Codex를 0.167.0 이상으로 업데이트
제공자를 인식하는 재개 동작은 0.167.0에서 도입되었습니다. 버전을 확인하고 Codex를 설치할 때 사용한 방법으로 업데이트하세요.
2단계: 제공자 및 폴더 전체에서 채팅 찾기
재개 선택기를 열거나 이름으로 재개하세요. --last를 사용하는 경우 --all을 추가하여 Codex가 모든 디렉토리의 세션을 고려하도록 하세요. 채팅이 없다면 아카이브 여부와 동일한 계정 및 Codex 홈을 사용 중인지 확인하세요.
3단계: 읽어본 후 새 채팅에서 계속하기
채팅이 읽기 전용 기록으로 열리면 먼저 내용을 읽어보세요. 그런 다음 c를 눌러 새 채팅에서 계속하고, 준비된 프롬프트를 검토한 뒤 새 모델에 필요한 결정 사항과 제약 조건을 추가하여 전송하세요.
MemoryLake에서 설정하기
제공자 수정 덕분에 이전 채팅을 찾고 읽을 수 있게 되었습니다. 또한 컨텍스트가 어디에 머물러 있었는지도 보여줍니다. 즉, 특정 제공자의 세션에 묶인 대화 내용 속에 있었고, 새 제공자는 이를 읽을 수는 있지만 직접 이어갈 수는 없었습니다. 해당 채팅의 결정 사항이 돌아온 것은 오직 사용자가 이를 읽고 새 프롬프트에 작성했기 때문입니다. Codex memories v2 가이드에서는 Codex가 로컬에 유지하는 메모리를 다룹니다.
MemoryLake는 이러한 결정 사항을 사용자가 관리하는 한 곳에 보관하여 ChatGPT, Claude Code, Codex 등 연결된 모든 어시스턴트가 사용할 수 있게 해주는 메모리 계층입니다.
사용자는 자신의 언어로 직접 항목을 작성합니다. Codex 채팅, 세션 폴더, config.toml, AGENTS.md 파일, Codex memories 또는 어떤 벤더의 저장소에서도 데이터를 읽거나 쓰거나 삭제하지 않습니다. 재개, 읽기 전용 기록, 새 채팅에서 계속하기 기능은 OpenAI가 설명한 방식 그대로 작동합니다.
1단계: API 키 생성
로그인 후 대시보드에서 키를 생성합니다. 이 키는 MemoryLake 워크스페이스에 속하며 OpenAI 계정이나 모델 제공자의 자격 증명과는 별개입니다.

2단계: 첫 번째 메모리 업로드
해결 방법 3단계에서 읽기 전용 기록으로부터 추출한 결정 사항들로 시작하세요. 각 항목당 하나의 결정 사항을 해당 프로젝트와 함께 등록합니다.

3단계: AI 및 에이전트 연결
Codex 및 사용하는 다른 어시스턴트들을 연결하세요. Codex가 어떤 제공자로 구성되어 있든 동일한 메모리 항목을 사용할 수 있습니다.

실제적인 변화
첫 번째 차이점은 제공자 전환이 결정 사항을 고립시키지 않는다는 것입니다. 결정 사항들이 특정 제공자만 이어갈 수 있는 세션 안에 갇히지 않습니다.
두 번째는 더 빠른 재시작입니다. 배경 지식이 이미 기록되어 있으므로 새 채팅을 위한 프롬프트를 간결하게 작성할 수 있습니다.
세 번째는 더 쉬운 실험입니다. 작업의 흐름을 잃을 걱정 없이 로컬 모델이나 다른 게이트웨이를 시도해 볼 수 있습니다.
Codex 모델 제공자 전환을 위한 모범 사례
전환하기 전에 업데이트하세요. 제공자 인식 재개 기능은 0.167.0 이상이 필요합니다.
--last로 재개할 때 --all을 사용하세요. 그렇지 않으면 Codex는 현재 디렉토리만 확인합니다.
계속하기 전에 읽으세요. 읽기 전용 기록은 작업이 어디서 멈췄는지 보여줍니다.
준비된 프롬프트를 편집하세요. 전송되지 않은 상태로 편집 가능하므로 중요한 내용을 추가하세요.
동일한 제공자에서 포크하세요. 포크 조회의 필터링은 여전히 제공자 기준입니다.
지속적인 규칙은 AGENTS.md에 보관하세요. 어떤 채팅이나 제공자를 사용하든 로드됩니다.
결론
이전에는 Codex에서 모델 제공자를 전환하면 저장된 채팅이 재개 조회에서 숨겨지거나 열리지 않는 문제가 있었습니다. Codex CLI 0.167.0은 이를 해결했습니다. 이제 모든 제공자의 채팅이 재개 선택기, 이름 기반 조회, resume --last에 나타납니다. 현재 제공자가 재개할 수 없는 채팅은 읽기 전용 기록으로 열리며, 편집 가능한 프롬프트를 통해 새 채팅에서 계속할 수 있는 단축키를 제공합니다. 포크 조회는 여전히 제공자별로 필터링됩니다.
채팅이 여전히 보이지 않는다면 작업 디렉토리, 아카이브된 채팅, 그리고 사용 중인 계정과 Codex 홈을 확인하세요. 새로운 제공자에서 이전 채팅을 이어갈 때는 먼저 기록을 읽고 중요한 결정 사항을 새 프롬프트에 포함시키세요.