Крюков Роман

Делаю ИИ-ассистентов, которые не выдумывают — от данных до сервера.

Десять лет держу инфраструктуру: сети, Windows и Linux, базы, мониторинг. Последние два года собираю на этом собственные продукты и довожу их до боя.

725ГБ

вернул на переполненном хранилище — простой 16 секунд

0

отклонений маркировки за смену — было 42 934

0,4с

ответ ассистента продавца — было 49 секунд

01

Что я делаю

ИИ-продукты под ключ

От выгрузки из учётной системы до боевого домена. С договором, приёмкой по измеримым критериям и закрывающими документами.

  • Ассистент отвечает строго по данным заказчика — выдумка исключена конструктивно
  • Приёмка задаётся числом заранее, а не «на глаз»
  • Сервер, домен, резервные копии и восстановление — моя часть

Инфраструктура и эксплуатация

Сети, серверы, базы, мониторинг, кассовое и медицинское оборудование. Парки на сотни машин с филиалами в России и СНГ.

  • Разбор аварий до причины, а не до симптома
  • Свои инструменты вместо ручной работы там, где она повторяется
  • Изменения с откатом в один шаг и проверкой после
02

Что я умею строить

механизмы из боевых систем, каждый решает конкретную проблему

Массовые рассылки и доставка

Отзыв рассылки за 48 часов

Идентификатор каждой отправки пишется в момент отсылки, поэтому кампанию можно отозвать целиком. Bot API перечислять свои сообщения не умеет — не записал сразу, не отзовёшь никогда.

10 621 сообщение в одной кампании

Канарейка перед парком

Кампания уходит двумя очередями: сначала несколько сотен адресов, потом вся база. Предохранитель стоит и на технику, и на согласование.

10 957 доставлено, отказов 0

Пул воркеров с токен-бакетом

Двенадцать воркеров и ограничитель скорости вместо паузы в цикле. Исход каждого адреса сохраняется, из него растёт список заблокировавших.

26 326 адресов за 17 минут, сбоев 0

Правильный знаменатель доставки

Доля считается не от списочной базы, а от тех, кому физически можно писать. Иначе здоровая рассылка выглядит провалом.

98,7 % к живой базе против 41 % к списочной

Контент по расписанию и разведка

Сторож, который верит каналу, а не логу

Сверяет очередь дня с публичной страницей поста. Не опубликованное досылает сам, а удалённое человеком не восстанавливает — это чужое решение.

5 слотов из 5, дослано 0

Разведка конкурентов без аккаунта

Сканер читает чужие каналы через публичное веб-превью: без ключей, без личного аккаунта, только чтение. Темы выбираются по факту рынка.

39 каналов, 6 046 постов

Кнопка в рассылке через deep-link

Голая ссылка на бота в письме самого бота мертва — человек уже в этом чате. Работает только полезная нагрузка, и она же даёт атрибуцию перехода.

Опознание чужого водяного знака

Плашку в кадр ставила конкретная модель, а не наша обвязка. Проверяется не логом, а пикселем — сравнением углов кадра.

Экономика на четырёх площадках

Один кошелёк на четырёх мессенджерах

Связывание аккаунтов: вторичный всегда делегирует к владельцу связки, а не суммирует балансы руками. Двойное списание невозможно по построению.

Поставщик переключается из админки

Основной и резервный провайдер лежат в настройке, боты тянут её с кешем. Авария у вендора — одно поле вместо выкатки четырёх сервисов.

Ротация ключей по признаку «кончились деньги»

Ключи живут в таблице, а не в переменных окружения: пополнение не требует рестарта, остаток виден, на 50/20/10 % приходит предупреждение.

Сторож до списания

Если расчётного остатка у поставщика не хватит, запрос отклоняется заранее. Иначе человек платит, ждёт минуту и получает возврат — формально честно, по ощущению сломано.

Деньги и вебхуки

Блокировка строки во всех вебхуках

Платёжный шлюз повторяет доставку. Без блокировки строки два параллельных повтора зачисляют деньги дважды.

правило сверено по 8 репозиториям

Восстановление тарифа из журнала списаний

Поставщик формулу не раскрывает. Решение системы уравнений по журналу даёт не догадку, а доказательство цены.

расхождение 0,05 %

Робот держит баланс вместо человека

Активному ключу поддерживает запас, ушедшему в простой — снижает и возвращает деньги в кошелёк. Наружу это одна стабильная цифра.

352 пользователя, расхождение 0

Платёжные рельсы за флагом

Каждый способ оплаты гасится одним тапом без рестарта и без удаления кода — по нему ещё дотекают выставленные счета.

Качество ответов нейросети

Модель не касается фактов

Карточку печатает код из строки базы, модель пишет одну-две фразы обрамления. Каждое число из её текста обязано встречаться в источнике.

качество модели перестаёт быть риском проекта

Фаззер: покупатель против судьи

Одна модель играет покупателя и генерит живые реплики восьми категорий, другая судит результат. Замена живого трафика, которого у нового продукта нет.

4 круга до нуля промахов

Судья из другой семьи моделей

Разбирает одна модель, судит другая — против склонности хвалить себя. Вердикт не-ок подтверждает второй судья, расхождение наказанием не считается.

согласие с ручной разметкой 91 %

Каскад разбора из четырёх эшелонов

Облако, кеш разбора, локальная модель на процессоре, правила. Кеш здесь не про скорость, а про независимость от поставщика.

19–22 с → 4,9–6,5 с

Права как условие выборки

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

закрыло 14 путей разом

Ослеплённый стенд опаснее упавшего

Правка начала ответа сделала якорные проверки слепыми: прогон позеленел не потому, что стало лучше. Проверять надо способность стенда покраснеть.

Эксплуатация и железо

Каскад проверки кода маркировки

Криптопроверка, при отказе — прямая проверка по локальному модулю, при отказе обоих — блокировка продажи. Ответ кассе согласован с решением шлюза.

42 934 отклонения → 0

Тишина считается относительно соседей

Тревога не по абсолютному порогу, а по сравнению с соседней кассой того же магазина. Утренний спад перестал давать ложные срабатывания.

Прокси между кассой и шлюзом

Перехват на петлевом интерфейсе невозможен, а к вендорскому шлюзу нет доступа. Свой прокси снял эталон обмена байт в байт.

Новая версия на боевой кассе

Кандидат гоняется на том же оборудовании на изолированном порту со своей базой. Боевой тракт при этом не останавливается.

простой раскатки 4,6 с

Бэкап уровня «распаковал и работает»

В архив идут не только данные, но и сборка, зависимости, конфигурации, службы и сертификаты. Проверка — контрольной распаковкой, а не рапортом.

11 секунд, 77 МБ

Обратный ход, запечённый в видео

Кадры вперёд и те же кадры назад одним файлом — петля без стыка там, где видео не умеет играть назад.

1,1 МБ → 452 КБ
03

Работы

«Мелодия сна» · в бою

Ассистент продавца

Диалоговая система поиска по базе знаний. Гибридный поиск: SQL по атрибутам плюс полнотекстовый индекс. Запрос на естественном языке разбирает языковая модель, факты рендерит код из строки базы — выдумка исключена конструктивно. Разграничение доступа к каталогу по учётным записям.

Node 24 · TypeScript · Fastify · SQLite/FTS5 · nginx

RAG · интеграция LLM · кеширование · права доступа · автотесты

Экран подбора по параметрам

Розничная сеть · по найму

Шлюз маркировки

Промышленный шлюз между кассой и государственной системой маркировки. Каскад проверки кода с падением на резервный путь, сторож служб, автосинхронизация справочников, панель наблюдения за парком.

Go · HTTP API · Windows-служба · SQLite

фискальное оборудование · протоколы обмена · отказоустойчивость

скрин снимаю

Своя платформа

Платформа генерации

Генерация изображений и видео на четырёх площадках: два мессенджера, мини-приложение и веб. Единый кошелёк через связывание аккаунтов, реферальная программа, приём платежей и криптооплат, конвейер публикаций.

Python · aiogram · FastAPI · PostgreSQL · Redis · systemd

биллинг · очереди и планировщики · мультиплатформенность

схема

Своя инфраструктура

VPN-инфраструктура

Панель управления и пять узлов в разных странах. Изоляция клиентов, автоматическая выдача и продление подписок, мониторинг доступности, диагностика блокировок по имени сервера и по адресу.

Remnawave · Docker Compose · Xray · nginx

сетевая инженерия · TLS и транспорты · контейнеризация

скрин снимаю

Свой сервис

Кабинет и биллинг

Перепродажа доступа к языковым моделям: рублёвый кошелёк, пул ключей, робот удержания баланса, веб-кабинет с оплатой через систему быстрых платежей и фискальным вебхуком.

Python · FastAPI · PostgreSQL · платёжный API

биллинг · идемпотентность вебхуков · 54-ФЗ

скрин снимаю

Свой сервис · есть платящий клиент

Чат-копирайтер с памятью

Мультитенантный веб-сервис: у каждого клиента своя память о бренде в базе, изоляция проверяется отдельным набором тестов. Два канала к модели с автопереключением, сторожа на границы ответа.

Node · TypeScript · SQLite · nginx

мультитенантность · изоляция данных · контроль качества

ссылка на живой сайт

Сергей Зикин, ведущий

Сайт с конструктором услуг

Статический сайт без единой зависимости: конструктор вечера с реактивной сценой на CSS, приём заявок собственной службой на стандартной библиотеке, локальные шрифты, слой анимации снимается одной строкой.

HTML · CSS · JavaScript · Python (stdlib) · nginx

фронтенд без фреймворков · производительность · адаптив

скрин снимаю

Свой инструмент

Терминал в мессенджере

Агент управления инфраструктурой из телефона: выполнение команд на серверах, голосовой ввод и вывод, длинное окно контекста. Управление парком без ноутбука.

Python · агентный runtime · SSH · systemd

агентные системы · автоматизация эксплуатации

схема

Оптовая торговля · по найму

Парк в четырёх городах

Инфраструктура организации с филиалами, включая зарубежный. Серверы приложений и баз данных, туннели между площадками, резервное копирование, разбор роста временной базы поминутным замером.

Windows Server · MS SQL · MikroTik · SSTP

сети и туннели · базы данных · удалённая диагностика

схема

Сеть медцентров · по найму

Медицинская инфраструктура

Три клиники: рабочие места, серверы, фискальные регистраторы, телефония и медицинское оборудование — томографы, рентген, ультразвук. Обмен с государственными системами здравоохранения.

Windows Server · ViPNet · АТС · ПРОМЕД

медицинские информационные системы · защищённые каналы

схема

Терминальный сервер · по найму

Разбор отказов сервера

Четыре аварийных отказа за полгода разобраны до причины по дампам памяти. Причина сведена к конфликту двух средств защиты с драйверами фильтрации файловой системы.

Windows Server · отладчик ядра · анализ дампов

разбор аварий · доказательная диагностика

инструмент

Свой продукт

Система памяти для агентов

Дисциплина долговременной памяти ИИ-агента: слои хранения, линтер структуры, архивация, сверка записанного с боевым состоянием. Собрана как отдельный продукт на чистой стандартной библиотеке.

Python 3.11 · только stdlib

проектирование инструментов · работа с агентами