Wykonywanie kodu w piaskownicy dla agentów programistycznych
Nigdy nie uruchamiaj kodu wygenerowanego przez model na hoście — używaj piaskownic gVisor, Firecracker lub E2B.
Wykonywanie kodu w piaskownicy dla agentów programistycznych to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Dlaczego sandbox?
Agenci kodu (Devin, Claude Code, OpenDevin) uruchamiają kod wygenerowany przez model. Jeśli uruchomi się ten kod na komputerze hosta, model może:
- Odczytać sekrety i klucze API
- Usunąć pliki
- Wykonać wychodzące połączenia sieciowe
- Wydobywać kryptowaluty
Sandbox to izolowane środowisko, które ogranicza szkody.
Poziomy izolacji
| Poziom | Narzędzie | Zastosowanie |
|---|---|---|
| Proces | subprocess + chroot | Niskie bezpieczeństwo, tylko do programowania |
| Kontener | Docker | Przyzwoite ustawienie domyślne |
| VM / microVM | Firecracker, gVisor | Silna izolacja |
| Hostowany sandbox | E2B, Daytona | Najłatwiejsze rozwiązanie produkcyjne |
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.pyIzolacja sieci
--network=none wyłącza ruch wychodzący. W przypadku niektórych zadań potrzebny jest ograniczony dostęp do internetu — należy użyć proxy ruchu wychodzącego z listą dozwolonych hostów.
Limity zasobów
Limity zapobiegają niekontrolowanemu zużyciu CPU i pamięci:
--memory— limit pamięci RAM--cpus— udział CPU--pids-limit— liczba procesów--ulimit— deskryptory plików
Firecracker / gVisor
W celu uzyskania silniejszej izolacji niż w Dockerze:
- Firecracker — microVM firmy AWS używane przez Lambda
- gVisor — jądro w przestrzeni użytkownika firmy Google, będące bezpośrednim zamiennikiem Dockera
- Kata Containers — interfejs Dockera z izolacją maszyn wirtualnych
Hostowany sandbox E2B
E2B (e2b.dev) udostępnia zdalny sandbox za pośrednictwem 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 oferuje podobne możliwości hostowanego sandboxa, ukierunkowane na obszary robocze do programowania.
Sandbox systemu plików
Należy zamontować w trybie odczytu i zapisu tylko to, czego potrzebuje agent; całą resztę należy udostępnić tylko do odczytu albo ukryć:
docker run -v ${PWD}/workdir:/workdir:rw \
-v ${PWD}/readonly:/readonly:ro ...Limity czasu
Należy ograniczyć czas wykonywania w celu ochrony przed nieskończonymi pętlami:
docker run --rm --stop-timeout 30 ... \
python -c 'import resource; resource.setrlimit(resource.RLIMIT_CPU, (30, 30)); exec(open("/work/script.py").read())'Logowanie
Należy rejestrować każde polecenie, każdy wynik i każdą zmianę pliku. W przypadku agentów o wysokiej stawce należy zapisywać w audit logu całą sesję sandboxa.
Sandboxy dla wielu tenantów
Sandboxy przypisane do użytkowników uniemożliwiają wzajemne zanieczyszczanie stanu. Dla każdej sesji należy uruchamiać nowy sandbox, a po jej zakończeniu go usuwać.
Koszt a bezpieczeństwo
Silniejsza izolacja oznacza wyższy koszt (narzut przypadający na maszynę wirtualną). Poziom należy dopasować do ryzyka:
- Samouczek lub funkcja sandboxa dla użytkowników: Docker wystarczy
- Kod produkcyjny korzystający z sekretów: Firecracker / E2B
Blokada połączeń sieciowych
Jak uniemożliwić agentowi kodującemu wykonywanie jakichkolwiek wychodzących połączeń sieciowych?
Podsumowanie
Nigdy nie należy uruchamiać kodu wygenerowanego przez model na komputerze hosta. Poziom izolacji należy dobrać do ryzyka: Docker na potrzeby programowania, a gVisor / Firecracker / E2B na produkcji. Należy ograniczyć użycie procesora, pamięci, czas działania i dostęp do sieci.
Często zadawane pytania
Czy lekcja „Wykonywanie kodu w piaskownicy dla agentów programistycznych” jest bezpłatna?
Tak — pełny tekst „Wykonywanie kodu w piaskownicy dla agentów programistycznych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Wykonywanie kodu w piaskownicy dla agentów programistycznych”?
Nigdy nie uruchamiaj kodu wygenerowanego przez model na hoście — używaj piaskownic gVisor, Firecracker lub E2B. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Wykonywanie kodu w piaskownicy dla agentów programistycznych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Obrona przed prompt injection
- Filtrowanie danych wyjściowych (Llama Guard, NeMo)
- Wykonywanie kodu w piaskownicy dla agentów programistycznych
- Kontrola dostępu do narzędzi