Robocikowo>ROBOCIKOWO
Narzędzia deweloperskie

Code Execution

2022AktywnyAktualizacja: 14 sierpnia 2026Opublikowany
Wzorzec, w którym model językowy pisze kod, uruchamia go w izolowanym środowisku (sandbox) i wykorzystuje wynik wykonania do rozwiązania zadania.
Kluczowa innowacja
Pozwala modelowi rozwiązywać zadania przez pisanie i uruchamianie kodu w izolowanym środowisku (sandbox) oraz wykorzystanie wyniku wykonania, zamiast polegać wyłącznie na generacji tekstu.
Kategoria
Narzędzia deweloperskie
Poziom abstrakcji
Wzorzec
Poziom operacji
InferencjaŚrodowisko agentoweTooling
Zastosowania
Analiza danych i obliczenia na plikach (CSV, arkusze)Precyzyjna matematyka i symulacjeGenerowanie wykresów i wizualizacjiKonwersja i przetwarzanie plikówWeryfikacja i uruchamianie kodu przez agentów kodującychRozwiązywanie zadań przez 'program-aided reasoning'

Jak działa

Model otrzymuje narzędzie 'wykonaj kod' (zwykle przez tool/function calling). Gdy zadanie wymaga obliczeń, generuje kod (najczęściej Python), który jest wysyłany do izolowanego środowiska (sandbox: kontener/maszyna wirtualna z limitami CPU/RAM/czasu i kontrolą sieci). Środowisko uruchamia kod, przechwytuje standardowe wyjście, błędy oraz artefakty (pliki, wykresy) i zwraca je modelowi. Model interpretuje wynik: jeśli wystąpił błąd, poprawia kod i próbuje ponownie (pętla iteracyjna), a gdy sukces — używa wyniku w odpowiedzi. Stan (zmienne, wgrane pliki) może być zachowywany między wywołaniami w ramach jednej sesji.

Rozwiązany problem

LLM-y są zawodne w precyzyjnych obliczeniach (arytmetyka, przetwarzanie danych, manipulacja plikami) i nie mają dostępu do deterministycznego środowiska. Code Execution rozwiązuje ten problem, delegując takie zadania do faktycznego interpretera i zwracając zweryfikowany wynik.

Kluczowe mechanizmy

Generacja kodu przez model (zwykle Python)
Izolowane środowisko wykonawcze (sandbox: kontener/VM, limity zasobów)
Udostępnienie jako wbudowane narzędzie w tool/function calling
Przechwytywanie wyjścia, błędów i artefaktów
Iteracyjna pętla poprawek (obserwacja błędu → korekta)
Utrzymywanie stanu sesji (zmienne, pliki)

Mocne strony i ograniczenia

Mocne strony
✓Deterministyczne, weryfikowalne obliczenia zamiast zgadywania
✓Znaczna poprawa dokładności w matematyce i analizie danych
✓Rozszerza możliwości modelu o realne działania (pliki, wykresy)
✓Iteracyjne samopoprawianie na podstawie błędów wykonania
✓Fundament agentów kodujących i asystentów danych
Ograniczenia
✗Ryzyko bezpieczeństwa: uruchamianie kodu generowanego przez model (potrzebny sandbox)
✗Ucieczki z sandboxa, nadużycia zasobów, dostęp do sieci
✗Latencja i koszt utrzymania środowisk wykonawczych
✗Błędny lub niedeterministyczny kod, zależności zewnętrzne
✗Ograniczenia środowiska (brak pakietów, limity czasu/pamięci)

Komponenty

Generator koduDecyzja i generacja

Model tworzący kod (zwykle Python) do wykonania zadania.

Sandbox / środowisko wykonawczeBezpieczne wykonanie

Izolowany kontener/VM z limitami zasobów i kontrolą sieci uruchamiający kod modelu.

Oficjalna

Kanał wyników i artefaktówSprzężenie zwrotne

Przechwytuje stdout, błędy oraz pliki/wykresy i zwraca je do modelu.

Oficjalna

Implementacja

Pułapki implementacyjne
Wykonywanie niezaufanego koduKrytyczna

Kod pochodzi z modelu i może być złośliwy lub błędny; bez izolacji grozi to naruszeniem systemu.

Rozwiązanie:Silny sandbox (kontener/VM), brak/allowlist sieci, limity zasobów, brak sekretów w środowisku.
Ucieczka z sandboxa i nadużycie zasobówWysoka

Nieskończone pętle, wyczerpanie pamięci, próby wyjścia poza izolację.

Rozwiązanie:Twarde limity czasu/pamięci, izolacja jądra, monitoring, jednorazowe środowiska.
Zależności i niedeterminizmŚrednia

Brak pakietów, różne wersje bibliotek czy losowość dają niestabilne wyniki.

Rozwiązanie:Przypięte środowiska, preinstalowane pakiety, ustawianie ziaren losowości.
Wyciek danych przez wynikŚrednia

Duże lub wrażliwe wyniki dołączane do kontekstu zwiększają koszt i ryzyko.

Rozwiązanie:Limity rozmiaru wyników, redakcja/streszczanie, kontrola artefaktów.

Ewolucja

Oryginalny paper · 2022 · ICML 2023 · Luyu Gao
PAL: Program-aided Language Models
Luyu Gao, Aman Madaan, i in. (et al.)
2022
PAL / Program of Thoughts — rozumowanie wspomagane kodem
Punkt przełomowy

Modele generują kod, którego wykonanie daje odpowiedź, poprawiając dokładność w matematyce.

2023
ChatGPT Code Interpreter (Advanced Data Analysis)
Punkt przełomowy

Masowe udostępnienie wykonywania kodu w asystencie: analiza danych, pliki, wykresy.

2023
Otwarte sandboxy (np. E2B)

Powstają otwarte środowiska do bezpiecznego wykonywania kodu generowanego przez LLM.

2025
Code execution jako wbudowane narzędzie (Anthropic, Gemini)

Wykonywanie kodu staje się standardowym narzędziem w API czołowych dostawców i podstawą agentów kodujących.

Hiperparametry (konfigurowalne osie)

Język / runtimeWysoka

Język i środowisko wykonania kodu.

pythonNajpowszechniejszy (analiza danych, obliczenia).
shell/bashOperacje na systemie plików i narzędziach CLI.
Dostęp do sieciKrytyczna

Czy sandbox ma dostęp do internetu.

disabledDomyślnie odcięty dla bezpieczeństwa.
allowlistKontrolowany dostęp do wybranych domen.
Limity zasobówWysoka

Limity CPU, pamięci i czasu wykonania.

timeout, mem capOchrona przed nieskończonymi pętlami i nadużyciami.

Złożoność obliczeniowa

Złożoność czasowa: O(kod). Złożoność przestrzenna: O(stan_sesji + artefakty).

Paradygmat wykonania

Tryb główny
Warunkowy

Kod uruchamiany tylko wtedy, gdy zadanie tego wymaga (decyzja modelu).

Wzorzec aktywacji
Zależne od wejścia

Równoległość

Poziom równoległości
Częściowo równoległy

Wiele niezależnych sandboxów/wywołań może działać równolegle; pojedyncza pętla generacja→wykonanie→poprawka jest sekwencyjna.

Zakres
Inferencja

Wymagania sprzętowe

Podstawowe

Kod (np. analiza danych) wykonywany na CPU w kontenerach/VM.

Dobry fit

Wzorzec niezależny od sprzętu; zależy od środowiska sandbox.