Perplexity открыла исходники SPACE (Sandboxed Platform for Agentic Code Execution) — платформы, на которой выполняется каждая задача Perplexity Computer. Код на Rust выложен на GitHub под лицензией Apache 2.0, публичный релиз — 0.8.0. Каждая задача агента получает собственную microVM Firecracker со своим гостевым ядром, а учётные данные и исходящий трафик контролируются снаружи виртуальной машины. Для команд, которые строят агентов для написания кода или работы в браузере, это проверенный в продакшене слой изоляции, который можно развернуть у себя.
Как устроена изоляция
Приложение обращается к HTTP API SPACE, чтобы создать окружение Linux, выполнить команды и получить поток вывода через server-sent events. Шаблон задаёт стартовую файловую систему, а песочница — это экземпляр шаблона со своей VM и записываемым диском; внутри одной песочницы можно выполнить много команд подряд.
Агент работает с правами root внутри гостя, но хост остаётся вне его контроля. Секреты в гостя не попадают: по июльскому инженерному посту Perplexity, учётные данные подставляются на сетевом уровне, а хранилище креденшелов добавляет иерархическое разграничение доступа, лимиты запросов и журналирование. Исходящие соединения проверяет сетевой шлюз на хосте, отдельный для каждой песочницы.
Архитектура делится на четыре части: API с PostgreSQL, контроллеры, worker-сервисы и data plane. Worker-сервисы управляют виртуальными машинами, сетью, томами, шаблонами и учётными данными, а корневую файловую систему создаёт copy-on-write в btrfs.
Пауза, приостановка и восстановление
Песочница проходит четыре состояния: running, paused, suspended и deleted. В paused память VM остаётся в памяти worker-узла — это не долговечный снимок. В suspended снимается снимок памяти VM, состояния среды выполнения и корневой файловой системы, а активные ресурсы освобождаются. По умолчанию песочница уходит в suspended после 6 часов без активности.
За быстрые создания отвечают warm pools из уже загруженных песочниц в развёртываниях Kubernetes; на одном узле вместо них используют base snapshots. В продакшене медианная задержка создания упала с 185 мс до 60 мс по сравнению с прежним провайдером Perplexity, а 90-й процентиль — с 447 мс до 89 мс. По данным компании, 100% сессий Computer работают на SPACE.
Red team: ноль побегов, но дыры в egress-политике
Отчёт «Escaping SPACE: Part I» описывает 216 запусков девяти моделей с root внутри гостя: две задачи и четыре настройки. Ни один из 108 запусков на побег из песочницы не добрался до секрета на стороне хоста. В режиме без сети не прошёл ни один из 54 запусков.
А вот в режиме частичной сети до исправлений политику обходили в 11 из 54 запусков, причём путь нашли четыре модели: Claude Opus 5.0, GPT-5.6 Sol, GPT-5.6 Cyber и Kimi K3. Атаки опирались на подмену DNS и общие IP-адреса CDN. После этого Perplexity добавила проверку адреса источника через nftables, а шлюз теперь завершает TLS и сверяет и SNI, и HTTP host со списком разрешённых. На повторном тесте ни одна модель не дала подтверждённого обхода.
Та же команда проверила 10 сторонних платформ: у 8 нашёлся хотя бы один обход сетевой политики. О результатах сообщили каждому затронутому вендору.
С чем сравнивают и как развернуть
В таблице сравнения Perplexity SPACE стоит рядом с E2B Runtime, microsandbox и Daytona. У SPACE и E2B изоляция — Firecracker microVM на песочницу, лицензия Apache 2.0, но E2B написан на Go. У microsandbox — libkrun microVM на Rust, у Daytona — отдельное ядро на песочницу, причём его публичный репозиторий не поддерживается с июня 2026 года. Egress-контроль с завершением TLS описан только у SPACE; у E2B — nftables и списки SNI/Host, у остальных в таблице не раскрыт.
Для установки нужен хост Linux x86_64 с KVM и доступом к /dev/kvm, а также /dev/net/tun, loop-устройства, btrfs и Docker. Штатный путь — развёртывание в локальном кластере Kind, есть и прямой режим; macOS не поддерживается. Запуск внутри виртуальной машины требует вложенной виртуализации. В репозитории лежит референсное развёртывание в AWS EKS.
Командам, уже работающим на E2B, предлагают обёртку E2B Compatibility Wrapper с проверенной базой — Python-пакетом e2b==2.21.1. Это снижает цену переезда: SDK остаётся прежним, меняется слой исполнения.
Что это значит для тех, кто запускает агентов
Открытие кода переводит спор «изолировать агента или доверять ему» в практическую плоскость: слой изоляции можно поставить на свой хост и проверить самостоятельно. Главный урок red-team не в самой песочнице, а в сетевой политике — обходы шли через DNS и общие адреса CDN, то есть через то, что обычно настраивают небрежно. Если агент ходит наружу, проверять надо не только список доменов, но и адрес источника, SNI и заголовок Host.
Смежные подходы к запуску агентских нагрузок — стек TauGrid от Microsoft для Kubernetes и Webagent от Agent-net, собирающий агента из одного JSON-файла. А тем, кто думает об агенте, который сам ищет уязвимости, полезно посмотреть на набор навыков Mantis от Google.
Частые вопросы
Что именно открыла Perplexity?
Исходники платформы SPACE на Rust под Apache 2.0 — релиз 0.8.0. Это HTTP API плюс server-sent events для создания окружений, выполнения команд и потокового вывода.
Какие требования к хосту?
Linux x86_64 с KVM и доступом к /dev/kvm, плюс /dev/net/tun, loop-устройства, btrfs и Docker. macOS не поддерживается, а запуск в виртуальной машине требует вложенной виртуализации.
Можно ли поставить SPACE на одном сервере без Kubernetes?
Да, есть прямой режим. В Kubernetes для быстрых созданий используют warm pools, а на одном узле — base snapshots.
Где хранятся секреты агента?
Не в гостевой VM. Учётные данные подставляются на сетевом уровне, а хранилище добавляет разграничение доступа, лимиты и аудит.
Насколько безопасна изоляция по итогам тестов?
Ни один из 108 запусков на побег из песочницы не добрался до секрета на хосте. Обходы egress-политики в режиме частичной сети были — 11 из 54 до исправлений, ноль после.
Что делать, если агент уже работает на E2B?
Попробовать E2B Compatibility Wrapper: проверенная база — пакет e2b==2.21.1, SDK остаётся тем же.
Чем SPACE отличается от Daytona и microsandbox?
У SPACE и E2B — Firecracker microVM на песочницу и Apache 2.0. У microsandbox — libkrun, у Daytona — отдельное ядро на песочницу, а публичный репозиторий Daytona не поддерживается с июня 2026 года.
Сколько живёт песочница без активности?
По умолчанию она уходит в suspended через 6 часов простоя. Состояние paused память держит на worker-узле и долговечным снимком не является.
Источник: marktechpost.com