การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก
อย่าเรียกใช้โค้ดที่โมเดลสร้างขึ้นบนเครื่องโฮสต์ของคุณโดยเด็ดขาด ให้ใช้แซนด์บ็อกซ์ gVisor, Firecracker หรือ E2B
การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
เหตุใดจึงต้องใช้ Sandbox
เอเจนต์โค้ด (Devin, Claude Code, OpenDevin) เรียกใช้โค้ดที่โมเดลสร้างขึ้น หากคุณเรียกใช้โค้ดนั้นบนโฮสต์ของคุณ โมเดลอาจ:
- อ่านข้อมูลลับหรือคีย์ API ของคุณ
- ลบไฟล์
- เรียกเครือข่ายภายนอก
- ขุดคริปโต
Sandbox คือสภาพแวดล้อมที่แยกออกมาและจำกัดความเสียหาย
ระดับการแยกออกจากกัน
| ระดับ | เครื่องมือ | การใช้งาน |
|---|---|---|
| กระบวนการ | subprocess + chroot | ความปลอดภัยต่ำ ใช้เฉพาะในงานพัฒนา |
| คอนเทนเนอร์ | Docker | ค่าเริ่มต้นที่เหมาะสม |
| VM / microVM | Firecracker, gVisor | การแยกที่รัดกุม |
| Sandbox ที่ให้บริการโฮสต์ | E2B, Daytona | ใช้งานจริงได้ง่ายที่สุด |
Docker Sandbox Basics
docker run \
--rm \
--network=none \
--memory=512m \
--cpus=0.5 \
--read-only \
--user=nobody \
-v /tmp/work:/work:rw \
python:3.11-slim \
python /work/script.pyการแยกเครือข่าย
--network=none จะปิดการรับส่งข้อมูลขาออก สำหรับงานบางอย่างที่จำเป็นต้องใช้อินเทอร์เน็ตแบบจำกัด ให้ใช้พร็อกซีขาออกที่อนุญาตเฉพาะโฮสต์ที่กำหนด
ขีดจำกัดทรัพยากร
ขีดจำกัดช่วยป้องกันการใช้ CPU หรือหน่วยความจำเกินควบคุม:
--memory— ขีดจำกัด RAM--cpus— สัดส่วน CPU--pids-limit— จำนวนกระบวนการ--ulimit— ตัวอธิบายไฟล์
Firecracker / gVisor
สำหรับการแยกที่รัดกุมกว่า Docker:
- Firecracker — microVM โดย AWS ซึ่งใช้ใน Lambda
- gVisor — เคอร์เนลในพื้นที่ผู้ใช้โดย Google ใช้แทน Docker ได้โดยตรง
- Kata Containers — ประสบการณ์ใช้งานแบบ Docker พร้อมการแยกด้วย VM
Sandbox ที่โฮสต์โดย E2B
E2B (e2b.dev) มอบ Sandbox ระยะไกลผ่าน API:
# pip install e2b
import e2b
sandbox = e2b.Sandbox(template='python', api_key='...')
result = sandbox.run_code('print(2 + 2)')
print(result.stdout) # '4'
sandbox.close()Daytona
Daytona นำเสนอความสามารถของ Sandbox ที่โฮสต์ในลักษณะเดียวกัน โดยมุ่งเน้นพื้นที่ทำงานสำหรับการพัฒนา
Sandbox ของระบบไฟล์
เมานต์เฉพาะสิ่งที่เอเจนต์จำเป็นต้องอ่านและเขียน ส่วนอื่นทั้งหมดให้เป็นแบบอ่านอย่างเดียวหรือซ่อนไว้:
docker run -v ${PWD}/workdir:/workdir:rw \
-v ${PWD}/readonly:/readonly:ro ...ขีดจำกัดเวลา
กำหนดขอบเขตเวลาการทำงานจริงเพื่อป้องกันลูปที่ทำงานไม่สิ้นสุด:
docker run --rm --stop-timeout 30 ... \
python -c 'import resource; resource.setrlimit(resource.RLIMIT_CPU, (30, 30)); exec(open("/work/script.py").read())'การบันทึกข้อมูล
บันทึกทุกคำสั่ง ทุกผลลัพธ์ และทุกการเปลี่ยนแปลงไฟล์ สำหรับเอเจนต์ที่มีความเสี่ยงสูง ให้บันทึกตรวจสอบเซสชัน Sandbox ทั้งหมด
Sandbox แบบหลายลูกค้า
Sandbox แยกต่อผู้ใช้ช่วยป้องกันไม่ให้ผู้ใช้ทำลายสถานะของกันและกัน โปรดสร้าง Sandbox ใหม่สำหรับแต่ละเซสชัน แล้วลบทิ้งเมื่อเสร็จสิ้น
ค่าใช้จ่ายเทียบกับความปลอดภัย
การแยกที่รัดกุมขึ้นย่อมมีค่าใช้จ่ายสูงขึ้น (ค่าใช้จ่ายส่วนเกินต่อ VM) โปรดเลือกระดับให้เหมาะกับความเสี่ยง:
- บทเรียนหรือฟีเจอร์ Sandbox สำหรับผู้ใช้: Docker ก็เพียงพอ
- โค้ดใช้งานจริงที่เข้าถึงข้อมูลลับ: Firecracker / E2B
การปิดกั้นเครือข่าย
คุณจะป้องกันไม่ให้เอเจนต์โค้ดส่งคำขอออกไปยังเครือข่ายได้อย่างไร
สรุปทบทวน
ห้ามเรียกใช้โค้ดที่โมเดลสร้างบนเครื่องโฮสต์ของคุณ เลือกระดับการแยกตามความเสี่ยง: ใช้ Docker สำหรับการพัฒนา และใช้ gVisor / Firecracker / E2B สำหรับการใช้งานจริง จำกัด CPU หน่วยความจำ เวลา และเครือข่าย
คำถามที่พบบ่อย
บทเรียน “การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก”
อย่าเรียกใช้โค้ดที่โมเดลสร้างขึ้นบนเครื่องโฮสต์ของคุณโดยเด็ดขาด ให้ใช้แซนด์บ็อกซ์ gVisor, Firecracker หรือ E2B คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การป้องกันการแทรกคำสั่ง
- การกรองผลลัพธ์ (Llama Guard, NeMo)
- การเรียกใช้โค้ดของเอเจนต์ในสภาพแวดล้อมแยก
- การควบคุมการเข้าถึงเครื่องมือ