Саймон Уиллисон гоняет недоверенный Python в песочнице на 362 КБ — а тред оказался картой всех конкурирующих подходов

Чтобы безопасно запускать написанный агентом Python, Уиллисон скомпилировал MicroPython в WebAssembly-бинарник на 362 КБ с лимитами памяти и шлюзованным вводом-выводом — «vibe-coded», альфа, стресс-тестированный против попыток побега GPT-5.5. Тред обнажает переполненное поле и реальный компромисс.

Сборка

Песочница MicroPython, работающая внутри агента Datasette
Песочница MicroPython, работающая внутри агента Datasette

Пост Саймона Уиллисона представляет micropython-wasm, альфа-библиотеку на PyPI для безопасного запуска недоверенного Python: он скомпилировал MicroPython в WebAssembly-бинарник на 362 КБ и управляет состоянием интерпретатора между вызовами через потоки и очереди, так что переменные сохраняются. Он выбрал MicroPython, а не Pyodide, потому что, как он отмечает, Pyodide «может работать только в браузере или Node.js», тогда как лаконичный дизайн MicroPython подходит для ограниченных хостов. Он поставляется с лимитами памяти/CPU и шлюзованным доступом к файлам/сети, с C-биндингами, избирательно открывающими функции хоста. Он честно признаёт, что это «vibe-coded» и альфа — не для задач с высокими ставками, — но говорит, что стресс-тестировал это против попыток побега из песочницы со стороны GPT-5.5. Сценарий: безопасный запуск кода плагинов и агентов внутри его инструментария Datasette/LLM.

Тред становится «соревнованием песочниц»

Самый содержательный ответ предложил другую ставку — полный CPython, а не MicroPython:

«Я использую cpython-wasi-build Бретта Кэннона, работающий внутри WASI-контейнера на Rust с тщательно спроектированным host SDK (например, песочный доступ к Chromium, diff, песочная файловая система, подмножество pandas, чтение PDF …) … ИИ видит цель, план и по сути трактует „пространство задачи“ как Python-ноутбук на WASI». — дата-инженер и CTO, строящий в этой области

Тот комментарий тихо называет компромисс Уиллисона: MicroPython крошечный, но не приносит pandas и остальной научный стек, к которому тянутся реальные агентские задачи. Другие указали на ещё варианты:

«есть ещё monty от pydantic … он на Rust, так что компилируется в wasm». — комментатор, всплывающий Monty от Pydantic

«Мы работаем над решением проблемы „песочница в Wasm“ для нескольких рантаймов … Node.js теперь полностью поддерживается, Python в превью, Rust на подходе». — CTO вендора WebAssembly-компилятора

И справедливый скептик

«Пытаюсь придумать сценарий использования для этого … Не могу придумать ни одного хорошего WASI-кейса». — комментатор, ставящий под вопрос нишу

Что вынести

Заголовок подаёт MicroPython+WASM как тот самый ответ; тред показывает, что это один из ответов в переполненном, быстро движущемся поле — WASI CPython, Monty, коммерческие мульти-рантайм-песочницы. Выбор Уиллисона оптимизирован под след в 362 КБ и беспощадную простоту. Цена — экосистема библиотек, а это ровно то, чего агент, работающий с данными, хватится первым делом. Правильная песочница целиком зависит от того, должен ли ваш недоверенный код быть маленьким или быть способным, — а обычно нельзя иметь и то, и другое.

Получайте такие разборы каждый день

Главные истории Hacker News — на email, в Telegram или RSS.

Следующая новость · 6 из 23 Читать дальше
🚀Tech

Pokémon Emerald в браузере на «100k FPS» — и это не эмулятор, это декомпилированная игра

Заголовок говорит про 100 000 FPS. Настоящая новизна, как указывает низкоуровневый хакер, в том, что это не GBA-эмулятор, гоняющий ROM, — это сообществная декомпиляция самой игры, скомпилированная в WebAssembly. Сохранения работают. Звук — нет. Боевое меню крашится.

★ 294 · 💬 85 · pokeemerald.com · 2 мин