Cloud Environments
ใช้ environments เพื่อควบคุมสิ่งที่ Codex ติดตั้งและรันระหว่าง cloud tasks ตัวอย่างเช่น เพิ่ม dependencies, ติดตั้ง tools อย่าง linter และ formatter, และกำหนด environment variables
ตั้งค่า environments ได้ที่ Codex settings
วิธีที่ Codex cloud tasks ทำงาน
เมื่อคุณส่ง task:
- Codex สร้าง container และ checkout repo ที่ branch หรือ commit SHA ที่เลือก
- Codex รัน setup script บวกกับ optional maintenance script เมื่อ container ที่ cache ถูก resume
- Codex ใช้การตั้งค่า internet access setup script รันพร้อม internet access agent internet access ปิดโดยค่าเริ่มต้น แต่สามารถเปิด limited หรือ unrestricted access ได้ตามต้องการ ดู agent internet access
- Agent รัน terminal command แบบวนซ้ำ แก้ไขโค้ด รันการตรวจสอบ และพยายาม validate งาน ถ้า repo มีไฟล์
AGENTS.mdagent จะใช้เพื่อหาคำสั่ง lint และ test เฉพาะของ project - เมื่อ agent เสร็จแล้ว จะแสดงคำตอบและ diff ของไฟล์ที่เปลี่ยน คุณสามารถเปิด PR หรือถามคำถาม follow-up ได้
Default Universal Image
Codex agent รันใน container image เริ่มต้นที่เรียกว่า universal ซึ่งมี language, package และ tools ทั่วไปติดตั้งไว้แล้ว
ใน environment settings เลือก Set package versions เพื่อ pin เวอร์ชันของ Python, Node.js และ runtime อื่นๆ
ดูรายละเอียดสิ่งที่ติดตั้งได้ที่ openai/codex-universal ซึ่งมี reference Dockerfile และ image ที่สามารถ pull มาทดสอบในเครื่องได้
Environment Variables และ Secrets
Environment variables ถูก set ตลอดระยะเวลาของ task ทั้งหมด (รวมถึง setup scripts และ agent phase)
Secrets คล้ายกับ environment variables ยกเว้น:
- เก็บด้วยการ encrypt เพิ่มเติม และถูก decrypt เฉพาะตอนรัน task เท่านั้น
- มีให้ใช้เฉพาะใน setup scripts เท่านั้น ด้วยเหตุผลด้านความปลอดภัย secrets จะถูกลบออกก่อนเข้า agent phase
Automatic Setup
สำหรับ project ที่ใช้ package manager ทั่วไป (npm, yarn, pnpm, pip, pipenv, และ poetry) Codex สามารถ install dependencies และ tools ได้อัตโนมัติ
Manual Setup
ถ้า development setup ซับซ้อนกว่านั้น คุณสามารถระบุ custom setup script เองได้ ตัวอย่างเช่น:
# ติดตั้ง type checker
pip install pyright
# ติดตั้ง dependencies
poetry install --with test
pnpm install
Setup script รันใน Bash session แยกจาก agent ดังนั้นคำสั่งเช่น export จะไม่ถูกส่งต่อไป agent phase เพื่อให้ environment variables คงอยู่ ให้เพิ่มลงใน ~/.bashrc หรือตั้งค่าใน environment settings
Container Caching
Codex cache สถานะ container ไว้นานถึง 12 ชั่วโมงเพื่อเร่งงานใหม่และ follow-up
เมื่อ environment ถูก cache:
- Codex clone repository และ checkout default branch
- Codex รัน setup script และ cache สถานะ container ที่ได้
เมื่อ cached container ถูก resume:
- Codex checkout branch ที่ระบุสำหรับ task
- Codex รัน maintenance script (optional) ซึ่งมีประโยชน์เมื่อ setup script รันบน commit เก่าและต้องอัปเดต dependencies
Codex จะ invalidate cache อัตโนมัติถ้าคุณเปลี่ยน setup script, maintenance script, environment variables หรือ secrets ถ้า repo เปลี่ยนในลักษณะที่ทำให้ cached state ไม่ compatible ให้เลือก Reset cache บนหน้า environment
สำหรับ Business และ Enterprise users cache จะแชร์กันระหว่าง users ทั้งหมดที่เข้าถึง environment ได้ การ invalidate cache จะส่งผลต่อทุก users ของ environment ใน workspace
Internet Access และ Network Proxy
Internet access มีให้ระหว่าง setup script phase เพื่อ install dependencies ระหว่าง agent phase internet access ปิดโดยค่าเริ่มต้น แต่คุณสามารถตั้งค่า limited หรือ unrestricted access ได้ ดู agent internet access
Environments รันผ่าน HTTP/HTTPS network proxy เพื่อความปลอดภัยและป้องกันการใช้งานในทางที่ผิด traffic ขาออกทั้งหมดผ่าน proxy นี้