Skip to main content

Cloud Environments

ใช้ environments เพื่อควบคุมสิ่งที่ Codex ติดตั้งและรันระหว่าง cloud tasks ตัวอย่างเช่น เพิ่ม dependencies, ติดตั้ง tools อย่าง linter และ formatter, และกำหนด environment variables

ตั้งค่า environments ได้ที่ Codex settings

วิธีที่ Codex cloud tasks ทำงาน

เมื่อคุณส่ง task:

  1. Codex สร้าง container และ checkout repo ที่ branch หรือ commit SHA ที่เลือก
  2. Codex รัน setup script บวกกับ optional maintenance script เมื่อ container ที่ cache ถูก resume
  3. Codex ใช้การตั้งค่า internet access setup script รันพร้อม internet access agent internet access ปิดโดยค่าเริ่มต้น แต่สามารถเปิด limited หรือ unrestricted access ได้ตามต้องการ ดู agent internet access
  4. Agent รัน terminal command แบบวนซ้ำ แก้ไขโค้ด รันการตรวจสอบ และพยายาม validate งาน ถ้า repo มีไฟล์ AGENTS.md agent จะใช้เพื่อหาคำสั่ง lint และ test เฉพาะของ project
  5. เมื่อ 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 นี้