Luminarys AI: безопасные AI-агенты в WebAssembly песочнице | Обзор | AiManual
AiManual Logo Ai / Manual.
03 Апр 2026 Инструмент

Luminarys AI: обзор платформы для безопасных AI-агентов с изоляцией на WebAssembly

Подробный разбор платформы Luminarys AI для создания изолированных AI-агентов на WebAssembly. Сравнение с Docker и LangChain, примеры использования на Rust и Go

Когда агенты должны работать, а не взрывать

Дать AI-агенту доступ к файловой системе — всё равно что доверить управление ядерным реактором голодному еноту. Он не злой. Он просто хочет кушать. И ваш файл .env с ключами API выглядит очень аппетитно.

После волны инцидентов в 2024-2025 годах, когда автономные агенты на GPT-4.5 и Claude 3.7 Opus устроили цифровой погром в корпоративных сетях, вопрос изоляции стал ребром. Все вспомнили про песочницы, но традиционные методы оказались либо слишком дырявыми, либо непозволительно медленными.

Luminarys AI вышел в начале 2026 с простым тезисом: если нельзя доверять агенту, нужно изолировать его навыки, а не запихивать всего агента в клетку. И сделали это на WebAssembly.

Архитектура: WASM не только для браузера

Платформа построена вокруг гетерогенного кластера. Звучит сложно, но на деле это значит, что вы можете запускать агентов на разных железяках — от Raspberry Pi до GPU-серверов. Ядро — рантайм на WebAssembly System Interface (WASI).

На 03.04.2026 WebAssembly вышел далеко за пределы браузера. WASI 0.3 стабилен, а компиляторы Rust и Go генерируют оптимизированный WASM-код, который выполняется с нативным быстродействием.

1 Модули вместо монолитов

Вместо одного агента с доступом ко всему, Luminarys разбивает функциональность на изолированные навыки (skills). Каждый навык — это скомпилированный в WASM модуль на Rust или Go. Агент-оркестратор вызывает эти модули через строго типизированный API.

Хотите, чтобы агент работал с файлами? Подключаете модуль file_ops.wasm с правами только на чтение в директорию /tmp. Нужен доступ к сети? http_client.wasm с белым списком доменов. Если модуль сходит с ума — он упрётся в песочницу WASI и не тронет хост.

Сравнение: не Docker, и не LangChain

Здесь начинается интересное. Люди путают Luminarys с контейнеризацией или фреймворками для агентов. Это ошибка.

Подход Изоляция Запуск агента Главная проблема
Docker/containerd Уровень ядра (номинально) Секунды Вес (~100 МБ), escape-векторы
gVisor/Firecracker Виртуализация ~100 мс Сложность, overhead памяти
LangChain + LangSmith Sandboxes Сетевая прокси Зависит от инфраструктуры Нет изоляции кода, только IO
Luminarys AI WASM + capabilities <1 мс (холодный старт) Нужно компилировать в WASM

Разница фундаментальна. Docker изолирует целый процесс. Luminarys изолирует отдельные функции. Это как разница между тюрьмой для человека и сейфом для его рук. (Странная аналогия, но вы поняли).

По сравнению с Cogitator или другими рантаймами для агентов, Luminarys не пытается быть фреймворком. Это инфраструктурный слой. Вы можете использовать его с любым агентом — хоть на базе GPT-4.5, хоть на открытой модели Qwen2.5-72B.

Пример: агент, который читает логи, но не может их удалить

Допустим, вам нужен агент для мониторинга. Он должен анализировать логи в /var/log, но ни при каких условиях не иметь возможности их стереть или выйти в интернет.

2 Пишем навык на Rust

Создаём модуль с одной экспортируемой функцией analyze_log. Весь код выполняется в песочнице WASI, где файловая система — это виртуальный слой с доступом только к /var/log/app.log.

// skills/log_analyzer/src/lib.rs
use std::fs;
use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn analyze_log(path: &str) -> String {
    // Читаем только указанный файл
    let content = fs::read_to_string(path).unwrap_or_default();
    // Анализируем...
    if content.contains("ERROR") {
        return "Found errors in log".to_string();
    }
    "Logs are clean".to_string()
}

Компилируем в WASM с целевой платформой wasm32-wasi. Получаем файл ~200 КБ.

3 Запускаем в кластере

Развертываем модуль в кластер Luminarys. Конфигурация в YAML определяет capabilities: только чтение одного файла, нет сети, нет доступа к окружению.

# log_skill.yaml
skill:
  name: "log_analyzer"
  wasm_module: "./target/wasm32-wasi/release/log_analyzer.wasm"
  capabilities:
    - "fs:read:/var/log/app.log"
    - "env:none"
    - "net:none"

Агент-оркестратор (например, на Python с использованием SDK Luminarys) вызывает этот навык, когда нужно проверить логи. Если в промпте агента попытаться инжектить команду на удаление файла — модуль просто не имеет на это прав. Физически.

💡
Это решает классическую проблему инъекций в промпты. Даже если агент решает, что нужно удалить "мешающий" лог-файл, навык не может этого сделать. Оркестратор получает ошибку прав и может залогировать инцидент.

Кому подойдёт Luminarys? (Спойлер: не всем)

Берите, если: вы запускаете автономных агентов в продакшене, где есть чувствительные данные. Или если ваши агенты выполняют код, написанный пользователями (например, в AI-ассистентах для разработчиков). Или если вы устали от танцев с бубном вокруг Docker.

Не берите, если: вы делаете прототип за выходные и вам нужно "просто запустить что-то". Или если все ваши агенты — это безобидные чат-боты без доступа к API. Или если вы не готовы компилировать код в WASM (хотя для Go и Rust это одна команда).

Главный недостаток Luminarys на 03.04.2026 — молодость экосистемы. Готовых навыков мало. Придётся писать свои. Но это же и преимущество — вы контролируете каждый байт кода, который выполняет агент.

Что в итоге?

Luminarys AI — это не очередной фреймворк. Это инфраструктурный сдвиг. Вместо того чтобы надеяться, что агент не сломает систему, платформа гарантирует это на уровне архитектуры.

Она сложнее, чем no-code инструменты. Но когда ваш агент на GPT-5 (которая уже на горизонте 2026) получит доступ к продакшен-базе, вы будете спать спокойнее, зная, что его навыки заперты в песочнице из WebAssembly.

Попробуйте, если задумывались о безопасности. Игнорируйте, если считаете, что проблема преувеличена. Но не удивляйтесь, когда следующий инцидент с агентом попадет в новости.

Подписаться на канал