0Pricing
AI Agents · Pelajaran

Layanan Sandbox E2B dan Cloud

E2B SDK, Daytona, dan API sandbox terkelola untuk agen penafsir kode.

Layanan Sandbox E2B dan Cloud adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.

Apa itu E2B?

E2B (Environments to Build) adalah layanan lingkungan terisolasi berbasis komputasi awan yang dirancang khusus untuk agen kode AI. Layanan ini menyediakan lingkungan yang aman dan terisolasi, yang dapat diakses melalui SDK Python/JS sederhana tanpa perlu mengelola Docker atau VM sendiri.

Setiap lingkungan terisolasi merupakan microVM Firecracker di komputasi awan E2B.

# Install the SDK
# pip install e2b-code-interpreter

from e2b_code_interpreter import Sandbox

sandbox = Sandbox()  # creates a new cloud sandbox
print('Sandbox ID:', sandbox.sandbox_id)

Menjalankan Kode dalam Lingkungan Terisolasi

Objek Sandbox menyediakan metode run_code() yang menjalankan Python dan mengembalikan keluaran terstruktur, termasuk keluaran standar, galat standar, dan objek tampilan kaya (grafik, DataFrame).

from e2b_code_interpreter import Sandbox

with Sandbox() as sandbox:
    result = sandbox.run_code('print(2 ** 10)')
    print(result.logs.stdout)   # ['1024']
    print(result.error)         # None if no error

Menangani Galat dan Pengecualian

Jika kode memunculkan pengecualian, result.error akan berisi pelacakan tumpukan. Lingkungan terisolasi itu sendiri tetap berjalan — Anda dapat mengirim kode lanjutan untuk memperbaiki galat tersebut.

from e2b_code_interpreter import Sandbox

with Sandbox() as sandbox:
    result = sandbox.run_code('1 / 0')

    if result.error:
        print('Error name:', result.error.name)    # ZeroDivisionError
        print('Traceback:', result.error.traceback)
    else:
        print(result.logs.stdout)

Mengunggah Berkas ke Lingkungan Terisolasi

Gunakan sandbox.files.write() untuk mengunggah berkas data (CSV, JSON, gambar) ke sistem berkas lingkungan terisolasi sebelum menjalankan kode analisis.

from e2b_code_interpreter import Sandbox

csv_content = 'name,score\nAlice,95\nBob,87\nCarol,92'

with Sandbox() as sandbox:
    sandbox.files.write('/home/user/data.csv', csv_content.encode())

    result = sandbox.run_code(
        'import csv\n'
        'rows = list(csv.DictReader(open("/home/user/data.csv")))\n'
        'print([r["name"] for r in rows])'
    )
    print(result.logs.stdout)   # ["['Alice', 'Bob', 'Carol']"]

Mengunduh Berkas dari Lingkungan Terisolasi

Setelah komputasi selesai, ambil berkas keluaran (laporan, grafik, data yang telah diproses) dengan sandbox.files.read(). Berkas tersebut dikembalikan sebagai byte.

from e2b_code_interpreter import Sandbox
import json

with Sandbox() as sandbox:
    sandbox.run_code(
        'import json\n'
        'result = {"mean": 91.3, "max": 95}\n'
        'json.dump(result, open("/home/user/output.json", "w"))'
    )
    data = sandbox.files.read('/home/user/output.json')
    parsed = json.loads(data)
    print(parsed)  # {'mean': 91.3, 'max': 95}

Memasang Paket Saat Eksekusi

Lingkungan terisolasi E2B sudah dilengkapi Python. Pasang paket tambahan dengan run_code() melalui perintah pip, lalu gunakan paket tersebut dalam pemanggilan berikutnya di sesi lingkungan terisolasi yang sama.

from e2b_code_interpreter import Sandbox

with Sandbox() as sandbox:
    # Install pandas inside the sandbox
    sandbox.run_code('import subprocess; subprocess.run(["pip", "install", "pandas", "-q"])')

    # Now use pandas
    result = sandbox.run_code(
        'import pandas as pd\n'
        'df = pd.DataFrame({"x": [1,2,3], "y": [4,5,6]})\n'
        'print(df.describe())'
    )
    print(result.logs.stdout)

Lingkungan Terisolasi Sementara versus Persisten

E2B mendukung dua mode siklus hidup lingkungan terisolasi:

  • Sementara: lingkungan terisolasi dihancurkan saat blok with selesai. Gunakan untuk eksekusi kode sekali jalan.
  • Persisten: lingkungan terisolasi tetap aktif di antara beberapa permintaan. Gunakan saat keadaan perlu terakumulasi di antara giliran agen.
from e2b_code_interpreter import Sandbox

# Ephemeral (default context manager)
with Sandbox() as sb:
    sb.run_code('x = 42')
# Sandbox destroyed here

# Persistent: keep alive for N seconds
sb = Sandbox(timeout=300)  # keep alive 5 minutes
try:
    sb.run_code('import numpy as np')  # expensive import cached
    sb.run_code('arr = np.arange(1000)')
    result = sb.run_code('print(arr.mean())')
    print(result.logs.stdout)
finally:
    sb.kill()  # explicit cleanup

Menyambungkan Kembali ke Lingkungan Terisolasi yang Berjalan

Jika proses agen dimulai ulang atau ID lingkungan terisolasi diteruskan ke layanan lain, Anda dapat menyambungkan kembali ke lingkungan terisolasi yang sudah ada menggunakan ID-nya tanpa kehilangan keadaan.

from e2b_code_interpreter import Sandbox

# First session
sb1 = Sandbox(timeout=300)
sb1.run_code('accumulated_data = []')
sandbox_id = sb1.sandbox_id
print('Created:', sandbox_id)

# Later — different process, same sandbox
sb2 = Sandbox.connect(sandbox_id)
result = sb2.run_code('accumulated_data.append(1); print(accumulated_data)')
print(result.logs.stdout)  # '[1]' — state preserved

sb2.kill()

Model Penetapan Harga E2B

E2B mengenakan biaya berdasarkan detik lingkungan terisolasi — waktu lingkungan terisolasi tetap aktif, bukan hanya saat kode berjalan. Faktor utama penetapan harga:

  • Waktu tidak aktif tetap dikenai biaya jika lingkungan terisolasi bersifat persisten
  • Lingkungan terisolasi sementara ditagih sejak dibuat hingga dihancurkan
  • Pengiriman data jaringan keluar mungkin ditagih secara terpisah
  • Gunakan timeout untuk menetapkan batas waktu penghentian otomatis
# Cost-optimization patterns:

# 1. Use short timeouts for one-shot executions
with Sandbox(timeout=60) as sb:
    result = sb.run_code('print("done")')
    # Auto-kills after 60s if not killed first

# 2. Kill immediately after use
sb = Sandbox()
try:
    sb.run_code('process_data()')
finally:
    sb.kill()   # don't wait for timeout

# 3. Share one sandbox across multiple agent steps
#    instead of creating a new one per step

Menggunakan E2B dalam Perulangan Agen

Dalam agen dengan banyak giliran, buat lingkungan terisolasi satu kali dan teruskan ID-nya di sepanjang perulangan. Setiap cuplikan kode yang dihasilkan LLM dijalankan dalam sesi yang sama, sehingga variabel dan paket yang dipasang tetap ada di antara giliran.

from e2b_code_interpreter import Sandbox
import openai

client = openai.OpenAI(api_key='YOUR_OPENAI_KEY')

def run_agent(user_question: str):
    with Sandbox(timeout=120) as sb:
        messages = [{'role': 'user', 'content': user_question}]

        for _ in range(5):  # max 5 turns
            resp = client.chat.completions.create(
                model='gpt-4o', messages=messages,
                tools=[{'type': 'function', 'function': {
                    'name': 'run_python',
                    'description': 'Execute Python in a secure sandbox',
                    'parameters': {'type': 'object',
                                   'properties': {'code': {'type': 'string'}},
                                   'required': ['code']}
                }}]
            )
            msg = resp.choices[0].message
            if msg.tool_calls:
                code = eval(msg.tool_calls[0].function.arguments)['code']
                result = sb.run_code(code)
                messages.append({'role': 'tool',
                                  'tool_call_id': msg.tool_calls[0].id,
                                  'content': str(result.logs.stdout)})
            else:
                return msg.content

Layanan Lingkungan Terisolasi Awan Alternatif

E2B bukan satu-satunya pilihan. Layanan lingkungan terisolasi awan lainnya:

  • Modal: lingkungan terisolasi GPU/CPU tanpa server, citra Docker khusus
  • AWS Lambda: isolasi eksekusi pada setiap pemanggilan (Firecracker di balik layar)
  • Code Interpreter API: lingkungan terisolasi bawaan OpenAI untuk alat ChatGPT
  • Daytona: lingkungan terisolasi pengembangan dengan integrasi Git

Apa yang terjadi pada variabel ketika lingkungan E2B sementara keluar dari blok pengelola konteksnya?

Memahami siklus hidup lingkungan terisolasi sangat penting untuk menentukan kapan harus menggunakan lingkungan terisolasi sementara atau persisten dalam percakapan agen dengan banyak giliran.

Ringkasan Lingkungan Terisolasi Awan E2B

E2B menyediakan SDK sederhana untuk lingkungan terisolasi microVM Firecracker yang dihosting di komputasi awan. Pola utamanya meliputi lingkungan terisolasi sementara untuk kode sekali jalan, lingkungan terisolasi persisten untuk agen dengan banyak giliran, pengunggahan/pengunduhan berkas untuk memasukkan dan mengeluarkan data, serta penyambungan kembali berdasarkan ID untuk alur kerja lintas layanan.

Selalu hentikan lingkungan terisolasi secara eksplisit agar tidak terkena tagihan yang tidak perlu.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Layanan Sandbox E2B dan Cloud” gratis?

Ya — teks lengkap “Layanan Sandbox E2B dan Cloud” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Layanan Sandbox E2B dan Cloud”?

E2B SDK, Daytona, dan API sandbox terkelola untuk agen penafsir kode. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Agents?

Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Layanan Sandbox E2B dan Cloud” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?

Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Sandbox Agen Berbasis Docker
  2. Isolasi VM untuk Agen Kode dengan Keamanan Tinggi
  3. Layanan Sandbox E2B dan Cloud
  4. Kebijakan Keamanan untuk Eksekusi Kode
← Kembali ke AI Agents