Как безопасно запускать код, который написала нейросеть
Представьте, что вы строите сервис, где LLM (например, GPT-4 или Claude) должна не просто отвечать текстом, а писать и сразу выполнять код. Звучит круто, пока не задумываешься о безопасности. Что, если модель решит по ошибке (или нет) выполнить rm -rf / или попытается достучаться до ваших внутренних секретов в переменных окружения?
Обычно разработчики начинают городить свои велосипеды на Docker-контейнерах, пытаются ограничить сеть и права доступа. Это долго, больно и часто небезопасно. Ребята из E2B решили эту проблему, создав готовую облачную инфраструктуру для запуска LLM-агентов.
Что такое E2B на самом деле
Проект E2B — это опенсорсная песочница (sandbox), созданная специально для ИИ-агентов. По сути, это легкие виртуальные машины, которые поднимаются за доли секунды. Внутри такой машины агент может делать что угодно: устанавливать пакеты, анализировать данные, запускать серверы или рисовать графики.
Если вы пользовались Code Interpreter в ChatGPT, то E2B — это примерно то же самое, только в виде API, которое вы можете встроить в свое приложение. У проекта уже больше 12 тысяч звезд на GitHub, и это не накрученный хайп, а реальный спрос на безопасную среду исполнения кода.

Как это работает в коде
Разработчики сделали ставку на простоту. У них есть SDK для Python и JavaScript, так что интегрировать песочницу в проект можно буквально парой строк.
Сначала ставим пакет:
npm i e2b
# или
pip install e2b
А вот так выглядит запуск команды в изолированной среде на Python:
from e2b import Sandbox
with Sandbox.create() as sandbox:
# Запускаем любую bash-команду
result = sandbox.commands.run('echo "Привет из защищенной среды!"')
print(result.stdout)
После выхода из блока with (или завершения процесса в JS) песочница уничтожается вместе со всеми изменениями. Это идеальный stateless-подход.
Код-интерпретатор для анализа данных
Самая интересная часть — это надстройка e2b-code-interpreter. Если обычному Sandbox нужно скармливать bash-команды, то интерпретатор понимает чистый код. Это маст-хэв, если ваш агент должен строить графики или работать с библиотеками вроде pandas и numpy.
Пример на TypeScript:
import { Sandbox } from '@e2b/code-interpreter'
const sandbox = await Sandbox.create()
// Модель сгенерировала код, и мы его тут же выполняем
const execution = await sandbox.runCode('a = 10; b = 20; a * b')
console.log(execution.text) // На выходе получим 200
Интересно, что внутри этих песочниц уже предустановлены многие популярные инструменты, так что не придется тратить время на pip install при каждом запуске.
Почему нельзя просто использовать Docker
Часто спрашивают: «А чем это лучше обычного Docker-контейнера?». Я в своей практике сталкивался с тем, что Docker тяжело масштабировать под тысячи коротких сессий. E2B использует кастомную технологию на базе Firecracker (это те же микро-ВМ, на которых работает AWS Lambda).
Основные отличия, которые я заметил:
- Скорость старта. Песочницы запускаются почти мгновенно, в отличие от тяжелых контейнеров.
- Изоляция. Это не просто ограничение ресурсов, а полноценная виртуализация.
- Готовые инструменты. В песочницу легко прокидывать файлы, открывать порты для временных веб-серверов и отслеживать вывод в реальном времени.
Где это применить
Самый очевидный кейс — это ИИ-аналитик. Вы даете модели CSV-файл, она пишет код на Python для анализа, выполняет его в E2B и возвращает вам результат или картинку с графиком.
Другой вариант — обучающие платформы. Если вы делаете интерактивный курс по программированию, E2B может стать бэкендом для проверки заданий, где код студента запускается в полной изоляции от вашей основной системы.
Как начать пользоваться
У проекта есть облачная версия, где нужно просто взять API ключ и начать работать. Но если вы параноик в плане безопасности или у вас жесткие требования по комплаенсу, E2B можно развернуть у себя.
Они поддерживают self-hosting через Terraform на AWS и Google Cloud. С Azure пока глухо, судя по README, но обещают добавить. Если у вас просто Linux-сервер, придется немного поколдовать с настройками инфраструктуры, так как проект заточен под облачных провайдеров.
Стоит ли пробовать E2B? Если вы просто балуетесь с промптами в консоли — скорее нет. Но если вы строите продукт, где ИИ должен взаимодействовать с реальным миром через код, это сэкономит вам недели разработки инфраструктуры.
Проект подкупает тем, что он не пытается быть «очередным фреймворком для агентов», а решает конкретную инженерную задачу — как дать нейросети терминал и не пожалеть об этом.
С чего начать:
- Загляните в их Cookbook — там куча примеров интеграции с LangChain, Autogen и разными LLM.
- Попробуйте бесплатный тир в их облаке, чтобы почувствовать скорость работы песочниц.
- Посмотрите документацию, она на удивление вменяемая для такого молодого проекта.
