ZeroStack: лёгкий ИИ-агент для кода, где «меньше» значит «лучше»
ZeroStack: Лёгкий AI-агент для кода, который показывает, что меньше — значит лучше
Если вы уже видели, как AI-агент по коду жрёт половину оперативной памяти, пока вы пытаетесь работать, ZeroStack заставит пересмотреть привычные представления о том, сколько ресурсов нужно для нормальной работы.
Проблема избыточного потребления
Большинство AI-инструментов для разработки построены на JavaScript и Node.js. Такая основа обычно приводит к тому, что агент съедает 300+ МБ оперативной памяти, даже когда просто ждёт команд. А если у вас ещё открыт IDE, браузер и база данных, это быстро становится заметно.
ZeroStack пошёл другим путём. Написанный на Rust, он весит всего 8,9 МБ и в работе потребляет 8–12 МБ RAM. Это в 25–40 раз меньше, чем у типичных JS-аналогов. При этом CPU-нагрузка держится на уровне 1,5 %, а в простое на Intel i5 7-го поколения падает до нуля. На батарее или слабом железе такая разница ощущается сразу.
Архитектура, которая не мешает системе
Минимализм здесь — не про урезание функций, а про грамотную реализацию. В компактном коде ZeroStack собраны серьёзные возможности:
Подключение разных провайдеров. Можно работать с OpenAI, Anthropic, Ollama или OpenRouter и переключаться между ними без перезапуска.
Умная работа с файлами и командами. Агент читает, пишет и правит файлы через точечные diff’ы. Bash-команды выполняются с подтверждением, а при желании — в песочнице через bubblewrap. Есть защита от зацикливания: агент не будет бесконечно повторять одну и ту же разрушительную команду.
Сохранение сессий. Можно сохранить состояние и вернуться к работе позже. История диалога автоматически сжимается, чтобы не выходить за пределы контекста модели.
Система разрешений: контроль без лишних кликов
ZeroStack предлагает четыре уровня доступа — от «подтверждать каждое действие» до «полностью доверять». По умолчанию стоит «стандартный» режим: безопасные команды выполняются автоматически, а запись и опасные операции требуют подтверждения.
Настройка гибкая. Можно разрешить автоматическую запись всех .rs-файлов, а для остальных требовать подтверждения. В рамках одной сессии агент запоминает ваши решения, так что не приходится каждый раз нажимать «да».
Удобный терминал
Интерфейс на crossterm сделан с прицелом на реальную работу. Поддерживается Markdown, можно выделять и копировать текст мышью. Есть переключатель отображения рассуждений — можно либо видеть, как агент думает, либо скрыть это для чистоты вывода.
Слэш-команды простые: /model — сменить модель, /thinking — изменить глубину рассуждений, /clear — очистить контекст. Всё выглядит как естественное продолжение разговора, а не как административные команды.
Переключение поведения через промпты
Вместо плагинов и «скиллов» ZeroStack использует готовые промпты. Достаточно ввести /prompt plan, /prompt review-security или /prompt debug, и агент сразу меняет подход к задаче. Можно также положить в корень проекта файл AGENTS.md или CLAUDE.md — агент автоматически подхватит ваши правила и стиль кода.
Расширения и интеграции
Благодаря поддержке MCP можно подключать собственные инструменты. Встроенный поиск Exa даёт агенту возможность работать с вебом без дополнительных зависимостей. Интеграция с Git worktrees позволяет свободно переключаться между ветками проекта.
Как начать
Если у вас уже установлен Rust, установка простая:
export OPENROUTER_API_KEY="ваш_ключ"
zerostack # интерактивный режим
zerostack -p "текст" # однократный запуск
zerostack -c # продолжить последнюю сессию
Для изолированного выполнения команд в Linux можно установить bubblewrap и запускать агент с флагом --sandbox.
Почему это важно
ZeroStack показывает, что эффективность и функциональность не исключают друг друга. Мы привыкли к тяжёлым инструментам, но можно делать мощные вещи и при этом не нагружать систему. Особенно это заметно на слабом железе, ноутбуках и в CI/CD.