클라우드 환경
환경을 사용하면 Codex가 클라우드 작업 중 설치하고 실행하는 항목을 제어할 수 있습니다. 예를 들어 의존성을 추가하고, linter와 formatter 같은 도구를 설치하고, 환경 변수를 설정할 수 있습니다.
Codex 클라우드 작업 실행 방식
작업을 제출하면 다음 일이 일어납니다.
- Codex가 컨테이너를 만들고 선택한 브랜치 또는 커밋 SHA에서 저장소를 checkout합니다.
- Codex가 설정 스크립트를 실행합니다. 캐시된 컨테이너를 재개할 때는 선택적으로 유지 관리 스크립트도 실행합니다.
- Codex가 인터넷 접근 설정을 적용합니다. 설정 스크립트는 인터넷 접근이 허용된 상태로 실행됩니다. 에이전트 인터넷 접근은 기본적으로 꺼져 있지만, 필요하면 제한적 또는 무제한 접근을 활성화할 수 있습니다. 에이전트 인터넷 접근을 참고하십시오.
- 에이전트가 터미널 명령을 반복 실행합니다. 코드를 수정하고, 검사를 실행하고, 작업 결과를 검증하려고 시도합니다. 저장소에
AGENTS.md가 있으면 에이전트는 프로젝트별 lint와 테스트 명령을 찾는 데 이를 사용합니다. - 에이전트가 완료되면 답변과 변경한 파일의 diff를 표시합니다. PR을 열거나 후속 질문을 할 수 있습니다.
기본 universal 이미지
Codex 에이전트는 universal이라는 기본 컨테이너 이미지에서 실행됩니다. 이 이미지에는 일반적인 언어, 패키지, 도구가 미리 설치되어 있습니다.
환경 설정에서 Set package versions 를 선택해 Python, Node.js, 기타 런타임 버전을 고정할 수 있습니다.
codex-universal에는 속도와 편의를 위해 여러 언어가 미리 설치되어 있지만, 설정 스크립트를 사용해 컨테이너에 추가 패키지를 설치할 수도 있습니다.
환경 변수와 비밀 정보
환경 변수 는 설정 스크립트와 에이전트 단계를 포함해 작업 전체 기간 동안 설정됩니다.
비밀 정보 는 환경 변수와 비슷하지만 다음 차이가 있습니다.
- 추가 암호화 계층으로 저장되며 작업 실행 중에만 복호화됩니다.
- 설정 스크립트에서만 사용할 수 있습니다. 보안상 비밀 정보는 에이전트 단계가 시작되기 전에 제거됩니다.
자동 설정
일반적인 패키지 관리자(npm, yarn, pnpm, pip, pipenv, poetry)를 사용하는 프로젝트에서는 Codex가 의존성과 도구를 자동으로 설치할 수 있습니다.
수동 설정
개발 설정이 더 복잡하다면 사용자 지정 설정 스크립트를 제공할 수도 있습니다. 예:
# Install type checker
pip install pyright
# Install dependencies
poetry install --with test
pnpm install
설정 스크립트는 에이전트와 별도의 Bash 세션에서 실행되므로 export 같은 명령은 에이전트 단계까지 유지되지 않습니다. 환경 변수를 유지하려면 ~/.bashrc에 추가하거나 환경 설정에서 구성합니다.
컨테이너 캐싱
Codex는 새 작업과 후속 작업 속도를 높이기 위해 컨테이너 상태를 최대 12시간 동안 캐시합니다.
환경이 캐시될 때:
- Codex가 저장소를 clone하고 기본 브랜치를 checkout합니다.
- Codex가 설정 스크립트를 실행하고 결과 컨테이너 상태를 캐시합니다.
캐시된 컨테이너가 재개될 때:
- Codex가 작업에 지정된 브랜치를 checkout합니다.
- Codex가 선택적으로 유지 관리 스크립트를 실행합니다. 설정 스크립트가 오래된 커밋에서 실행되어 의존성을 업데이트해야 할 때 유용합니다.
설정 스크립트, 유지 관리 스크립트, 환경 변수, 비밀 정보를 변경하면 Codex는 캐시를 자동으로 무효화합니다. 저장소 변경으로 캐시된 상태가 호환되지 않게 되면 환경 페이지에서 Reset cache 를 선택합니다.
Business와 Enterprise 사용자의 경우 캐시는 해당 환경에 접근할 수 있는 모든 사용자에게 공유됩니다. 캐시를 무효화하면 워크스페이스에서 그 환경을 사용하는 모든 사용자에게 영향을 줍니다.
인터넷 접근과 네트워크 프록시
의존성 설치를 위해 설정 스크립트 단계에서는 인터넷 접근을 사용할 수 있습니다. 에이전트 단계에서는 인터넷 접근이 기본적으로 꺼져 있지만 제한적 또는 무제한 접근을 구성할 수 있습니다. 에이전트 인터넷 접근을 참고하십시오.
환경은 보안과 악용 방지를 위해 HTTP/HTTPS 네트워크 프록시 뒤에서 실행됩니다. 모든 아웃바운드 인터넷 트래픽은 이 프록시를 통과합니다.