Как укротить ИИ-агентов и заставить их работать по правилам
Знакомая ситуация: вы запускаете современный ИИ-инструмент вроде Claude Code или Cursor, просите пофиксить баг, а через пять минут обнаруживаете, что агент переписал половину проекта, удалил тесты и галлюцинирует новыми библиотеками? ИИ-агенты сейчас напоминают талантливых, но гиперактивных стажеров. Им не хватает дисциплины.
Проект Babysitter пытается решить именно эту проблему. Это не просто очередная обертка над LLM, а полноценная система «надзора», которая превращает хаотичную работу агентов в детерминированный процесс.
Зачем нам еще один оркестратор
Когда мы работаем с агентами напрямую, мы полагаемся на их «здравый смысл». Но у нейросетей его нет — есть только вероятностное распределение токенов. Babysitter (что в переводе означает «няня») внедряет в этот процесс жесткую логику на JavaScript.
Проект позволяет описывать воркфлоу как код. Если вы прописали, что перед деплоем нужно прогнать линтер и получить аппрув человека, агент физически не сможет двинуться дальше, пока условия не будут выполнены. Это попытка скрестить гибкость ИИ с надежностью классических CI/CD пайплайнов.
Что умеет эта няня
В основе Babysitter лежит концепция «принудительного послушания». Вот как это работает на практике.
Процесс как код
Вместо того чтобы надеяться на промпт длиной в три экрана, вы пишете обычную JS-функцию. В ней вы явно вызываете задачи (ctx.task), расставляете точки остановки (ctx.breakpoint) и описываете логику проверок. Если скоринг качества кода ниже 80%, процесс вернет агента на шаг назад. Это делает поведение системы предсказуемым.
Журнал событий и детерминизм
Проект ведет иммутабельный журнал всех действий в папке .a5c/runs/. Это киллер-фича для отладки. Если агент где-то «свернул не туда», вы можете изучить историю, понять причину и возобновить выполнение ровно с той же точки. Никаких потерь контекста при перезапуске сессии.
Умное сжатие контекста
LLM стоят дорого, а их «память» ограничена. Разработчики Babysitter встроили в SDK четырехслойную систему компрессии. Она фильтрует выводы командной строки, сокращает избыточные инструкции и кэширует библиотеки. В среднем это экономит от 50% до 67% токенов без потери смысла. Для тех, кто гоняет тяжелые задачи через Claude 3.5 Sonnet, это прямая экономия денег.
Универсальность
Инструмент не привязан к одной IDE. Есть плагины для Claude Code, Cursor, Gemini CLI и даже GitHub Copilot. Если вы не хотите использовать внешние CLI, есть внутренний харнас (internal harness), который позволяет запускать процессы программно, например, внутри вашего CI-пайплайна.
Как это устроено внутри
Архитектура Babysitter строится на разделении «власти» и «исполнения».
Ваш JS-код — это высшая инстанция. Механизм принуждения (Enforcement Mechanism) следит за тем, чтобы агент не выходил за рамки дозволенного. Каждое действие записывается в Event-Sourced журнал. Это похоже на Redux или Kafka, но для действий ИИ-агента.
Интересно реализована система плагинов. В Babysitter плагин — это не просто модуль, а набор инструкций на естественном языке или JS-файлов. Агент сам читает эти инструкции, интервьюирует вас о предпочтениях в проекте и настраивает окружение.
Кому это пригодится
Я вижу несколько сценариев, где Babysitter реально упрощает жизнь:
- Сложные миграции. Когда нужно переписать сотни файлов по определенному шаблону. Агент делает это итерациями, а Babysitter проверяет каждый шаг.
- TDD на стероидах. Вы описываете процесс: «напиши тест -> запусти -> если упал, напиши код -> запусти -> если прошел, рефактори». Агент будет крутиться в этом цикле, пока тесты не позеленеют.
- Безопасность. Можно внедрить обязательные проверки на секреты (gitleaks) или уязвимости перед тем, как агент вообще получит право предложить изменения.
Стоит ли пробовать
Проект сейчас находится в активной фазе (версия в npm — 0.x), и некоторые плагины помечены как экспериментальные. Документация местами лаконична, но идея отделения логики процесса от «мозгов» LLM выглядит очень здравой.
Если вы устали от того, что ИИ-помощники постоянно норовят сломать ваш проект, попробуйте установить SDK:
npm install -g @a5c-ai/babysitter-sdk
Для тех, кто использует Claude Code, установка еще проще:
claude plugin marketplace add a5c-ai/babysitter
Это хороший инструмент для тех, кто хочет перейти от «поигрывания» с нейросетями к серьезной автоматизации разработки, где результат должен быть гарантированным, а не случайным.
