Изолированное выполнение кода для агентов
Никогда не запускайте код, сгенерированный моделью, на основном сервере — используйте изолированные среды gVisor, Firecracker или E2B.
«Изолированное выполнение кода для агентов» — бесплатный урок AI Agents на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Зачем нужна Sandbox?
Агенты для работы с кодом (Devin, Claude Code, OpenDevin) запускают код, сгенерированный моделью. Если запускать этот код на основном компьютере, модель сможет:
- читать секреты и ключи API
- удалять файлы
- выполнять исходящие сетевые вызовы
- майнить криптовалюту
Sandbox — изолированная среда, ограничивающая ущерб.
Уровни изоляции
| Уровень | Инструмент | Назначение |
|---|---|---|
| Процесс | subprocess + chroot | Низкая безопасность, только для разработки |
| Контейнер | Docker | Хороший вариант по умолчанию |
| VM / microVM | Firecracker, gVisor | Надёжная изоляция |
| Размещённая Sandbox | E2B, Daytona | Самый простой вариант для боевой среды |
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.pyИзоляция сети
--network=none отключает исходящий трафик. Для некоторых задач нужен ограниченный доступ к интернету — используйте прокси для исходящего трафика, разрешающий доступ только к определённым узлам.
Ограничения ресурсов
Ограничения предотвращают неконтролируемое потребление CPU и памяти:
--memory— ограничение RAM--cpus— доля CPU--pids-limit— число процессов--ulimit— дескрипторы файлов
Firecracker / gVisor
Для более надёжной изоляции, чем у Docker:
- Firecracker — microVM от AWS, используемая Lambda
- gVisor — ядро в пользовательском пространстве от Google, устанавливаемое вместо Docker без изменения интерфейса
- Kata Containers — интерфейс Docker с изоляцией на уровне VM
Размещённая Sandbox E2B
E2B (e2b.dev) предоставляет удалённую Sandbox через 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 предлагает аналогичные возможности размещённой Sandbox, ориентированные на рабочие пространства разработчиков.
Sandbox файловой системы
Подключайте для чтения и записи только то, что нужно агенту; всё остальное делайте доступным только для чтения или скрывайте:
docker run -v ${PWD}/workdir:/workdir:rw \
-v ${PWD}/readonly:/readonly:ro ...Ограничения времени
Ограничивайте реальное время выполнения, чтобы предотвратить бесконечные циклы:
docker run --rm --stop-timeout 30 ... \
python -c 'import resource; resource.setrlimit(resource.RLIMIT_CPU, (30, 30)); exec(open("/work/script.py").read())'Журналирование
Записывайте каждую команду, каждый вывод и каждое изменение файла. Для агентов с высокими рисками заносите весь сеанс Sandbox в аудиторский журнал.
Изолированные Sandbox для нескольких арендаторов
Отдельные Sandbox для пользователей не позволяют им портить состояние друг друга. Создавайте новую Sandbox для каждого сеанса и удаляйте её после завершения.
Стоимость и безопасность
Более надёжная изоляция означает большие расходы (накладные расходы на каждую VM). Подбирайте уровень с учётом риска:
- Учебный материал или функция Sandbox для пользователей: Docker подходит
- Боевой код, работающий с секретами: Firecracker / E2B
Сетевая блокировка
Как предотвратить любые исходящие сетевые вызовы со стороны агента, работающего с кодом?
Итоги
Никогда не запускайте код, сгенерированный моделью, на основном хосте. Выбирайте уровень изоляции с учётом риска: Docker для разработки, gVisor / Firecracker / E2B для промышленной эксплуатации. Ограничивайте CPU, память, время и сеть.
Часто задаваемые вопросы
Урок «Изолированное выполнение кода для агентов» бесплатный?
Да — полный текст урока «Изолированное выполнение кода для агентов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Изолированное выполнение кода для агентов»?
Никогда не запускайте код, сгенерированный моделью, на основном сервере — используйте изолированные среды gVisor, Firecracker или E2B. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Изолированное выполнение кода для агентов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Защита от внедрения промптов
- Фильтрация вывода (Llama Guard, NeMo)
- Изолированное выполнение кода для агентов
- Контроль доступа к инструментам