Quick Reference
Cloud chat은 컨테이너와 선택한 branch 또는 commit checkout으로 시작한 뒤, setup, 인터넷 정책, agent 작업 순서로 진행된다. 끝나면 답변과 변경 diff를 검토하고 PR을 만들거나 후속 대화를 이어 간다.
| 설정값 | 넣는 내용 | 잘못 고르면 생기는 문제 |
|---|---|---|
| Setup script | 첫 환경 생성에 필요한 설치와 초기화 | 매 작업마다 무거운 설치를 반복하거나 agent 단계와 상태를 섞는다. |
| Maintenance script | cache를 다시 쓸 때의 가벼운 보정 | 초기 설치를 여기에만 넣으면 새 환경이 준비되지 않는다. |
| Environment variables | setup과 agent 모두 필요한 비밀이 아닌 값 | setup의 export만 믿으면 agent 단계에서 값이 사라진다. |
| Secrets | setup에만 필요한 자격 증명 | agent가 읽어야 하는 값으로 쓰면 agent 단계 전에 제거된다. |
환경 준비와 실행 순서
기본 universal 이미지에는 자주 쓰는 언어와 도구가 들어 있지만, 프로젝트가 요구하는 runtime 버전과 lint·test 도구는 환경에서 명시한다. 일반적인 package manager 프로젝트는 자동 설치를 이용할 수 있고, 별도 도구나 순서가 필요할 때만 setup script를 쓴다.
# setup script: 새 컨테이너를 만들 때 필요한 준비
pip install pyright
poetry install --with test
pnpm installsetup script는 agent와 다른 Bash 세션에서 실행된다. 따라서 export API_BASE_URL=...는 이후 agent 명령에 남지 않는다. 지속할 값은 환경 설정에 등록하거나 ~/.bashrc에 설정한다. 반대로 secret은 암호화되어 task 실행 때만 복호화되며 setup script에서만 사용할 수 있고, agent가 시작하기 전에 제거된다.
인터넷은 setup 단계에서 의존성 설치를 위해 사용할 수 있다. agent 단계의 인터넷은 기본적으로 꺼져 있으며, 필요한 경우에만 제한 또는 unrestricted 접근을 설정한다. setup에서 인터넷이 됐다는 사실로 agent도 외부 API를 호출할 수 있다고 판단하면 안 된다.
Cache와 변경 영향
Codex는 컨테이너 상태를 최대 12시간 cache해 새 chat과 후속 작업을 빠르게 만든다. cache된 컨테이너를 다시 쓸 때 maintenance script를 실행할 수 있으므로, 이전 commit에서 설치한 의존성을 가볍게 맞추는 용도로 적합하다.
cache를 무효화하는 변경
- setup script
- maintenance script
- environment variables
- secrets
저장소 변경 때문에 cache 상태가 맞지 않으면 환경 설정에서 Reset cache를 선택한다.Business와 Enterprise 환경에서는 같은 environment를 쓸 수 있는 사용자 사이에 cache가 공유될 수 있다. 즉 cache 무효화는 개인 작업만 다시 시작하는 조치가 아닐 수 있다. setup script에는 항상 재현 가능한 설치를 두고, 일회성 디버그 명령이나 사용자별 설정을 넣지 않는다.
agent가 읽어야 하는 인증값을 secret으로 옮기거나, agent 인터넷 접근을 setup과 같은 것으로 가정하면 Cloud 작업이 중간에 실패합니다. 값의 수명과 네트워크 단계를 먼저 나눈 뒤 환경을 저장하세요.
참고 링크
2 sources