О себе Портфолио Кейсы Услуги Блог Контакт 🎙 Поговорить с AI
EN DE RU
🎙 Поговорить с AI
September 25, 2026 · 2 min read

Как запускать AI-агентов в терминале: реальный опыт с Codewhale и Comanda

Я — Denis Shokhirev, архитектор агентных AI-систем во Фрайбурге, Германия. Мой стек: Claude, Supabase, n8n, Doppler, self-hosted Postgres. Недавно я поймал баг: агент, который должен был автоматически обновлять конфиги в терминале клиента, зависал из-за неправильной обработки stderr. Почему терминальный запуск — не просто игрушка В DACH клиенты часто требуют прозрачности и контроль: не просто “AI где-то в облаке”, а агент, который реально работает в командной строке, с логами, аудитом и возмо

Denis Shokhirev
Denis Shokhirev
Agentic AI Systems Architect
Telegram LinkedIn

Я — Denis Shokhirev, архитектор агентных AI-систем во Фрайбурге, Германия. Мой стек: Claude, Supabase, n8n, Doppler, self-hosted Postgres. Недавно я поймал баг: агент, который должен был автоматически обновлять конфиги в терминале клиента, зависал из-за неправильной обработки stderr.

Почему терминальный запуск — не просто игрушка

В DACH клиенты часто требуют прозрачности и контроль: не просто “AI где-то в облаке”, а агент, который реально работает в командной строке, с логами, аудитом и возможностью мгновенного отката. Для этого я внедрил Codewhale и Comanda — реальные CLI-инструменты для запуска LLM-агентов прямо в терминале.

Структура агентной CLI: что реально работает

Codewhale, Comanda и мой стек

Codewhale — CLI-обёртка для LLM-агентов, которая позволяет запускать инструкции, писать код, тянуть документацию прямо из терминала. Comanda — фреймворк для гибкого управления пайплайнами в shell. Для production я всегда оборачиваю эти агенты в sandbox через Docker или chroot, чтобы минимизировать риски.

Сравнение CLI-стека

Инструмент Главная задача Где подходит Минусы
Codewhale Генерация/исправление кода, документация DevOps, быстрая автоматизация Бывает нестабильным с большими файлами
Comanda Оркестрация shell-команд, пайплайны CI/CD, автоматизация тестов Требует настройки безопасности
n8n Воркфлоу-автоматизация Интеграция API, ETL Не CLI, мало контроля на низком уровне

Безопасность: почему AI-агенты в терминале — это риск

Я трижды встречал одну и ту же уязвимость: LLM-агент генерирует shell-команду, которая не фильтрует пользовательский input. Например, генерация следующего скрипта:

#!/bin/bash
read -p "Введите имя файла: " filename
cat $filename

Если пользователь введёт ; rm -rf /, агент выполнит это. Решение — обязательный static code analysis на каждую сгенерированную команду через semgrep:

semgrep --config=auto --lang=bash ./generated_script.sh

По данным OWASP (2023), 52% инцидентов в CLI-автоматизации связаны с неправильно обработанным input (OWASP Top Ten).

Sandbox, rate limit и audit

  • Каждый агент работает в Docker-контейнере с read-only root.
  • Входные данные валидируются через custom Python-фильтры.
  • Все команды логируются в Postgres через Supabase для аудита.
  • n8n запускает пайплайны только с whitelist-команд.

Реальные примеры: что летит, а что падает

Успешный кейс: автоматизация миграций

Я настроил агента на Codewhale, который по задаче клиента генерирует миграцию для базы — и сразу валидирует её через psql --check, а затем запускает ручной diff:

codewhale "Создать миграцию для добавления поля email"
psql --dbname=clientdb --file=generated_migration.sql --check
diff schema_before.sql schema_after.sql

Результат — за 30 минут сгенерирована и проверена миграция, без вылета в проде.

Провал: неправильная обработка stderr

Агент генерировал shell-команду для копирования логов, но не обрабатывал stderr. В результате при ошибке пайплайн зависал на 18 минут — пока не вмешался вручную. Решение: всегда явно перенаправлять stderr в отдельный лог-файл и анализировать его отдельным агентом.

cp logs/*.log /backup/ 2> error.log
if [ -s error.log ]; then
  cat error.log | codewhale "Объясни ошибку"
fi

Интеграция с Supabase и n8n: хранение и аудит

Все логи агентов пишу в Supabase через REST API, чтобы клиент мог посмотреть историю команд. n8n оркестрирует пайплайны и следит за таймаутами: если агент не отвечает 120 секунд — автокилл и алерт в Slack.

FAQ

Почему не запускать агента только в облаке?

В некоторых проектах требуется прозрачность и контроль: заказчик хочет видеть, что делает агент в их инфраструктуре, а не “где-то в API”. Терминальный запуск — проще для аудита и отката.

Какой минимальный стек для запуска агента?

Codewhale или Comanda, Docker для sandbox, Supabase для логов, n8n для оркестрации. Всё остальное — опционально.

Можно ли запускать несколько агентов в одном терминале?

Да, через tmux или отдельные Docker-контейнеры. Но аудит тогда усложняется — нужен уникальный trace id для каждой сессии.

Как валидировать сгенерированный код?

Минимум — semgrep или bandit по каждому скрипту. Для Python — ещё и gitleaks для поиска ключей.

Что делать при сбое агента?

n8n ловит таймаут, отправляет алерт, логи доступны через Supabase. В критических случаях — ручной откат через сохранённые снапшоты.

В какой части вашего пайплайна чаще всего “сыпется” агент в проде: input sanitation, обработка ошибок, или аудит логов? Напишите — разберём с кейсами. Я бесплатно провожу 30-мин аудит стека для DACH-команд, которые строят AI в сложных рынках. Пишите в LinkedIn или на @ger_dennis_ai.

Читать дальше
Почему ваши AI-агенты не масштабируются: локальная память и оркестрация без облака на примере OpenHuman
Anthropic и OpenAI синхронно снижают цены и ускоряют модели: Opus 5.5 и GPT-6 Sol/Luna — как выбрать для продакшена и не переплатить
372 AI-скилла и 76 экспертов-агентов для любой команды: как быстро внедрить ИИ в проде без лишних затрат
Как подключить свой приватный сервер к ChatGPT и AgentKit без риска утечек: новый tunnel-client от OpenAI
Все статьи →
Где это применяется
Услуги — что мы делаем
Поговорить с голосовым агентом
Кейсы
Готовы к следующему шагу?

Превратить процесс в систему, которая работает

Продакшн-качество, а не демо.

Обсудить проект → ← Все статьи