Выполнение кода и песочница

Когда ассистент выполняет shell-команду, ячейку Python или сборку — это происходит внутри управляемой песочницы, а не на хосте, который обслуживает API. Эта страница описывает, где идёт выполнение (бэкенды), насколько оно изолировано и какие инструменты использует агент — с параметрами и форматом ответа.

Бэкенд выбирает платформа

Бэкенд исполнения выбирается платформой при развёртывании, а не в запросе к API. Вы пишете одни и те же вызовы инструментов независимо от бэкенда; уровень изоляции — это операционная гарантия, а не параметр.

Бэкенды исполнения

Активный бэкенд задаётся настройкой SANDBOX_BACKEND (список фолбэков через запятую; первый элемент — основной). Все бэкенды предоставляют одинаковый набор инструментов — различаются только изоляция и персистентность.

БэкендЧто этоИзоляцияКогда
e2bУправляемая облачная песочница (по умолчанию)Полная VM-изоляция, ФС на сессиюПо умолчанию для облачных запусков
firecrackermicroVM FirecrackerАппаратная виртуализация, UFFD-память, пул сетиМаксимальная изоляция, быстрый старт
superserveРантайм managed agents-SDKКонтейнер провайдераУправляемое масштабирование
blaxelРантайм managed agents-SDKКонтейнер провайдераУправляемое масштабирование
localЭтот хостBind-jail воркспейса + git staging jailДоверенный self-host / разработка

Изоляция и контейнмент

Контейнерные и microVM-бэкенды работают под профилем контейнмента, а не как голый shell:

  • Файловая тюрьма — доступ к файлам ограничен воркспейсом сессии; выход за пределы корня отклоняется до любого I/O.
  • Egress-прокси — исходящая сеть идёт через контролируемый egress, а не через сырую сеть хоста.
  • ФС на сессию — у каждой сессии свой воркспейс; установленные пакеты и смена cwd сохраняются между вызовами в рамках сессии.
  • Уровень microVM — на firecracker нагрузка идёт в аппаратно-виртуализированной microVM с собственным ядром, изолированной от хоста и других сессий.

local — это не песочница

SANDBOX_BACKEND=local работает на хосте только с bind-jail воркспейса и git staging jail. Используйте для доверенного self-host или разработки — никогда для недоверенного ввода.

Инструменты

sandbox_bash — shell / Python

Разовое выполнение команды в песочнице. Возвращает захваченные потоки и файлы, записанные в воркспейс.

FieldTypeDescription
commandrequiredstringShell-команда для выполнения.
descriptionstringКороткая метка того, что делает команда, напр. 'Установка зависимостей'.
timeout_secondsint (1–3600)Таймаут команды. По умолчанию 60с; повышайте для долгих установок, сборок, экспортов.
cwdstringРабочая директория (напр. /workspace). По умолчанию: домашняя в песочнице.

Возвращает:

ПолеЗначение
stdout / stderrЗахваченные потоки вывода.
exit_codeКод выхода процесса.
truncatedtrue, если вывод обрезан по лимиту размера.
files / file_countФайлы, созданные командой в воркспейсе.
local_pathsКарта файлов воркспейса в извлекаемые пути.

repl_execute — постоянный Python REPL

Jupyter-подобная сессия Python, сохраняющая состояние между вызовами, со встроенными хелперами (peek, grep, chunk_indices, llm_query, FINAL) для работы с большими данными без перезагрузки на каждом шаге.

exec_command — интерактивный терминал (PTY)

Запускает команду в PTY-сессии. Завершившиеся команды сразу возвращают stdout + exit_code; долгоживущие процессы (серверы, REPL, watcher'ы) остаются живыми и возвращают session_id, в который вы пишете через write_stdin.

FieldTypeDescription
commandrequiredstringКоманда для запуска в PTY.
rowsint (1–1000)Строки PTY. По умолчанию 24.
colsint (1–1000)Колонки PTY. По умолчанию 80.
grace_secondsfloatСколько ждать завершения быстрой команды до возврата живого session_id.

Возвращает session_id, pid, stdout, cursor, status, exit_code, alivecursor позволяет следующему чтению продолжить ровно с того места, где остановилось прошлое.

write_stdin — управление живой сессией

Отправляет символы в stdin ещё работающей сессии exec_command и читает свежий вывод. Добавьте \n, чтобы отправить строку.

FieldTypeDescription
session_idrequiredstringSession id из прошлого exec_command, который ещё жив.
inputrequiredstringСимволы в stdin. Добавьте \n, чтобы отправить строку.
sinceintКурсор из прошлого чтения; вернёт только вывод, появившийся после него.
wait_secondsfloatСколько ждать нового вывода до возврата.

edit_file — точечные правки файлов

Search-and-replace правки файлов в песочнице с фолбэком на нечёткое сопоставление, когда целевой текст слегка изменился.

bsl_check — статический анализ 1С (BSL)

Запускает bsl-language-server по коду 1С. Укажите .bsl / .os файл или папку выгрузки конфигурации; возвращает диагностику.

Полный список инструментов

Эта страница покрывает инструменты выполнения кода. Полный каталог по всем категориям (поиск, память, коннекторы, медиа, …) — на странице Агенты → Доступные инструменты.

Была ли страница полезна?