AI-agenter · Lektion

E2B och molnbaserade sandlådekörningstjänster

E2B SDK, Daytona och hanterade sandlåde-API:er för kodtolkningsagenter.

Lektion 3 av 413 steg

E2B och molnbaserade sandlådekörningstjänster är en gratis lektion i AI-agenter på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för AI-agenter, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AI-agenter innehåller totalt 4 lektioner.

Vad är E2B?

E2B (Environments to Build) är en molntjänst för sandlådor som är särskilt utformad för AI-kodagenter. Den tillhandahåller säkra, isolerade miljöer via ett enkelt Python/JS-SDK utan att ni själva behöver hantera Docker eller VM:er.

Varje sandlåda är en Firecracker-mikro-VM i E2B:s moln.

# 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)

Köra kod i en sandlåda

Objektet Sandbox tillhandahåller metoden run_code(), som kör Python och returnerar strukturerad utdata inklusive stdout, stderr och objekt för rik visning (diagram, dataframes).

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

Hantera fel och undantag

Om koden kastar ett undantag fylls result.error med stackspårningen. Själva sandlådan fortsätter att köras — ni kan skicka uppföljande kod för att rätta till felet.

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)

Ladda upp filer till sandlådan

Använd sandbox.files.write() för att ladda upp datafiler (CSV, JSON, bilder) till sandlådans filsystem innan analyskoden körs.

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']"]

Ladda ner filer från sandlådan

Efter beräkningen hämtar ni utdatafiler (rapporter, diagram, bearbetade data) med sandbox.files.read(). Filen returneras som 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}

Installera paket under körning

E2B-sandlådor levereras med Python installerat. Installera ytterligare paket med run_code() genom att köra ett pip-kommando och använd sedan paketet i efterföljande anrop inom samma sandlåde-session.

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)

Beständiga kontra temporära sandlådor

E2B stöder två lägen för sandlådans livscykel:

  • Temporär: sandlådan förstörs när with-blocket avslutas. Använd detta för engångskörning av kod.
  • Beständig: sandlådan fortsätter att vara aktiv mellan flera förfrågningar. Använd detta när tillstånd behöver byggas upp mellan agentens turer.
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

Återansluta till en sandlåda som körs

Om agentprocessen startas om eller om sandbox_id skickas till en annan tjänst kan ni återansluta till en befintlig sandlåda med dess ID utan att förlora tillståndet.

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()

E2B:s prismodell

E2B tar betalt baserat på sandbox-sekunder — den tid som en sandlåda är aktiv, inte bara den tid då kod körs. Viktiga prisfaktorer:

  • Passiv tid kostar fortfarande om sandlådan är beständig
  • Temporära sandlådor debiteras från skapandet till förstöringen
  • Utgående nätverkstrafik kan debiteras separat
  • Använd timeout för att ange en tidsgräns för automatisk avstängning
# 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

Använda E2B i en agentloop

I en agent med flera turer skapar ni sandlådan en gång och skickar dess ID genom loopen. Varje kodsnutt som LLM:en genererar körs i samma session, så variabler och installerade paket finns kvar mellan turerna.

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

Alternativa molntjänster för sandlådor

E2B är inte det enda alternativet. Andra molntjänster för sandlådor:

  • Modal: serverlösa GPU/CPU-sandlådor, anpassade Docker-avbildningar
  • AWS Lambda: isolerad körning per anrop (Firecracker under huven)
  • Code Interpreter API: OpenAI:s inbyggda sandlåda för ChatGPT-verktyg
  • Daytona: utvecklingssandlådor med Git-integration

Vad händer med variabler när en temporär E2B-sandlåda avslutar sitt kontexthanterarblock?

Det är viktigt att förstå sandlådans livscykel för att avgöra när temporära respektive beständiga sandlådor ska användas i agentkonversationer med flera turer.

Sammanfattning av E2B:s molnsandlådor

E2B tillhandahåller ett enkelt SDK för molnbaserade Firecracker-mikro-VM-sandlådor. Viktiga mönster är temporära sandlådor för engångskörning av kod, beständiga sandlådor för agenter med flera turer, filuppladdning och filnedladdning för data in och ut samt återanslutning via ID för arbetsflöden mellan tjänster.

Avsluta alltid sandlådorna uttryckligen för att undvika onödig debitering.

Gratis att börja

Lär dig AI-agenter med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
60
Lektioner
239

Vanliga frågor

Är lektionen ”E2B och molnbaserade sandlådekörningstjänster” gratis?

Ja – hela texten till ”E2B och molnbaserade sandlådekörningstjänster” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i AI-agenter, kan Ni uppgradera till CoddyKit PRO. Kursen i AI-agenter innehåller totalt 4 lektioner.

Vad lär jag mig i ”E2B och molnbaserade sandlådekörningstjänster”?

E2B SDK, Daytona och hanterade sandlåde-API:er för kodtolkningsagenter. Ni övar på AI-agenter med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig AI-agenter?

Du behöver inga förkunskaper. Utbildningen i AI-agenter på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”E2B och molnbaserade sandlådekörningstjänster”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här AI-agenter-lektionen?

Ja. Varje AI-agenter-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Docker-baserade agent-sandlådor
  2. VM-isolering för kodagenter med höga säkerhetskrav
  3. E2B och molnbaserade sandlådekörningstjänster
  4. Säkerhetsprinciper för kodkörning
← Tillbaka till AI-agenter