Курьер у двери
«Никто не открывает — оставить у двери?» Курьер ждёт минуту, а не уезжает на склад.
AI-агенту или обычному cron-скрипту нужно спросить разрешение, уточнить деталь или отчитаться? Один HTTP-запрос — и человек получает карточку с кнопками в Telegram или Max. Без своего бота, без вебхуков, без инфраструктуры.
Выкатить v2.4.1 в прод?
Причина: все тесты зелёные, миграций БД нет
Чтобы у агента появился канал связи с человеком, обычно нужно поднять бота, придумать протокол, нарисовать клавиатуры, ограничить доступ и вести журнал. Это недели одинаковой работы у каждого. Мы сделали её один раз.
Агент — не безликий ключ: имя, описание, аватар. Права по 18 ресурсам: нет · чтение · запись · через запрос. «Через запрос» — действие ждёт одобрения человека, разрешение выдаётся разово или на срок.
POST /v1/agent/ask — и собеседник получает карточку с вариантами в Telegram/Max. Агент забирает ответ long-poll'ом: работает из cron, CI и с ноутбука — публичный адрес не нужен.
Агент публикует команды — человек видит кнопки «Выкатить», «Статус», «Откатить» в чате и приложении. Тап — задача уходит агенту. Плюс запуск по расписанию.
Пауза и отзыв одним кликом, kill switch на всех агентов, дневные лимиты, полный журнал: что показали человеку, кто и когда нажал. Всё в кабинете и приложении.
Это просто HTTP. Bash-скрипт в cron, GitHub Actions, Python-демон или LLM-агент — любой код, которому нужно человеческое «да», подключается за минуту. Для AI-агентов есть MCP: Claude Code и Cursor подключаются через OAuth с выбором прав.
Четыре шага. Первый вопрос из вашего кода придёт в мессенджер через несколько минут.
Имя, эмодзи, короткое описание — это то, что человек увидит в карточке. Zapnoty выдаст ключ: им ваш код представляется агентом.
Бесплатный тариф — три агента.
Скрипт в cron, шаг в CI, домашний сервер, LLM-агент. Нужен один HTTP-запрос: агент спрашивает — и ждёт ответа. Публичный адрес не нужен, ответ забирается long-poll.
Для Claude Code и Cursor есть MCP: подключение через OAuth, без единой строки кода.
Собеседники — те, кто получит вопрос и сможет нажать кнопку: вы, коллега, дежурная смена. Остальные агента не увидят и ответить не смогут.
Доступ снимается одним кликом, история решений остаётся.
Карточка приходит в Telegram, Max и приложение Zapnoty: вопрос, кнопки, свободный текст. Нажали — агент продолжил работу, решение записано в журнал.
Не ответили за отведённое время — запрос истекает, агент об этом узнаёт.
curl -s https://api.zapnoty.com/v1/agent/ask \
-H "Authorization: Bearer $KEY" \
-d '{"question":"Выкатить 2.4.1?","options":["Да","Нет"]}'
# → {"request_id":"agrq_3xK…","status":"pending"}
# ждём ответ — соединение держится
curl -s -G -d wait=25 -H "Authorization: Bearer $KEY" \
https://api.zapnoty.com/v1/agent/requests/agrq_3xK…
# → {"status":"answered","answer":"Да"}Спросить и дождаться — два запроса. Ни сервера, ни webhook.
Выкатить 2.4.1 в прод?
Ниже — техническая выжимка на тридцать пунктов. Здесь — то, ради чего агента заводят люди, которые кодом не занимаются.
«Никто не открывает — оставить у двери?» Курьер ждёт минуту, а не уезжает на склад.
Заказ на крупную сумму или с необычным адресом — агент спрашивает подтверждение до отгрузки.
Завтра спишется 4 900 ₽ за сервис, которым не пользовались три месяца. Продлить или отменить?
«Никого нет дома четыре часа — выключить отопление?» Дом предлагает, решаете вы.
Менеджер просит 15% сверх регламента. Вопрос уходит тому, кто решает, — с суммой сделки в карточке.
Сотрудник заболел. Агент спрашивает смену по очереди, пока кто-то не согласится выйти.
«Лекарство принято?», «Показания счётчика передали?» — с ответом, а не просто уведомление в пустоту.
Клиент написал в 23:40. Ответить сейчас, оставить дежурному или отложить до утра?
Бумага и картриджи заканчиваются. Агент показывает корзину и сумму — заказ уходит после вашего «да».
Камера засекла человека ночью. Кадр и две кнопки: «Это свои» или «Вызвать охрану».
Освободилось окно завтра в 15:00. Записать сейчас — пока его не занял кто-то другой?
«Выезд в 8:40, пробки на час — вызвать машину?» Один тап вместо будильника и приложения.
Половина — без всякого AI: cron, CI/CD и bash.
Свой бот — это недели работы: webhook-сервер, протокол вопрос-ответ, клавиатуры, контроль «кто может нажимать», журнал. Здесь всё это уже есть, плюс сразу два мессенджера (Telegram и Max), права по ресурсам и kill switch. Агент подключается одним HTTP-запросом.
Kill switch останавливает всех агентов одной кнопкой: ключи и выданные разрешения целы, все вызовы получают 403 — вернуть можно одним кликом. Отзыв агента мгновенно убивает его ключи. Всё, что агент делал, — в журнале аудита.
Мы храним только то, что нужно для доставки: тексты вопросов, ответы и журнал решений. Логика агента и его данные остаются у вас — мы передаём сообщения, а не исполняем код.
Как обычные сообщения: вопрос человеку — 1 кредит за доставку, ответ и запуск задач — бесплатно. Агенты доступны на всех тарифах, включая бесплатный (3 агента).
Да, это основной сценарий. Ответы и задачи забираются long-poll-запросом — ничего не нужно хостить. Push-вебхуки тоже есть, если у вас сервер.
Да. У агента есть список собеседников — только они получают вопросы и могут отвечать. Плюс режим «пишет только собеседникам» и права по каждому ресурсу API, вплоть до «всё через запрос».
Бесплатный тариф — 3 агента и 100 кредитов в месяц. Карточка в Telegram появится через минуту после регистрации.