ИИ-операции моего фестивального агентства STEZA и продакшна с февраля 2026: агенты, гейты в коде, подтверждение человека
Выпускник мастерской Александра Сокурова, 6 фильмов, больше 50 фестивальных отборов. С февраля 2026 года переписку, заявки, монтаж, публикации и учёт моего агентства STEZA и продакшна ведут ИИ-агенты в Claude Code и Codex, и ни письмо, ни пост, ни заявка не уходят, пока скрипт не проверил адресата и цифры и я не сказал «ок». Ниже системы, которые работают у меня каждый день, с цифрами на дату проверки: такую же связку агентов и проверок могу собрать в вашей команде.
что ищуИИ-операции в компании, обучение команд, ИИ-видео; штат, контракт или проект; Барселона, удалённо и на месте, часовой пояс CET; русский родной, английский рабочий
Claude CodeCodexMCPhooksPythonNodeTelethonlaunchdHetznerFastAPISQLiteborgObsidian
00 · Сводка на 27.10.2026
98%
задач за неделю ушли субагентам по назначению скрипта; главная модель ставила задачу и принимала результат (123 делегирования, 100 приняты с первого раза, 1 возвращено на доработку)
14
хуков-сторожей на уровне среды: письмо или пост уходит только с тикетом, тикет выписывает скрипт
707
автоматических проверок ALL GREEN в открытом MCP-сервере для монтажа
150
приёмка картинок контакт-листами в 150 раз дешевле, чем по одной
11
плановых задач идут без меня по расписанию: ежедневные, недельные и месячные
9
агентов на своём сервере, около 7 евро в месяц по прайсу
00а · Чем могу быть полезен
1
ИИ-операции в компании
Прихожу, смотрю, какую работу люди повторяют изо дня в день (письма клиентам, отчёты, контент, учёт), собираю для неё агентов: агент пишет черновик письма клиенту, скрипт проверяет адресата и цифры, сотрудник нажимает «отправить». Учу команду работать с агентами и остаюсь, пока система не заработает без меня.
2
Обучение команд
Групповые интенсивы и разборы один на один с владельцами и руководителями: как собрать себе рабочего агента, где он должен остановиться и спросить, как измерять его работу.
3
Видео на генеративных моделях
Ролики для брендов и продуктов от настоящих кадров, с удержанием стиля от кадра к кадру и монтажом встык с живой съёмкой. Тизер фильма Grave Stakes - в разделе «Видео» ниже.
Условия работы
направления
ИИ-операции в компании, обучение команд, ИИ-видео
формат
штат, контракт или проект
где
Барселона, удалённо и на месте
часовой пояс
CET
языки
русский родной, английский рабочий
00б · Видео: тизер и генерации
Тизер фильма Grave Stakes: живая съёмка вместе со сгенерированными планами.
Сгенерированные планы для тизера: Seedance 2.5 от кадров настоящей съёмки, апскейл в Topaz. Каждый план 4-10 секунд, без звука.
00в · Схема
одна картинка на все восемь карточек, номера ведут к ним; зелёным выделен я: задача уходит от меня, результат и вердикт возвращаются ко мнеДля инженеров: схема контейнеров (C4)
C4PersonContainerExternal system
01-08 · Карточки систем
Маршрутизатор задач и пирамида моделей
01
task-router.py · 540 строк Python · 0 токенов на маршрутизацию
что это
Каждая задача перед делегированием получает класс (A механика, B тяжёлые вычисления, C закрытая или открытая, D суждение, голос, деньги, наружу) и модель: Fable планирует и принимает ключевое, Opus проверяет и ведёт открытые задачи, Sonnet исполняет, Haiku делает мелкую механику. Класс и модель назначает скрипт по таблице правил, без обращения к модели: ноль токенов.
устройство
Скрипт маршрутизации (task-router.py) знает команды route, outcome, solo, consult, calibrate, status. Самообучение на вердиктах: два провала подряд поднимают тип задачи на ступень выше, понижение только для классов A и B после пяти чистых приёмок, после отката заморозка на 30 дней. Журнал маршрутов: 1965 записей.
в компании это
Выбор модели под задачу по правилам, чтобы счёт за токены не рос: дорогая модель ставит задачу и принимает результат, дешёвые исполняют.
проверка человеком
Приёмку результата субагента делаю я или контролёр на Opus; вердикт записывается и меняет будущие маршруты.
результат
За неделю до 12.10: 161 делегирование (Sonnet 81, Opus 75, главная сессия 5), 130 принято, 2 на доработку, 1 эскалация, 3 провала, 23 консультации наверх. Доля оркестрации 96%.
цены - тарифы API за миллион токенов, вход / выход; источник token-economy.md$ python3 task-router.py status # сокращено
Ни письмо, ни сообщение, ни отклик не уходят из моей системы без тикета. Тикет выписывает скрипт, когда сошлись условия: адресат известен, в тексте нет денег и непроверенных чужих фактов, есть моё «ок».
устройство
Три вида тикетов: красный (один адресат, 30 минут, обязательна дословная цитата моего «ок»), пакетный (6 часов, строго по списку адресов) и зелёный (60 минут, три основания: одобренный шаблон, продолжение живого треда, короткий сервисный ответ). Светофор цены ошибки (risk-gate.py) по умолчанию красный, решает по правилам без модели, учится на вердиктах и инцидентах: инцидент автоматически замораживает основание. Карта заявлений: красный тикет не выдаётся, пока у каждого чужого имени и каждого числа в письме нет строки «откуда взято, кто подтвердил». Перед черновиком агент перечитывает досье адресата: что мы ему уже писали, что обещали, от чего отказались. Догоняющие письма запрещены: ушедшее не правится ни уточнением, ни отзывом.
в компании это
Письма клиентам из отдела продаж: агент пишет, скрипт проверяет адресата и цифры, сотрудник нажимает «отправить».
проверка человеком
Любой денежный маркер в тексте останавливает отправку до отдельной прожарки старшей моделью и моего дословного «ок».
результат
Самопроверка светофора 15 сценариев из 15; 867 решений светофора в журнале; 235 проверенных утверждений (имена, суммы, даты) в досье адресатов; факт отправки подтверждается только на приёмной стороне (папка Sent, сам канал).
$ python3 risk-gate.py selftest
[PASS] service зелёный: exit 0 (ждали 0)
[PASS] сумма прямая: exit 2 (ждали 2)
[PASS] сумма замаскированная (NBSP+ZW): exit 2 (ждали 2)
[PASS] красный маркер «€»: exit 2 (ждали 2)
[PASS] красный домен из списка госорганов: exit 2 (ждали 2)
[PASS] красная копия (cc): exit 2 (ждали 2)
[PASS] service с двумя адресатами: exit 2 (ждали 2)
[PASS] thread без истории: exit 2 (ждали 2)
[PASS] thread с чистой историей: exit 0 (ждали 0)
[PASS] thread с красной историей (any_red): exit 2 (ждали 2)
[PASS] template незарегистрированный: exit 2 (ждали 2)
[PASS] канал telegram: exit 2 (ждали 2)
[PASS] длинный service: exit 2 (ждали 2)
[PASS] вложение в service: exit 2 (ждали 2)
[PASS] дневной лимит: 20 зелёных, следующий exit 2 (ждали 2)
SELFTEST PASS: 15 сценариев, боевое состояние не тронуто
путь письма от черновика до журнала; зелёным выделен хук, который останавливает отправку без свежего тикета
Хуки-сторожа на уровне среды
03
14 регистраций в settings.json · PreToolUse, PostToolUse, Stop, UserPromptSubmit
что это
Проверки, которые среда запускает до и после действий агента. Хук срабатывает до вызова инструмента и блокирует его, если условие не выполнено.
устройство
Наружу. Отправка письма без свежего тикета блокируется; публикация, правка и удаление поста в соцсетях и Telegram без тикета блокируются. outbound-guard, publish-guard
Экономия токенов. Субагент получает предупреждение с 60-го вызова и теряет инструменты на 100-м; субагенты не уходят в фон без явного указания; скриншоты ужимаются до 1568 px; PDF читается текстом вместо картинок. subagent-step-limit, agent-foreground-default, shrink-image, pdf-to-md
Учёба на поправках. Если в сообщении владельца есть маркер поправки («опять», «я же говорил», «обнови скил»), агент получает инструкцию: исправить, записать урок, предложить правку скила; записанный урок напоминает, какой скил им владеет, а правка скила вносится только после повторного прогона старой и новой версии на реальных задачах. correction-detect, lesson-to-skill
Порядок. Агент не создаёт файлы «для чтения владельцем», содержание идёт в чат; в каждый ход вписывается точное время; изменённый скил напоминает о регистрации; после сессии синхронизируется база знаний; перед действием в браузере агент объявляет профиль и адрес аккаунта, скрипт сверяет пару с картой профилей; ответ с файлом без кликабельной ссылки не может закончиться. reader-guard, now-stamp, регистрация скила, синк базы знаний, chrome-profile-guard, links-check
в компании это
Запреты для агентов записаны в настройках среды и проверяются до каждого действия: агент отдела продаж не отправит письмо без выданного разрешения.
проверка человеком
Хук возвращает отказ с инструкцией, что нужно получить (тикет, цитата «ок»), и ход возвращается ко мне.
результат
Без тикета хук блокирует вызов инструмента отправки. Урок аудита 19.09.2026: одна невалидная строка в settings.json молча выключала весь файл вместе с хуками; с тех пор исправность хуков проверяется скриптом (claude doctor) после каждой правки конфига.
Важное решение и каждый текст наружу читают несколько моделей, прежде чем я его приму.
устройство
Внутренний консилиум по схеме DMAD: пять советников-субагентов с разными ролями, адвокат дьявола и председатель; сюда можно секретное. Внешние панели для несекретного: шесть семейств моделей на NVIDIA NIM и шесть моделей на OpenRouter; Codex подключён вторым агентом через самописный MCP-мост. Работоспособность моделей проверяет ежемесячный смоук-тест. Консилиум кадров (с 26.10.2026): каждый кадр, который увидят люди (слайд, сайт, пост, плакат), оценивают три независимых зрячих рецензента разных моделей по шести осям - адекватность, вкус автора, композиция, необычность, приятность, понятность в контексте; оценка на рендере, как увидит зритель; вето на спину как главный объект, лицо, срезанное краем, и фрагмент без контекста; порог - среднее не ниже 4 из 5 и ни одной оценки ниже 3.
в компании это
Второе мнение перед важным решением: ответ ключевому клиенту, договор или стратегию сначала читают несколько моделей с разными ролями, решение остаётся за руководителем.
проверка человеком
Синтез вердиктов делаю я; советы чужих моделей идут в синтез как данные, решение за мной.
результат
Консилиум из 12 агентов и 15 правил в скил укладывается в 15 минут (замер). Копия панели стоит на сервере для агента Hermes.
premiere-claude-bridge: MCP-сервер для Premiere Pro и DaVinci Resolve
Открытый инструмент, через который Claude Code или Codex работают внутри монтажной программы как ассистент монтажёра. Сделан для моего продакшна и выложен в открытый код.
устройство
MCP-сервер на Node с десятью инструментами pr_*: статус, проект, секвенция, таймлайн, выделение, плейхед, маркеры, экспорт в Adobe Media Encoder, произвольный ExtendScript. Python-ядро из 25 модулей: поиск тишины и лучших моментов, сведение звука с ducking, субтитры и проверка расшифровки, цветовой гейт и технический контроль файла, варианты монтажа и правка ручной сборки, передача через XML; адаптеры для Premiere, DaVinci Resolve (Studio Python API) и FCPXML. Бандл для Claude Desktop и server.json для реестра MCP.
в компании это
Монтажёр отдаёт агенту рутину внутри своей программы: разметку, поиск пауз, проверку файла перед сдачей; решения по смыслу и ритму остаются за ним.
проверка человеком
Смысл и ритм монтажа решает режиссёр; каждая ошибка с реального заказа превращается в проверку в коде с тестом.
результат
28 тестовых наборов, 707 проверок, ALL GREEN на 12.10.2026; проверено на реальном материале: 108 исходников, 4,4 ГБ.
Hermes: агент на собственном сервере с узкими правами
06
Hermes Agent v0.20.2 · Hetzner CPX22 · 9 профилей
что это
Круглосуточный агент, который работает при выключенном компьютере: отвечает людям в ботах поддержки, ведёт семейный учёт, присылает утренние сводки.
устройство
Работает под отдельным пользователем без прав root; единственный вход в sudo через узкую обёртку; режим одобрений smart, режим без подтверждений запрещён; ключей от почты в окружении агента нет. Девять изолированных профилей под разные задачи (поддержка экскурсий, касса, курс, продажи, секретарь, архивист и другие). Модели только бесплатные через NVIDIA NIM: основная Nemotron 3 Ultra, запасные DeepSeek и Gemini Flash. Мост с Мака (hermes-task.sh) ставит задачу агенту, не тратя токены главной сессии.
в компании это
Дежурный агент на сервере компании для поддержки клиентов и внутренних сводок, с правами только на свою задачу; сложный вопрос он передаёт сотруднику.
проверка человеком
Сложные вопросы агент передаёт мне в служебный чат.
результат
Сервер по прайсу около 7 евро в месяц, разговор агента с человеком стоит ноль. Пример профиля «Касса»: чек читают две модели независимо, запись идёт только при совпадении итога; регрессионная батарея 33 кейса.
Telegram-канал, ВКонтакте, Instagram и LinkedIn ведутся из одной панели. Кнопки «опубликовать» в ней нет: публикует скрипт, когда есть тикет и моё «ок».
устройство
Панель на FastAPI и SQLite на сервере, планировщик внутри процесса, календарь, редакции текста под каждую площадку. Одобрить пост могу только я, тремя способами: тапом в телеграм-боте, словом в чате с агентом или кнопкой «Одобряю» на странице поста; любая правка текста, картинки или площадок снимает одобрение. До черновика: проверка повторов по TF-IDF против всех постов канала и по карте тем. Перед публикацией: проверка текста скриптом (text-gate.py: личный стоп-лист, лимиты площадки, разметка) и тикет на 30 минут. После: скрипт проверки (tg-verify.py) смотрит настоящий рендер поста, ответ API «ok» доказательством не считается; сторож ленты (tg-scan.py) перечитывает всю ленту через 2 и 15 минут, дубль означает стоп и доклад. Длинный пост с картинкой уходит с моего аккаунта через Telethon (клиент Telegram от имени человека), только с тикетом и моим «ок». Ночной снимок просмотров и утренняя карточка по каналу.
в компании это
Контент-отдел с одной кнопкой у человека: агенты готовят посты под каждую площадку, выпускает только руководитель.
проверка человеком
Агент присылает мне в чат полный текст поста. Я читаю его целиком и пишу «ок» для конкретных площадок. После этого скрипт выписывает тикет, и машина публикует.
результат
История 621 поста импортирована (146 Telegram, 475 ВКонтакте); 212 постов в базе проверки повторов; стилометрический детектор снят после аудита: 18-20% ложных срабатываний на моих же текстах, заменён проверкой повторов и картой тем.
Агент пишет от моего имени по-русски, и качество измеряется долей черновика, которая остаётся после моей правки: сейчас 84% по последним десяти текстам, цель 90%.
устройство
Корпус из 25 подтверждённых авторских текстов (около 6400 слов) с картой происхождения: авторский голос отделён от речи персонажей и чужих цитат. Каждая моя правка записывается парой «его фраза, моя фраза» с датой; из пар выводятся классы ошибок: 6 классов того, что я вычёркиваю, 12 классов того, что исправляю. Класс заводится только при двух и больше примерах, трактовка правки пишется после мини-интервью со мной. Стоп-лист: 15 жёстких правил и 12 предупреждений, только из моих прямых запретов. Перед показом «тест незнакомца»: каждую пару «глагол плюс дополнение» свежий контекст проверяет тремя вопросами.
в компании это
Письма и посты от имени руководителя: агент пишет его голосом, доля правки показывает, насколько точно.
проверка человеком
Я правлю, система учится на парах; весь черновик эталоном не становится.
результат
47 датированных пар в журнале. Выживаемость черновика: цель 90%, сейчас 84%, журнал открыт.
$ метрика выживаемости черновика
среднее по последним 10: 84% (цель >= 90%)
09 · Неделя систем и моя неделя
идёт без меня
ежедневно, около 09:00карточки почты
ежедневно, 09:45вахта фестивальных подач
ежедневно, 10:00робот афиши и медиа книжной витрины
по будням, 10:00 и ежедневно, 10:30вахты по двум клиентским фильмам
по понедельникам, 09:30недельная калибровка светофора и маршрутизатора
по понедельникам, 10:30сверка семейного учёта
по понедельникам и четвергам, 12:20проверка выхода клипов подкаста на приёмной стороне
1-го числа, 09:40 и 10:00смоук-тест панели моделей, месячное закрытие финансов
1-го числа, 11:00разбор ручной рутины: сообщения владельца за 30 дней, что повторяется без скила, скрипта или сторожа
каждую ночь, 03:40снимок просмотров канала
после каждой сессиисинк базы знаний; сервер забирает её каждые 15 минут
по расписанию launchdбэкапы
делаю я
за неделю до 27.10поставил 123 задачи субагентам, принял 100 с первого раза, вернул 1 на доработку, 12 раз консультировался со старшей моделью
каждый текст наружучитаю целиком и говорю «ок»
каждый инцидентразбираю и записываю правило
10 · Сколько заняло
задача
время
кто делал
дата
Три хука-сторожа и прогон точности на 1194 сообщениях
30 мин
сессия
26.10
Разбор чужого Telegram-канала (201 пост) и Instagram, сверка со стеком
9 мин
Sonnet
24.10
Первый месячный разбор рутины: 1193 сообщения, 7 кандидатов в сторожа
12 мин
Fable
24.10
Пакетная правка 18 скилов: 30 уроков, 72 прогона старой и новой версии, судья и приёмка контролёром
1,5 ч
7 подготовщиков Opus, прогоны Sonnet
22.10
Внутренний консилиум из 12 агентов и запись 15 правил в скил
активные часы по транскриптам, паузы короче 15 минут считаются работой
11 · Инцидент → правило → сторож
дата
инцидент
правило
сторож
08.09
стилометрия давала 18-20% ложных срабатываний на моих же текстах
детектор снят
проверка повторов и карта тем
15.09
пост выложен руками при исчерпанном лимите, панель сказала «не вышел»
факт публикации подтверждается только самим каналом
tg-verify.py, чтение канала
15.09
завышенные сроки
срок только по замеру; слово «недели» для скриптовой работы запрещено
таблица замеров time-calibration.md
19.09
одна невалидная строка в конфиге молча выключала все хуки
после каждой правки конфига проверка
claude doctor в brain-doctor.sh
06.10
повторы тем в канале
проверка повторов до черновика
post-dedup.py (TF-IDF) и карта тем
08.10
дубль поста в канале
источник правды - вся лента; дубль означает стоп и доклад
tg-scan.py перечитывает ленту через 2 и 15 минут
14.10
агент открыл задачу не в том профиле браузера (чужой аккаунт)
профиль выбирается по владельцу дела, адрес аккаунта сверяется на странице
chrome-profile-guard.py: без объявленного профиля инструменты браузера закрыты
18.10
файл показан путём, а не ссылкой; правило записано и нарушено через минуту
картинки, видео, документы и папки - только кликабельной ссылкой
links-check.py: ход не заканчивается, пока ссылка не исправлена
21.10
уроки копились в памяти, а скилы не менялись
урок попадает в скил после повторного прогона старой и новой версии на реальных задачах; в пакете из 18 скилов старая версия прошла 40 проверок из 94, новая 94 из 94
lesson-to-skill.sh и skill-tuner
24.10
просьбу «обнови скил» приходилось повторять 27 раз за месяц
поправка владельца сама запускает разбор урока
correction-detect.py
12 · Как это строилось
февраль - август на верхней оси, сентябрь и октябрь крупнее на двух нижних; зелёным отмечены аудиты расхода токенов, после которых появились правило и два хука-сторожа
13 · Ещё в эксплуатации
инструментарий по слоям; зелёным выделен слой правил: его я переношу на любую модель
Операционка фестивального агентства STEZA
Агенты подбирают фестивали, сверяют регламенты и сроки, ведут переписку с отборщиками, готовят заявки; у каждого фильма живая Google-таблица с листами «Статус», «Подачи», «Что нужно от автора», «Материалы», её ведёт консольный клиент Google (gog) без браузера; ежедневная вахта подач плановой задачей.
Память
376 файлов рабочей памяти агента; Obsidian как внешний мозг, 3578 заметок, 1219 в графе и 2646 связей; синхронизация Мак, приватный GitHub, сервер каждые 15 минут; самоосмотр мозга скриптом за 0 токенов.
Скилы
144, из них 109 ленивых; роутер скилов поднимает в контекст один профиль домена и 1-3 инструкции, остальное не грузится; аудит системы скриптами.
$ счётчик скилов: папки и ленивые
folders: 144 lazy: 109
Плановые задачи
11 повторяющихся (утренние карточки почты, вахта фестивальных подач, вахты двух клиентских фильмов, недельная калибровка контуров, сверка кассы, робот афиши книжной витрины, проверка выхода клипов подкаста, месячное закрытие финансов, смоук-тест панели моделей, месячный разбор рутины) и разовые под события; на Маке launchd ведёт бэкапы и ночной снимок канала.
Бэкапы
borg, зашифрованный репозиторий на сервере, 7 дневных, 4 недельных, 6 месячных копий; первый архив 18073 файла, 15,4 ГБ; отдельно базы панели и бота.
Видео
Генерация: Seedance 2.5 очередью скриптом, Veo 3.1 через Google Flow. Обработка: Topaz Video из терминала, расшифровка mlx-whisper, музыка ACE-Step 1.5 локально и Suno. Монтаж: DaVinci Resolve и Premiere через свои наборы скриптов, Remotion для инфографики.
Учёт токенов
token-usage-report.py по журналам сессий; аудиты 14.09 и 19.09.2026 нашли утечки (GUI-циклы субагентов, невалидный settings.json) и закрыли их хуками; контакт-листы по 24 картинки снизили цену приёмки одного кадра в 150 раз.
«Ключи от Барселоны»
Аудиопрогулка по Готическому кварталу в Telegram-боте (Python, aiogram, Docker) с веб-пультом на FastAPI, оплата через Stripe, промокоды, поддержка через агента; 599 тестов у бота и 216 у пульта; предзапись, оплата в тестовом режиме.
14 · Как читать термины
MCP
стандарт, через который агент подключается к программам и данным.
Hooks
проверки, которые среда выполняет до и после каждого действия агента, независимо от текста задачи.
Детерминированный гейт
решение принимает код по правилам, модель в нём не участвует.
Тикет
разовое разрешение на одно действие наружу с ограничением по времени.
Субагент
отдельный экземпляр модели, которому главная сессия поручает одну задачу и у которого принимает результат.
Оркестрация
главная модель ставит задачи и принимает результат, исполняют субагенты; доля оркестрации - процент задач, ушедших субагентам.
Скил
инструкция под один вид работы, которая грузится в контекст агента по требованию.
Токен
единица текста, за которую платят при работе модели; от числа токенов зависит счёт.
Контакт-лист
один лист с 24 уменьшенными кадрами, чтобы принять пачку картинок за один взгляд.
Селфтест
встроенный прогон заранее заданных сценариев: проверяет, что скрипт решает так, как ожидается.
DMAD
схема консилиума с ролями и адвокатом дьявола.
Telethon
библиотека, через которую скрипт пишет в Telegram от имени человека.
launchd
планировщик macOS.
borg
шифрованное резервное копирование с дедупликацией.