Короткая разминка перед курсом: ты не будешь учить абстрактную теорию агентов — ты получишь имена для того, что уже месяц живёт и дышит на твоём сервере. И честный контракт: как курс маркирует цифры, которым можно доверять.
Урок 0.1 — «Твой завод — это уже организм»
Первое, что нужно снять с плеч: ты не «не технарь, который сейчас будет с нуля учить программирование агентов». Ты — человек, который за месяц с помощью ИИ построил и вырастил живую систему. Она уже дышит: конвейер берёт нишу, превращает её в тему, тема — в сценарий, сценарий — в голос и картинки, картинки — в готовое видео, видео получает обложку и SEO-упаковку, и после твоего «да» улетает на YouTube. Это не метафора для красоты — это буквально то, как работает любой сложный организм: много специализированных частей, каждая делает своё дело, все связаны общей средой и общими сигналами.
В медицине ты точно знаешь: организм — это не одна большая программа, которая «умеет всё». Это печень, которая фильтрует, сердце, которое качает, гиппокамп, который запоминает, иммунитет, который отбраковывает чужеродное. Каждый орган узкоспециализирован, и именно поэтому целое работает надёжно. Твой завод устроен ровно так же: 16 с лишним сервисов-органов — channel-hq, memory-bank, thumbnail-studio, resource-governor, channel-forge, moss-lab и другие — каждый закрывает одну конкретную функцию и разговаривает с остальными через общую «кровеносную сеть» с говорящим именем factory. Как и в теле, сервисы не знают IP-адресов друг друга наизусть — они находят друг друга по имени, как органы находят друг друга через нервные пути и гормоны, а не по «координатам».
Этот курс не будет учить тебя «агентам» как чужой незнакомой теме. Он будет брать термин из индустрии — и тут же показывать пальцем: «вот он, у тебя на сервере, вот его порт, вот файл, который им управляет». Одна честная деталь на старте: сегодня твой организм — это ещё не полностью автономное существо, а скорее пациент на аппарате с двумя ручными переключателями. Курс — это мост от такого «организма под наблюдением врача» к организму, который живёт и принимает решения ночью сам, обращаясь к тебе только тогда, когда речь идёт о деньгах.
Технически: завод — это микросервисная архитектура из ~16+ docker-контейнеров на общей внешней сети factory, резолвящих друг друга по имени контейнера (http://memory-bank:4600), а не по IP. Снаружи — единая точка входа через Caddy + SSO-cookie (*.rbrstack.com); прямые порты сервисов торчат только на 127.0.0.1. Конвейер — линейный workflow из 10 стадий (⓪ FORGE → ① ENTRY → … → ⑨ LEARNING), где порядок шагов фиксирован кодом, а не решается моделью «на лету» — этим он отличается от полноценного агента, и об этом отдельно Модуль 1. «Мозг» системы — не набор API-ключей, а подписка Claude через CLI claude -p с мульти-аккаунт failover; это архитектурное решение, не деталь реализации.
Оркестратор (channel-hq/core/orchestrator.mjs) физически существует в коде, но выключен по умолчанию — сейчас переходы между стадиями по большей части дирижирует человек через UI и два гейта: EDIT_PENDING и APPROVAL_PENDING.
Для любопытных
Полный реестр органов (сокращённо): channel-hq (8030, оркестрация + аплоад), memory-bank (4600, три банка памяти), thumbnail-studio (8015, обложки + Haiku vision QC), channel-forge (8120, ниша → концепт), resource-governor (4700, честная раздача ресурсов), content-planner (8040, календарь), photo-video-generator (8000) и omni-video-generator (8200, генерация видео), captain-anim-lab (8205, полигон), remotion-video-generator (8300) и remotion-vox-studio (8140), moss-lab (8180/8191, голоса на RunPod), cracker (8050, изолированный реверс референсов), smm-hub (8060, IG/FB), lead-hub (8155, лендинги каналов), x-research-daily (8111, разведка X.com — живёт вне docker, на systemd-таймерах).
Ключевая деталь про «нервную сеть»: изоляция строгая даже внутри одного тела — трафик каждого YouTube-канала идёт только через свой SOCKS-прокси, у каждого канала свой Google OAuth app. Это не паранойя, а иммунологическая аналогия с точностью: как разные штаммы иммунных клонов не должны перекрёстно реагировать, разные каналы не должны палиться одним IP.
Живая карта завода в виде метро-схемы: https://map.rbrstack.com. Источник этого урока — 02-factory-overview.md (реестр сервисов и стадий) и lucian-profile.md (цели и тон курса).
🫀 Анатомическая схема завода — кликни на орган
Тапни любую карточку органа — увидишь, чем он является в теле, что делает, и в каком модуле курса разбирается подробно.
Открыть на своём заводе: зайди на https://map.rbrstack.com (живая метро-карта) или прямо на сервере: ssh root@VPS; docker ps --format '{{.Names}}\t{{.Status}}' — посчитай, сколько органов сейчас живы и здоровы (Up), а не лежат.
🖼 Визуально
🛡️ Изоляция каналов — иммунитет против перекрёстной реакции
Три канала — три полностью изолированные дорожки. Тапни карточку или вопрос про риск.
🌐 Как органы находят друг друга — изнутри и снаружи
Внутри сети factory сервисы находят друг друга по имени контейнера — как органы через нервные пути, а не по «GPS-координатам».
🔗 Конвейер: от ниши до YouTube — и обратно (но не всегда)
Тапни любой шаг цепочки — увидишь, что он делает и какой орган за него отвечает.
Урок 0.2 — «Пять твоих законов = будущие guardrails»
За месяц стройки у тебя сами собой выработались пять привычек — правил, которым ты следуешь, даже не называя их «архитектурой». И вот новость: это и есть архитектура, просто ты пришёл к ней раньше, чем прочитал теорию. В индустрии такие правила называют guardrails — «ограждения», которые не дают системе съехать в кювет, даже когда она действует самостоятельно. Хорошая иммунная система не спрашивает разрешения на каждый чих — у неё есть встроенные правила: что атаковать, что пропускать, когда поднимать температуру. Твои пять законов — это ровно такой врождённый иммунитет для будущей автономной системы.
Напомню их: (1) сначала исследуй, потом делай; (2) обсуди → действуй, никаких изменений без явного «да»; (3) там, где можно обойтись скриптом — не зови ИИ; (4) проверяй живое (что реально показывает экран), а не то, что «должно быть по коду»; (5) не теряй задачи — веди честную очередь. Смотри, как красиво они ложатся на медицину: закон 1 — это «сначала анамнез, потом лечение»; закон 4 — это «осмотри пациента, а не только читай его карту»; закон 5 — это триаж в приёмном покое: ни один пациент не должен потеряться в коридоре.
Разница между сегодня и целью курса — в одном слове: сегодня закон 2 звучит как «ничего без моего личного да» на каждом шаге. К концу дороги, которую описывает этот курс, он должен звучать иначе: «ночью система решает и действует сама, кроме одного — тратить деньги без подтверждения нельзя». Это не отмена закона 2, а его взросление: с ручного гейта на каждом шаге — до одной чётко очерченной красной линии. Все пять законов не исчезнут — они станут кодом (хуками, чек-листами критиков, лимитами в конфиге), а не тем, что ты держишь в голове и проверяешь руками.
Формально пять правил — это неполная реализация паттерна tiered autonomy: разные уровни риска действия требуют разного уровня контроля (READ → авто; WRITE → авто с валидацией; DELETE/ТРАТА → человек). Закон 3 («скрипт вместо ИИ») — это индустриальный mechanical-first: детерминированный код там, где не нужна вероятностная модель. Закон 5 (не терять задачи, FIFO) — это персистентная очередь с защитой от циклических сбоев.
Ключевая техническая эволюция — переход от единого бинарного гейта APPROVAL_PENDING к матрице автономии по под-шагам конвейера, где решение «нужен ли человек здесь» принимается для каждого действия отдельно, а не для всего прогона разом.
Для любопытных
Индустрия формулирует ту же мысль формулой: при точности 95% на шаге, цепочка из 10 независимых шагов успешна лишь в ~60% случаев (0.9510 ≈ 0.60) — поэтому проверки человека расставляют именно на самых дорогих и необратимых точках, а не равномерно. Твои гейты EDIT_PENDING и APPROVAL_PENDING стоят ровно там, где нужно — перед необратимой публикацией и перед платными шагами.
Обратная крайность тоже реальна и уже проявляется у тебя: слишком много ручных точек контроля превращают конвейер в «полуручную фабрику» с узким горлышком в 10-20 задач в день. Индустриальный рецепт — снижать число гейтов постепенно, копя «trust-статистику» по каждой стадии (сколько раз подряд она прошла без правки человека), а не выключать оркестратор целиком одним решением.
⚖️ Пять законов → как называется в индустрии → куда растёт
Тапни закон — увидишь его индустриальное имя и модуль курса, где он станет полноценным guardrail.
Открыть на своём заводе:ssh root@VPS; cat apps/channel-hq/data/channels.json (или посмотри в UI) — найди поле approved у последних видео. Это твой закон №2 в виде одного JSON-поля: пока там не стоит true, ничего не улетает на YouTube.
🖼 Визуально
🎚️ Матрица автономии — какое действие требует человека
Тапни тип действия — увидишь, какой уровень контроля он требует сегодня на заводе.
📉 Симулятор: почему цепочка шагов ненадёжнее одного шага
При 95% на шаге и 10 шагах вся цепочка успешна ≈ 60% раз.
🚦 Закон №2: от «да на каждом шаге» к одной красной линии
Сегодня закон №2 звучит как «ничего без моего личного да» почти на каждом шаге — 🔒 стоит везде.
Где здесь деньги: система, которая наследует твои пять законов как встроенные guardrails, дёшева и надёжна BY DESIGN — а не потому что кто-то пообещал «мы всё проверим». Каждый закон — это конкретная защита от конкретного способа сжечь бюджет: от бесконечных циклов правок, от слепой публикации брака, от неконтролируемого разрастания токенов. Курс дальше показывает, как превратить эти пять привычек в код, который работает даже когда ты спишь — кроме одной красной линии: тратить деньги без твоего «да» нельзя никогда.
Модуль 1
Основы: что такое агент (и что твой завод — ещё не совсем агент)
Фундамент всего курса: точное определение агента, честная разница между агентом, workflow и чат-ботом, анатомия одного «хода» и то, как инструменты и скиллы меняют экономику всей системы. Дальше в курсе мы будем постоянно возвращаться к словарю, который ты получишь здесь.
Урок 1.1 — «Агент, workflow или чат-бот: три разных контракта»
В медицине ты хорошо знаешь разницу между тремя вещами: регистратурой, которая по скрипту записывает на приём и ничего не решает; клиническим протоколом, где шаги расписаны заранее (жалоба → анализ А → если результат X, то анализ Б → если Y, то направление к специалисту); и врачом, который ведёт сложный случай сам — сам решает, какой анализ назначить следующим, сколько консультаций понадобится, когда остановиться. Все три — часть медицины, но контракт с пациентом у них разный. Ровно такая же разница существует между чат-ботом, workflow и агентом — и это не про «кто умнее», а про то, кто именно решает, сколько шагов сделать и в каком порядке.
Официальное определение, которое стоит запомнить дословно: агент — это система, где модель сама, динамически, направляет свои процессы и использование инструментов, сохраняя контроль над тем, как выполняется задача. проверено Ключевое слово — «динамически»: заранее неизвестно, сколько ходов потребуется. Именно поэтому в индустрии сейчас терминологическая каша — компания-аналитик насчитала тысячи продуктов с надписью «AI-агент» на упаковке, но строго архитектурно агентами из них являются от силы около сотни. Даже сами инженеры Anthropic признаются, что заходят на встречи с клиентами, где одним и тем же словом называют три разные вещи.
Теперь честная новость про твой завод: конвейер ⓪→⑨ — это workflow, а не агент, и это совершенно нормально, даже хорошо. Порядок стадий (сценарий → озвучка → визуальные правила → промпты → картинки → таймлайн → рендер → упаковка) зашит в коде заранее, как клинический протокол. Модель на каждой стадии честно делает свою узкую работу, но не решает «а не пропустить ли мне эту стадию» или «не повторить ли сценарий ещё три раза». А вот твоя цель №1 — строитель приложений, который сам решает, сколько раз прогнать критику кода прежде чем тесты станут зелёными, — это по определению уже настоящий агент: число ходов заранее не известно никому, включая тебя.
Anthropic различает три слоя, а не два, и путаница почти всегда возникает из-за пропуска среднего: (1) Augmented LLM — модель с доступом к памяти/инструменту, но без цикла (единичный вызов claude -p внутри одной стадии); (2) Workflow — код заранее фиксирует последовательность вызовов LLM с программными «вратами» между ними, предсказуемость и низкая цена ошибки, но нет самостоятельности; (3) Agent — модель сама решает число итераций и выбор инструментов, точка остановки не зашита заранее.
Workflow предпочтителен, когда задача хорошо определена и повторяема — именно поэтому твой видео-конвейер архитектурно правильный выбор, а не недоделанный агент. Резолюция задачи (resolution rate) у чат-ботов и чистого RAG — 10-20%, у настоящих агентов — 40-80%+. проверено Формула из индустрии: «Chatbots respond. AI agents resolve» — чат-бот отвечает, агент решает проблему до конца.
Для любопытных
Критерий
Чат-бот
Агент
Режим
реактивный, ждёт ввода
проактивный, работает автономно
Решения
по сценарию/правилам
по цепочке рассуждений с учётом обратной связи
Действие
советует
выполняет (пишет файл, публикует видео, тратит бюджет)
Память
с нуля в каждом диалоге
персистентная история между сессиями
Прямая цитата инженера Anthropic (Barry, интервью о «Building Effective Agents»): они писали программную статью именно потому, что «мы заходим на встречи с клиентами, и все называют одну и ту же вещь разными терминами». Твой сервис channel-forge (нишу превращает в 5 углов и профиль канала) — уже не чат-бот, он действует, но пока не полный агент: число шагов фиксировано кодом, а не решается моделью на лету. Ближе всего к агентному циклу на заводе — cracker (реверс референс-видео с self-correcting QC-вердиктом и exploration 20%).
0% — чистый workflow: твой конвейер ⓪→⑨. Порядок стадий известен заранее, число шагов не меняется, независимо от того, что вернула модель.
Открыть на своём заводе:ssh root@VPS; cat apps/photo-video-generator/pipeline.py (или omni-video-generator) — увидишь фиксированный, пронумерованный порядок стадий своими глазами: это workflow, а не агент, и так и должно быть.
🖼 Визуально
🏭 channel-forge vs cracker — кто ближе к агенту
Жми по любому кружку — сравнишь два реальных сервиса завода по одному критерию: кто сам решает число шагов.
🪜 Три слоя, а не два: Augmented LLM → Workflow → Agent
Жми по любому прямоугольнику — узнаешь, чем этот слой отличается от соседних.
📊 Resolution rate: чат-бот отвечает, агент решает
Чат-бот / RAG: 10–20%
Настоящий агент: 40–80%+ проверено
Жми одну из кнопок — увидишь, откуда берётся разрыв в resolution rate.
Урок 1.2 — «Анатомия одного хода: Thought → Action → Observation»
Вспомни рефлекторную дугу из курса физиологии: раздражитель → рецептор → нерв → мозг оценивает → мышца действует → и обязательно возвращается сигнал обратно, что получилось. Убери последнее звено — и рука будет дёргаться, не понимая, обожглась она или нет. Один «ход» (turn) агента устроен ровно так же: агент смотрит на текущее состояние (что уже сделано, что вернули инструменты) → думает, что делать дальше → выбирает и вызывает инструмент → получает результат из реального мира (не выдумывает его) → оценивает, закончена ли задача → либо делает ещё ход, либо останавливается. Это кольцо называют Thought → Action → Observation.
Самая важная деталь, которую легко упустить: обратная связь обязана приходить из окружения — из реального результата, а не быть самовнушением модели («мне кажется, я справился»). Один из инженеров Anthropic формулирует это резко: без сигнала из окружения на каждом ходу ты не добавляешь агенту ума — ты просто добавляешь шум. И вот прямое попадание в твой завод: стадия ⑨ LEARNING сейчас холостая — метрики с YouTube (просмотры, retention) не долетают автоматически обратно в memory-bank. подтверждено Это рефлекторная дуга с обрезанным обратным нервом: действие (публикация) происходит, а сигнал «получилось или нет» в мозг не возвращается. Даже там, где есть цикл — например, петля обучения обложек в thumbnail-studio, — она замкнута только внутри себя (QC против собственного же критерия), а не на реальный результат из мира.
Пять слоёв, из которых состоит любой ход агента, стоит держать в голове по отдельности, потому что у каждого свой типичный сбой: восприятие (что видит агент прямо сейчас — ошибка: скормить «всё подряд», раздувая контекст), принятие решений (собственно модель — здесь работает твоя лестница моделей haiku/sonnet/opus), действие (реальное изменение мира — запись файла, трата GPU-слота), память (короткая — контекст хода, и долгая — memory-bank между ходами), и обратная связь (замыкает кольцо, самое слабое место завода прямо сейчас).
ReAct (Reasoning + Acting) формализует ход как Thought → Action → Observation → Thought → .... Полный agent loop раскладывается на 6 технических этапов: инициализация → рассуждение и планирование → выбор инструментов → получение обратной связи из окружения → оценка прогресса → итерация/завершение. Самокритика (self-critique) — обязательный элемент: агент анализирует прошлые собственные действия и корректирует курс, а не просто повторяет попытку вслепую.
Пять архитектурных слоёв агента: Perception, Decision-Making, Action, Memory (short-term = контекст хода, long-term = персистентное хранилище), Feedback Loop. На заводе слой памяти — это буквально три банка memory-bank (global/per-channel/per-generator) плюс log.jsonl; слой обратной связи физически отключён, пока оркестратор выключен.
Для любопытных
Трассировка одного гипотетического хода на реальной задаче «канал теряет просмотры на shorts, разберись»: 1) инициализация — задача от Лучиана или cron-триггера; 2) рассуждение (sonnet, задача аналитическая) — сначала посмотреть метрики; 3) вызов Function Tool get_channel_metrics(); 4) observation — retention упал на 15% в первые 3 секунды; 5) рассуждение (ход 2) — гипотеза: проблема в хуке, сверить с _STYLE_PLAYBOOK.md; 6) вызов Custom Tool — grep/bash по правилу «mechanical-first», без LLM-аудита; 7) находка: неделю назад менялся style_target профиля канала; 8) действие с последствиями — это write, требует валидации, агент готовит патч и уходит в EDIT_PENDING-эквивалент, не применяет сам; 9) завершение — отчёт человеку с диагнозом и уверенностью, а не тихое действие. Число ходов (2 инструмента, 2 раунда рассуждения) заранее не было известно — определилось по ходу расследования. Это и есть разница с workflow: если бы retention оказался в порядке, а причина была в тайминге публикации, жёстко прошитый workflow не смог бы адаптироваться, а агент — смог бы.
Источники: osnovy.md §3, §9, §11.
🔄 Петля хода на реальной задаче — жми «Следующий шаг»
Задача: «канал теряет просмотры на shorts, разберись». Жми кнопку, чтобы пройти ход агента шаг за шагом.
Открыть на своём заводе:ssh root@VPS; docker logs memory-bank --tail 50 — посмотри, приходят ли туда записи после последней публикации видео. Скорее всего, свежих метрик с YouTube там нет — вот она, разорванная рефлекторная дуга стадии ⑨ вживую.
🖼 Визуально
🔁 Замкнута или разомкнута? Три состояния обратной связи
Жми одну из трёх кнопок — сравнишь идеальную петлю, петлю, замкнутую саму на себя, и разорванную петлю завода.
🧩 Пять слоёв одного хода агента
Жми по любому из пяти блоков — узнаешь его типичный сбой.
🗂️ Где физически живёт память агента на заводе
Слой памяти на заводе — это буквально короткая память хода плюс три банка memory-bank и журнал событий. Жми по кнопке — узнаешь, за что отвечает каждая часть.
Урок 1.3 — «Инструменты (tool use) и почему их надо документировать как для новичка»
Представь два рецепта. Первый: «Пациенту — таблетки, иногда». Второй: «Амоксициллин 500 мг, по 1 капсуле 3 раза в день после еды, курс 7 дней, при аллергии на пенициллины — заменить». Оба формально «дают инструкцию», но только по второму можно безопасно действовать — даже незнакомому врачу, который видит пациента впервые. Инструмент, который отдают модели, должен быть написан как второй рецепт: чёткое имя, понятные параметры, описание — «как будто объясняешь новому члену команды», как формулирует сама Anthropic. Голый инструмент с параметрами «A» и «B» без описания — это первый рецепт: модель начинает додумывать («галлюцинировать») дозировку, потому что ты не оставил ей другого выбора.
Как это вообще работает механически: модели присылают список доступных инструментов вместе с их «рецептами» (JSON-схемами) → модель решает, какой вызвать и с какими параметрами → твой код (не модель!) реально выполняет действие → результат возвращают модели → модель либо отвечает, либо вызывает следующий инструмент. Пять шагов, простой конвейер. проверено
Для тебя это не абстракция: если ты хочешь, чтобы будущий оркестратор дёргал внутренние API channel-hq, memory-bank, resource-governor сам, каждый такой API должен перестать быть просто REST-эндпоинтом «для людей, читающих код» и стать нормально описанным «рецептом для модели» — с именем, назначением и внятными параметрами, а не POST /api/action?p1=&p2=. Иначе модель будет действовать вслепую именно там, где цена ошибки (потратить деньги, стереть файл) особенно высокая.
Пять принципов дизайна хороших инструментов (Anthropic): стратегический выбор (не оборачивать каждый эндпоинт по отдельности, консолидировать связанные операции в один осмысленный инструмент), чёткие namespace-префиксы, «информация с высоким сигналом» вместо криптичных UUID в ответах, оптимизация по токенам (пагинация, фильтрация, обрезка по умолчанию), подробные описания уровня «для нового коллеги».
Второе важное различие: Function Tools используют строгую JSON-схему — надёжнее, пространство вызовов ограничено (для детерминированных действий: создать проект, запросить слот у resource-governor); Custom Tools принимают свободный текст/код — уместны там, где заранее нельзя описать структуру (произвольный bash, исследование ниши). Смешивание этих двух режимов в одном инструменте — типичная причина, почему агент «то работает надёжно, то начинает фантазировать параметры». Отдельно — «tool calling 2.0»: вместо того, чтобы модель регенерировала параметры на каждый из 10 вызовов подряд (дорого по токенам), ей дают писать код, который сам оркестрирует несколько вызовов сразу (Anthropic Skills, «code execution as universal interface») — прямое противоядие раздуванию контекста.
Для любопытных
Прямая цитата инженера Anthropic: «люди тратят кучу сил на красивые промпты, а инструменты, которые дают модели, — голые, без документации, с параметрами, названными A и B... инженер бы не смог работать с такой функцией — как вы ждёте, что Клод сможет?» Твоё собственное правило «скрипт вместо ИИ, где можно» — это, по сути, независимо выведенная версия того же принципа, который Anthropic формализовала как архитектурный сдвиг индустрии: механический код (grep, цикл for email in emails) не требует, чтобы модель «видела» каждый промежуточный результат — она пишет программу один раз, и та выполняется детерминированно, без раздувания контекста.
Открыть на своём заводе: открой 08-contracts.md в пакете хендоффа (или API-роуты resource-governor/channel-hq в коде) — для каждого эндпоинта спроси себя: «если бы я отдал это описание модели без контекста, поняла бы она, что делает эта функция и когда её вызывать?»
🖼 Визуально
🔧 Function Tools vs Custom Tools
Жми одну из кнопок — сравнишь два режима инструментов и когда какой уместен.
⚠️ Смешивание этих двух режимов в одном инструменте — типичная причина, почему агент «то работает надёжно, то начинает фантазировать параметры».
🧮 Tool calling 2.0: почему код дешевле, чем N отдельных вызовов
Тяни ползунок — число вызовов инструмента подряд.
⚙️ Как модель реально вызывает инструмент — 5 шагов
Жми по цифрам 1→5 — пройдёшь весь путь одного вызова инструмента. проверено
Урок 1.4 — «Skills вместо зоопарка агентов»
Представь два способа организовать клинику. Вариант А: на каждый более-менее частый случай — отдельный узкий специалист-«агент»: один врач только на насморк, другой только на растяжения, третий только на бессонницу, и так сорок раз. Вариант Б: один опытный врач общей практики с толстой, хорошо организованной папкой протоколов — по гипертонии, по диабету, по типичным травмам — куда он заглядывает по мере надобности и куда сам дописывает новый протокол, когда встретил что-то повторяющееся во второй раз. Индустрия в 2026 году сделала резкий разворот от варианта А к варианту Б, и оформила его лозунгом: «не стройте агентов, стройте skills».
Skill — это просто папка с процедурным знанием, которую можно версионировать в git: инструкция, примеры, иногда код-хелперы. Один универсальный код-агент (в духе Claude Code) плюс растущая библиотека таких папок обходится дешевле и предсказуемее, чем «зоопарк» из сорока узкоспециализированных агентов, каждый со своим промптом, контекстом и точкой отказа. В докладе Anthropic это иллюстрируют образом: «агенты сегодня во многом похожи на блестящего новичка без экспертизы — против опытного специалиста с готовыми протоколами под рукой».
Самое приятное: у тебя это правило уже есть, просто без официального названия. «Повторил дважды → оформи скиллом» — это твоя собственная, интуитивно выведенная версия ровно той архитектуры, которую Anthropic сейчас формализует как индустриальный стандарт. У тебя уже растёт такая полка: faceless-script-skill, capcut-marker-builder, коннектор к YouTube API — и это не побочный продукт, а ядро того, как должна масштабироваться и контент-фабрика, и строитель приложений: не плодить агентов под каждую нишу или каждый стек, а расширять одну полку скиллов.
Ключевой тезис доклада «Don't Build Agents, Build Skills Instead»: код — не просто один из юзкейсов агента, а универсальный интерфейс к цифровому миру. Core scaffolding агента может быть таким же тонким, как bash + файловая система; вся специализация выносится в skills, а не размножается в отдельных агентах с собственными системными промптами и контекстными окнами. Экономика: N узких агентов = N раз оплаченный «холодный старт» контекста и промпта на каждую задачу; 1 агент + библиотека skills = контекст загружается только под текущую задачу, остальное лежит на диске, пока не понадобится.
Практическое применение к его архитектуре: оркестратор и строитель приложений не должны обрастать десятками сервисов-агентов на каждый канал/нишу/стек — вместо этого один универсальный агент-исполнитель читает нужный SKILL.md под конкретную подзадачу.
Для любопытных
Из чего обычно состоит хороший SKILL.md: (1) короткое описание — когда именно этот скилл нужно применять (триггеры); (2) пошаговая процедура или чек-лист; (3) примеры входа/выхода; (4) ссылки на связанные файлы/скрипты внутри той же папки; (5) явные ограничения — чего скилл делать не должен. Хороший скилл читается моделью как узкая, но полная инструкция — «рецепт», а не как расплывчатое пожелание, тем же принципом, что и хороший tool-контракт из прошлого урока.
Открыть на своём заводе: посмотри свою папку скиллов (например, faceless-script-skill, capcut-marker-builder) — открой любой SKILL.md и проверь: есть ли там всё из чек-листа выше, или чего-то не хватает (обычно — явных ограничений «чего не делать»).
🖼 Визуально
📄 Плохой skill vs хороший skill
Жми одну из кнопок — увидишь ту же разницу, что и с инструментами в прошлом уроке, только применительно к skills.
📁 Анатомия хорошего SKILL.md — 5 частей
Жми по любой части — узнаешь, зачем она нужна модели. Пример на заводе: faceless-script-skill, capcut-marker-builder.
🌱 «Повторил дважды → оформи скиллом»
Задача встретилась впервые — разовый промпт/скрипт, отдельного скилла ещё нет.
Где здесь деньги: правильно понять, что тебе нужен ОДИН настоящий agent-loop (строитель приложений) + растущая библиотека скиллов — а не сорок узкоспециализированных сервисов-агентов, — это разница между управляемым, предсказуемым бюджетом и бесконечной, дорогой стройкой без конца. Каждый раз, когда тянет «сделать ещё одного агента», сначала спроси: это скрипт? это уже существующий скилл? и только потом — новый агент.
Модуль 2
Оркестрация и консилиум: как органы работают вместе
Самый глубокий модуль курса. Ты уже месяц дирижируешь конвейером вручную — здесь ты получаешь имена для того, что делаешь интуитивно, и точную архитектуру для «веера MVP» — твоего ключевого бизнес-режима.
Урок 2.1 — «Три роли, которые нельзя смешивать: планировщик, исполнитель, критик»
В медицине есть железное правило: хирург не оперирует сам себя, даже если умеет и физически дотягивается скальпелем до нужного места. Не потому что не доверяет своим рукам — а потому что человек, который только что принял решение «резать здесь», психологически не может тут же беспристрастно спросить себя «а точно ли здесь надо было резать». Он заинтересован, чтобы его же решение оказалось правильным. Индустрия агентов называет это ровно так же по-человечески — cost bias: агент, который написал код или сгенерировал текст, статистически хуже находит в нём ошибку, чем независимый наблюдатель. Он вложился в свой же результат.
Отсюда вырастает базовое деление ролей в любой рабочей многоагентной системе — три роли, которые нельзя поручать одному и тому же агенту в одном и том же заходе. Планировщик решает, что делать и в каком порядке, и на выходе у него план и критерии готовности — не сам результат. Исполнитель делает конкретную работу — пишет код, генерирует картинку, зовёт API. Критик оценивает результат исполнителя против критериев планировщика и имеет право развернуть работу назад. Смешение этих трёх ролей в одном агенте — самая частая причина, почему «умный ИИ» выдаёт правдоподобный, но неверный результат: он не врёт специально, он просто физически не может объективно оценить собственную же работу.
У тебя это уже было граблей — не в теории, а на живом сервисе. У thumbnail-studio в первых версиях критик (R2) видел не только готовую обложку, но и рассуждения генератора (R1) — почему он выбрал именно такой шрифт, такую композицию. И критик начал соглашаться с генератором чаще, чем должен был: он «заражался» логикой того, кого проверял, вместо того чтобы смотреть на результат свежим взглядом. Это называется эхо-камерой. Лекарство было простое и уже применено на заводе: критик должен получать ТОЛЬКО готовый артефакт и чек-лист требований — никакой истории рассуждений того, кто это сделал.
Это формализуется как verifier pattern: независимый агент получает только артефакт и требования, без контекста генератора. Это предотвращает систематические ошибки, которые генератор и «слишком близкий» ревьюер повторяют одинаково — если критик видит цепочку рассуждений автора, он унаследует его слепые пятна.
Практическое правило проектирования: critic-агент запускается в отдельном контекстном окне/сессии, промпт критика содержит явный чек-лист критериев (не «оцени, хорошо ли»), а не пересказ того, что делал генератор. Это тот же принцип, что adversarial evaluation — отдельный скептичный evaluator, а не тот же самый агент в режиме самопроверки.
Для любопытных
В материалах по мультиагентным финансовым системам приводится впечатляющая цифра: одиночный агент без критика даёт около 25% безошибочных результатов с первого раза, с независимым критиком — точность вырастает в разы. осторожно Точные цифры «522 сессии, 24.9% → 92.1%» — первоисточник этого конкретного исследования не найден при проверке; трактуй их как иллюстрацию направления эффекта, а не как измеренный факт для презентаций клиентам. Качественный вывод («критик-цикл поднимает точность существенно выше одноагентного прохода») при этом подтверждается независимо другими источниками про harness-дизайн и adversarial evaluation. проверено
Второе мнение — принцип, который прямо переносится и на людей: в медицине второе заключение независимого врача снижает диагностическую ошибку не потому что второй врач умнее, а потому что он не видел, как первый пришёл к своему выводу, и оценивает симптомы заново. Ровно это должно происходить между R1 и R2 на твоём заводе — и произошло, когда починили эхо-камеру.
🔁 Эхо-камера: критик видит рассуждения генератора — или нет?
Переключи режим и посмотри, сколько реальных ошибок в тестовой обложке ловит критик в каждом случае.
Выбери режим.
Открыть на своём заводе:ssh root@VPS; docker logs thumbnail-studio --tail 200 | grep -i "R2\|qc\|verdict" — посмотри, какой контекст реально получает QC-судья перед вердиктом: только картинку и чек-лист, или ещё и обоснование R1.
🖼 Визуально
🚨 Насколько опасно смешать роли
Три варианта устройства одного и того же конвейера «сделал → проверил». Клик — увидишь уровень риска cost bias.
Выбери вариант устройства конвейера.
🔗 Три роли: планировщик → исполнитель → критик
Клик по роли — узнаешь, что она делает, кто это на заводе, и почему её нельзя смешивать с другой.
Клик по роли выше.
📋 Что кладут в контекст критика — и что нет
Практическое правило проектирования verifier pattern. Клик по блоку.
Выбери блок.
Урок 2.2 — «Пять паттернов оркестрации — и четыре из них уже у тебя работают»
Хорошая новость этого урока: тебе не нужно изучать оркестрацию с нуля как абстрактную теорию. Индустрия выделяет пять базовых архитектур координации агентов, и если пройтись по ним по очереди — окажется, что четыре из пяти уже работают у тебя на заводе, просто без названий. Это как узнать, что твой организм всю жизнь пользовался пятью системами регуляции, а ты только сейчас узнал их латинские имена.
Первый паттерн — конвейер: жёсткая цепочка стадий, каждая зависит от предыдущей. Это буквально твой путь от ниши до YouTube — сценарий не может появиться раньше темы, озвучка не может начаться раньше сценария. Второй — иерархия «оркестратор + воркеры»: центральный диспетчер решает, кого позвать, и параллелит независимые части. Твой batch-запуск N видео с честным распределением ресурсов через resource-governor — это она и есть. Третий — передача управления: агент сам решает, кому отдать задачу дальше, и получатель становится полноправным владельцем, а не просто вызванным инструментом. У тебя такого пока нет в явном виде, но он идеально ложится на будущего «разведчика возможностей» — сканирование рынка не имеет заранее известного числа шагов.
Четвёртый паттерн — самый неожиданный по узнаваемости: общая доска. Агенты не общаются друг с другом напрямую, а читают и пишут в общее хранилище, и какой-то управляющий механизм решает, кто активируется дальше по содержимому доски. Это буквально твой memory-bank. И пятый — параллельный веер — множество агентов обрабатывают один и тот же вход параллельно, дальше кто-то агрегирует результаты. Этого паттерна у тебя пока нет вживую — это ровно то недостающее звено, которое станет мотором консультант-фабрики.
Индустриальные термины и материал-источник — orchestration-patterns.md: Sequential/Pipeline, Hierarchical (orchestrator-workers), Handoff, Blackboard, Concurrent/Fan-out-Fan-in. Ключевая практическая деталь про иерархию: параллельные вызовы инструментов ускоряют результат против последовательного выполнения; система «Opus-лидер + Sonnet-подагенты» на исследовательских задачах превосходит одноагентный Opus за счёт делегирования параллельным специализированным подагентам.
Того, чего не хватает в этой пятёрке твоему заводу — не паттерна координации, а самой сути агента: сегодня внутри стадий число шагов и их порядок фиксированы кодом (workflow), нигде модель сама не решает «а сколько мне нужно попыток». Шестой недостающий элемент — не новый паттерн оркестрации, а превращение хотя бы одного узла (например строителя приложений) в настоящий agent-loop.
Для любопытных
Материал `orchestration-patterns.md` формулирует базовое правило проектирования жёстко: «многоагентные системы нужно проектировать как архитектуры прежде всего, промпты — во вторую очередь». Типичная ошибка новичков — думать, что мультиагентность решается хорошим промптом для «главного» агента; на деле она решается тем, кто кому что показывает и в какой момент.
Handoff-паттерн имеет известный сбой — «бесконечные циклы передачи» (агент А отправляет к Б, Б отправляет обратно к А), поэтому в реализации всегда нужен предел числа хопов и правило естественного завершения: процесс кончается, когда активный агент не инициирует новый handoff.
🗺️ Пять паттернов → какой сервис завода это уже реализует
Тапни паттерн — увидишь, какой сервис завода уже его реализует (или пустую ячейку, если пока нет).
Открыть на своём заводе:ssh root@VPS; curl -s localhost:4600/health && curl -s localhost:8030/api/projects/batch -X GET | head — посмотри вживую blackboard (memory-bank) и hierarchical (batch API) паттерны, которые уже отвечают на твои запросы прямо сейчас.
🖼 Визуально
🗂️ Общая доска (blackboard): сервисы пишут в неё, а не друг другу
Клик по банку памяти — что в нём хранится. Кнопка внизу — покажи, чего в этом паттерне НЕТ.
Клик по банку памяти выше.
🔄 Handoff без предела хопов = бесконечный цикл
Агент А передаёт задачу Б, Б может отправить обратно А. Без предела и правила завершения это не заканчивается.
⏱️ Конвейер (Sequential) vs Иерархия (оркестратор+воркеры) — почему время разное
Условные единицы времени, не измеренные секунды — просто чтобы увидеть, почему одна архитектура складывает время стадий, а другая — нет.
Выбери паттерн.
Урок 2.3 — «Judge Panel и best-of-N: ядро консультант-фабрики MVP»
Вот архитектура твоего ключевого бизнес-режима — ночью веер из 3-10 MVP-решений, утром демо клиенту. Она устроена не как «десять копий одного и того же агента, авось одна получится лучше». Она устроена как консилиум с разными специализациями: N агентов-исследователей (explorer), каждый с ЯВНО разным приоритетом — один жмёт на скорость, другой на надёжность, третий на дешевизну. Не три клона с одинаковой инструкцией, а три разных взгляда на одну и ту же боль клиента. Дальше — панель судей (judge panel), тоже разнородная: судья-технарь смотрит на архитектурный риск, судья «глазами клиента» — на удобство и понятность, судья по бюджету — на скорость окупаемости. И только потом — финальное сравнение.
Здесь важна одна деталь, которую легко упустить: сравнение лучше делать не «каждый с каждым» (это дорого и медленно растёт с числом вариантов), а турниром на выбывание — как в спорте, пара против пары, проигравший выбывает, победители сравниваются дальше. Это называется турнир на выбывание, и он растёт гораздо медленнее с числом вариантов, чем полный перебор всех пар. А ещё исследования показывают вещь, которая интуитивно неочевидна: если посадить в судьи три копии одной и той же модели — качество оценки падает. Судьям нужно реальное разнообразие взгляда, а не три голоса одного и того же мнения.
И последнее, что важно понять сразу: веер не удлиняет твою ночь. Три-десять explorer-агентов работают параллельно, и всё это займёт примерно столько же времени, сколько один агент, работающий последовательно (потому что бутылочное горлышко — самый медленный из них, а не сумма всех). Но веер стоит дороже по деньгам — токенов тратится в разы больше, потому что параллельных сессий несколько. Это ровно та переменная, которой ты управляешь: сколько вариантов запускать и на какой модели.
Техническая структура: N generator/explorer-агентов → Judge Panel (Scorer + Critic + Commander) → выбор Pareto-оптимального решения. Судейство бывает трёх типов: pointwise (оценка одного решения по шкале), pairwise (сравнение двух), checklist (разложение критериев с весами). Для best-of-N эффективнее pairwise-турнир на выбывание, чем полный перебор: сложность O(N log N) вместо O(N²).
Реализация в explorer×critic-конвейере: три explorer-агента в отдельных контекстных окнах, каждый оптимизирует свой trade-off (производительность / developer experience / скорость), плюс один critic-агент, оценивающий полноту и failure-модусы, синтезирующий лучшее из трёх. Для его конвейера MVP это прямая инструкция: не один судья-агент, а панель из 2-3 разнородных ролей.
Для любопытных
осторожно Часто встречающиеся цифры «мультиверс-разработка стоит 2-3× дороже линейной» и запись «O(n×m) вместо O(n)» — трактуй как иллюстративную эвристику, а не измеренную метрику: точный множитель и что конкретно означают n и m в реальном стоимостном анализе — при проверке первоисточник этих конкретных чисел не нашёлся. Качественный вывод верен: веер дороже, но не удлиняет ночь.
Практическая экономика: одна ночь консультант-фабрики — это условно 10-15 полноценных агентных сессий на одну боль клиента (N explorer + панель судей), что при текущих ставках моделей выливается в единицы-десятки долларов за ночь на клиента — совершенно приемлемо относительно суммы сделки, но требует явного бюджетного потолка на прогон, иначе один зациклившийся explorer может съесть бюджет всей ночи (тот же стоп-кран из закона №3 — Модуль 5 разбирает его подробно).
Дополнительный ход, замеченный в практике других операторов: на важных решениях запускать двух независимых агентов параллельно (например, две разные модели) БЕЗ показа ответа одного другому до момента синтеза — это защищает от того, что explorer-агенты незаметно скатываются к одному и тому же «очевидному» решению вместо реального разнообразия подходов.
🏆 Симулятор турнира: полный перебор vs knockout
⚖️ Конструктор судейской панели
Собери панель из трёх разных судей — система подскажет, если ты выбрал два одинаковых угла (гомогенная панель снижает качество оценки).
Выбери 3 судей.
Открыть на своём заводе: посмотри текущий batch-режим — ssh root@VPS; curl -s localhost:8030/api/projects/batch/status — это уже параллельный запуск N видео (concurrent fan-out); чего пока не хватает — панели разнородных судей и турнирного сравнения результатов между собой.
🖼 Визуально
🧭 Три клона vs три разных explorer-а
N агентов на одну боль клиента — но с одинаковым промптом или с явно разными приоритетами? Переключи режим.
Выбери режим.
🌙 Веер не удлиняет ночь — но удлиняет счёт
⚖️ Три типа судейства: pointwise / pairwise / checklist
Клик по типу — как он работает и когда его берут для best-of-N.
Выбери тип судейства.
Урок 2.4 — «Когда мультиагентность ВРЕДНА»
Соблазн после трёх уроков про оркестрацию — начать плодить агентов на всё подряд. Индустрия честно предупреждает: подавляющее большинство пилотных многоагентных систем не доезжает до продакшена в задуманном виде — и почти никогда не из-за того, что модель «недостаточно умная». Падают на интеграции: агенты дёргают друг друга через хрупкие связки, свалка документов без структуры вместо продуманного поиска, бесполезный постоянный опрос сервисов вместо уведомлений о событии. Ты с этим уже боролся не в теории — твой закон №5 («не терять задачи, честная очередь») — это прямая защита именно от такого класса сбоев.
Второе честное предупреждение — прямо из опыта Andrej Karpathy, который держит крепкую репутацию трезвого практика в индустрии агентов. Он запустил восемь параллельных агентов-исследователей на одну открытую задачу — и они, по его собственным словам, «неплохо реализуют любую хорошо описанную идею, но плохо придумывают идеи сами»: не продумывают дизайн эксперимента тщательно, не выстраивают сильные базовые сравнения, генерируют не по-настоящему разные подходы, а вариации одного и того же. Для тебя это прямое предупреждение про консультант-фабрику: веер из 3-10 explorer-агентов надёжно работает, когда РЕАЛИЗУЕТ уже хорошо сформулированную идею («сделай MVP системы бронирования для кофейни в трёх разных архитектурах»), но плохо работает, если отдать агентам саму генерацию идей без структуры («придумай, что вообще предложить кофейне»). Практический вывод: пространство вариантов должен заранее задавать ты (через скилл или чек-лист паттернов MVP), а не надеяться, что агенты сами придумают разнообразие.
Третье — прямой урок из практики компании Factory, которая держит автономные разработческие сессии на дни подряд (ближайший прообраз твоего ночного строителя). Они попробовали интуитивно очевидную идею — если 10 агентов работают одновременно над кодовой базой, значит, будет 10-кратная скорость. Не сработало: агенты конфликтуют, наступают на изменения друг друга, дублируют работу, принимают несовместимые архитектурные решения — как если бы десять хирургов одновременно оперировали одного пациента без координации. Их решение — фичи выполняются серийно, один воркер активен в любой момент времени на одной кодовой базе, а параллелится только то, что безопасно параллелить в принципе: чтение, поиск, разведка. Для твоего строителя приложений это значит: параллельный веер вариантов — да (разные MVP, разные каналы), но одна и та же кодовая база одним прогоном пишется серийно.
Правило перед тем, как заводить нового агента, звучит как хорошее клиническое правило «не выписывай новое лекарство, если хватит смены дозы старого»: сначала спроси — это механическая операция (посчитать, найти, проверить формат)? Значит скрипт, не агент. Это уже существующий скилл, применённый к новому контексту? Значит не новый агент, а новый вызов того же скилла с другим промптом. И только если это принципиально новая роль в консилиуме — тогда агент.
Материал `case-studies-failures.md` даёт таксономию отказов (Michael Hannecke), из которых для завода особенно важны: игнорирование ограничений (агенту сказано «максимум 5 попыток», он делает 100); потеря ориентации в собственном прогрессе, если состояние живёт только в контексте, а не во внешнем файле; inter-agent misalignment — параллельные агенты расходятся в интерпретации задачи, что на кодовой базе рушит сборку и блокирует всех; out-of-distribution problem — модель не умеет надёжно распознать, что задача вышла за пределы её возможностей, и вместо явного «не знаю» зацикливается на попытках решить нерешаемое.
Пять примитивов коммуникации агентов (по докладу Factory про Missions): delegation (родитель поручает, получает ответ — самый частый паттерн), creator-verifier (разделение из-за cost bias), direct communication (агенты общаются напрямую без координатора — хрупко), negotiation (агенты делят общий ресурс), broadcast (один агент рассылает статус/ограничения всем). Для параллельного веера кодовых агентов Missions использует delegation + creator-verifier + broadcast, но НЕ параллельные правки одной кодовой базы: фичи серийно, параллельно только read-only разведка.
Для любопытных
осторожно Цифра «95% пилотов падают при масштабировании» широко цитируется в индустрии, но важна точная атрибуция: это тезис MIT, который Composio цитирует и критикует за методологию, а не собственная находка Composio. Собственный вклад Composio — три архитектурные причины отказов (свалка документов вместо структурированного поиска, хрупкие API-коннекторы, постоянный бесполезный опрос вместо уведомлений о событии) — это можно смело использовать с атрибуцией Composio.
проверено Полноценная многоагентная система потребляет токенов примерно в 15× больше обычного чата (агент с инструментами — около 4×). При этом 80% вариативности качества результата объясняется объёмом использованных токенов, а не тем, какая модель или сколько вызовов инструментов — то есть «просто больше агентов» не значит «умнее», часто это просто дороже за то же самое.
проверено Урок Missions (Factory) о серийном выполнении фич подтверждён напрямую практикой компании, держащей автономные сессии на кодовой базе многодневно: параллелить одну кодовую базу не работает из-за конфликтов, параллелить можно только независимые модули и read-only разведку.
Отдельная линия критики индустрии («Stop Building AI Agents») бьёт по соблазну плодить узкоспециализированных агентов «под каждый случай» (tax agent, legal agent, marketing agent) — авторы настаивают, что агент под капотом универсален, а разница должна быть не в новой модели-агенте, а в навыках/инструментах и контексте, которые ему выдают. Это прямо перекликается с твоим же 5-м законом «повторил дважды → оформи скиллом» — Модуль 1, урок 1.4.
🚦 Чек-лист-светофор «нужен ли тут агент»
Ответь на три вопроса про задачу — узнаешь, что заводить: скрипт, вызов существующего скилла или нового агента.
Выбери, что ближе всего к твоей задаче.
Открыть на своём заводе:ssh root@VPS; cat _HERMES_HANDOFF/08-contracts.md | grep -A2 "resource-governor" — посмотри, как уже сегодня resource-governor не даёт сервисам бесконтрольно плодить параллельные запросы: это и есть твой действующий защитный предел против «10 агентов одновременно».
🖼 Визуально
📡 Пять примитивов коммуникации агентов
По докладу Factory про Missions. Клик по примитиву — что это и использует ли его параллельный веер кодовых агентов.
Тапни примитив.
🩺 Таксономия отказов мультиагентных систем
Четыре типа сбоя (Michael Hannecke, case-studies-failures.md). Клик по каждому.
Выбери тип сбоя.
👨⚕️ Десять хирургов одного пациента, или один воркер + разведка
Опыт компании Factory (Missions): 10 агентов одновременно на одной кодовой базе НЕ дают 10-кратную скорость.
Выбери режим.
💸 Во сколько раз мультиагентность дороже обычного чата
Клик по столбцу.
Клик по столбцу выше.
Где здесь деньги: judge-panel + веер MVP — это буквально твой продукт для бизнесов: боль клиента вечером → автономная ночь → 3-10 готовых демо утром → продажа разово или по подписке. Понять эту архитектуру до последнего винтика — значит уметь объяснить клиенту, за что он платит, а не просто нажимать кнопку и надеяться. И наоборот: понимание урока 2.4 бережёт бюджет — не каждая задача требует нового агента, а мультиагентность стоит в разы дороже чата за тот же результат, если её не ограничивать.
Модуль 3
Память и общий мозг: как система умнеет к завтрашней ночи
Оркестрация из Модуля 2 отвечает «кто что делает». Этот модуль отвечает на другой вопрос — «что система вообще ЗНАЕТ в момент действия и откуда это знание берётся». Твой memory-bank уже устроен правильно — разберём, почему, и чего не хватает, чтобы склад фактов стал общим мозгом.
Урок 3.1 — «ОЗУ и диск: почему всё в разговоре исчезает»
Вспомни разницу между кратковременной памятью и гиппокампом. Кратковременная память держит то, что ты услышал минуту назад — она огромна по пропускной способности, но абсолютно летучая: закрыл дверь кабинета, отвлёкся на следующего пациента — и детали предыдущего разговора стёрлись, если ты их не записал в карту. Гиппокамп — другое дело: то, что туда попало, остаётся годами.
Ровно так же устроен любой ИИ-агент. Контекстное окно — это ОЗУ: пока сессия идёт, оно держит всё — твои реплики, файлы, промежуточные мысли модели. Но как только сессия claude -p в генераторе завершается (видео отрендерилось), это окно исчезает целиком. Всё, что было сказано на первом ходу, все ограничения, поставленные на третьем — если это не записано во внешний файл, оно испарилось так же, как испаряется разговор с пациентом, если ты не сделал запись в карту.
Это прямое объяснение твоей главной боли: раздутие контекста до ~1M токенов на 12-шаговой задаче. Проблема не в том, что модель «глупая» — проблема в том, что при многошаговой задаче каждый следующий шаг вынужден заново перечитывать всё, что было сказано раньше, потому что нет отдельного механизма, который бы решал: «что из этой горы фактов реально нужно следующему шагу». У тебя уже есть диск — memory-bank, отдельный сервис-«гиппокамп», который переживает конец любой сессии. Вопрос этого урока не «нужна ли тебе долгая память» (она уже есть), а «правильно ли она используется» — потому что просто иметь диск недостаточно, если каждый раз на него сваливают всё подряд.
Индустриальная модель — двухуровневая архитектура памяти: Уровень 1 — рабочее окно, куда специализированный retriever подтягивает 5-10 релевантных записей ПЕРЕД каждым вызовом модели; Уровень 2 — персистентное хранилище (полная история, все факты и паттерны). Ключевая деталь: качество деградирует ещё ДО достижения лимита токенов из-за эффекта «потерянного в середине» — модель хуже обрабатывает информацию из центра длинного контекста. Поэтому даже при окне 1M токенов не стоит скармливать модели весь банк «на всякий случай» — нужен активный отбор.
Для любопытных
Источник (Mem0, State of AI Agent Memory 2026) формулирует это дословно: «Всё в контекстном окне исчезает по окончании сессии, включая предпочтения, изложенные на первом ходу, ограничения, установленные на третьем ходу, и решения, принятые на седьмом ходу». проверено дословно
Та же система (Mem0, апрель 2026) на бенчмарках LoCoMo/LongMemEval при гибридном retrieval тратит ~6 900 токенов на запрос против ~26 000 у full-context подхода — экономия около 73%. проверено дословно — подробнее эти цифры разберём в уроке 3.4.
🧠↔️💾 ОЗУ vs диск — заверши сессию и посмотри, что уцелеет
Это то, что «сказано» за одну сессию генератора. Нажми «Завершить сессию» и увидишь, что стёрлось, а что успело попасть на диск (memory-bank).
ОЗУ — текущая сессия
Диск — memory-bank
Пока сессия идёт — все 5 фактов видны модели одновременно.
Открыть на своём заводе:ssh root@VPS; cat apps/channel-hq/data/channels/<id>/log.jsonl | tail -5 — это твой диск. Сравни с тем, что видно в UI генератора только во время активного прогона: это ОЗУ, которое сейчас исчезнет вместе с закрытием сессии.
🖼 Визуально
⚖️ Скормить весь банк vs гибридный retrieval — токены на запрос
Выбери подход — сравни, сколько токенов уходит на один запрос к памяти.
📉 «Потерянный в середине» — где в контексте прячется факт
Двигай ползунок — куда именно в окне попал нужный факт (начало / середина / конец).
Ползунок на середине — минимум качества вспоминания.
🏗️ Двухуровневая память — путь факта от диска до окна модели
Кликни по блоку схемы — узнаешь, что это и как устроено на твоём заводе сейчас.
Кликни по блоку схемы выше.
Урок 3.2 — «Три типа памяти — и все три уже в твоём memory-bank»
В медицине память тоже не единая коробка — есть память на события («вчера в 15:00 пациент жаловался на головокружение»), память на устоявшиеся факты («у пациента аллергия на пенициллин») и память на навыки («как правильно накладывать шов»). Три разных механизма, три разных места хранения в мозге. У твоего memory-bank — ровно та же структура, просто ты пришёл к ней раньше, чем прочитал название.
Эпизодическая память — конкретные события: «14 июля тема Y дала CTR 6.1%». У тебя это log.jsonl внутри банка каждого канала — журнал того, что реально случилось. Семантическая память — устоявшиеся факты и правила: «канал X: темы про военку заходят лучше катастроф». Это global.json (кросс-канальные правила) и profile.json каждого канала (маскот, DNA, устоявшийся стиль). Процедурная память — выученные приёмы, не привязанные к конкретному пациенту-каналу: «такой промпт для сцен даёт лучший рендер». Это твои generators/{photo,omni,remotion}.json — крафт, общий для всех каналов сразу.
Это разделение — не бюрократия для порядка, а защита от конкретной, уже прожитой тобой грабли: протечки между уровнями. У тебя это уже случалось дважды: тренировочные (synthetic) каналы протекали в общий банк и портили правила для настоящих каналов — решением стал жёсткий гейт isSynthetic, закрывающий все пишущие двери для тестовых данных. И второй случай: AVOID-строки (запреты, найденные на одной стадии) утекали между стадиями script и visual без разбора — решение — читать steering-правила scoped по стадии (kind=). Это как иммунная система: антитело, обученное против одного штамма, не должно бить по всем подряд без разбора — нужны чёткие границы, кто на что реагирует.
Строгая изоляция уровней памяти = явные границы записи и чтения (namespace / scope) для каждого типа. Без этого многоуровневая память деградирует в общий шум быстрее, чем накапливает пользу. Отдельно — принцип промоушена факта из индивидуального в общее: порог count≥5 — единичный сигнал НЕ становится глобальным правилом. Реальный баг, который это правило чинит: при n=2 каналов один разовый артефакт FastGen становился вечным глобальным правилом для всех.
Для любопытных
Медицинская параллель прямая: иммунитет не поднимает системную тревогу на единичный контакт с чужеродным белком — нужна повторяемость экспозиции, чтобы выработалось устойчивое «антитело»-правило. Порог count≥5 в generator-банке — та же логика, применённая к памяти системы.
Практический тест на будущее: если новый сервис (например, будущий consultant-агент MVP) начинает писать «на всякий случай» и в общий банк, и в свой собственный без явного разделения «что пишем, когда» — жди повторения той же протечки, только на новом контуре.
Выбери факт, затем нажми на нужную колбу (эпизодическая / семантическая / процедурная).
Сначала выбери факт сверху.
Демо протечки: synthetic-канал пытается записать факт в общий банк.
Открыть на своём заводе:ssh root@VPS; cat apps/memory-bank/data/global.json | head -30 и рядом cat apps/memory-bank/data/generators/photo.json — увидишь семантическую и процедурную память бок о бок, физически разными файлами.
🖼 Визуально
🚧 Протечка AVOID-правил между стадиями SCRIPT и VISUAL
SCRIPT записал запрет «не шутить про акулу». Проверь, что получит стадия VISUAL.
Нажми кнопку — увидишь, что реально попадёт в VISUAL.
🗂️ Файлы memory-bank — клик по органу
Кликни по файлу — узнаешь его тип памяти, путь и пример содержимого.
Кликни по файлу выше.
📊 Порог count≥5 — когда разовый факт становится правилом
Двигай ползунок — сколько каналов подтвердили один и тот же артефакт FastGen.
Урок 3.3 — «Git-память для строителя: main / branch / commit / merge»
Есть отдельная угроза, характерная именно для длинных, многошаговых задач — таких, как твой будущий строитель приложений, работающий ночью 6-8 часов без надзора. Она называется context anxiety — «тревога контекста». По мере заполнения окна модель не просто теряет связность — она МЕНЯЕТ поведение: начинает сворачивать разговор раньше времени, торопится через шаги и объявляет вещи сделанными, хотя они не сделаны. Представь врача, который к концу изматывающего суточного дежурства начинает писать в карте «состояние стабильное» на автомате, не глядя на пациента внимательно — вот это тревога контекста в чистом виде.
Лекарство, которое уже придумала индустрия — паттерн, который честно стоит назвать по имени: Git Context Controller (не «OneContext», как иногда путают в пересказах — точное название пришло из статьи arXiv 2508.00031). Идея — вести память агента буквально как git. Есть main.md — общая дорожная карта, которую перечитывают почти всегда. Когда агент пробует альтернативный путь (например, «попробую Playwright вместо API-проверки») — это branch: отдельная ветка со своим commit.md (короткие вехи-резюме) и log.md (полная сырая история этой ветки). Дошёл до успеха — merge: короткое резюме сливается в main, а тяжёлая сырая история остаётся в архиве, к ней обращаются только если нужно «покопаться».
Это лечит ровно твою личную боль номер один: раздутие контекста на 12+ шагах, когда приходится «платить за перечитывание одного и того же». При GCC-подходе перечитывается только main.md — сжатый обзор — а не вся сырая история заново на каждом шаге. У тебя уже есть зачаток этого паттерна: файлы state.json/config.json в проектах генераторов — тот же принцип «внешний прогресс-файл переживает смену сессии», просто без явного деления на branch/main.
Структура GCC: main.md (глобальная roadmap), и для каждой ветки — папка с commit.md (вехи после каждой значимой подзадачи), log.md (полная OTAA-история: observation-thought-action-action), metadata.md (техническая навигация). Четыре действия: branch / commit / merge / (чтение только main + нужного commit.md, не всего log.md). Решение первого поколения от Anthropic для context reset: начать с чистого окна, прочитать последнюю фичу из progress-файла, протестировать построенное, сделать конкретную задачу, триггернуть структурированный хендофф следующему агенту.
Для любопытных
Точное имя паттерна — Git Context Controller (GCC), arXiv 2508.00031; в одном из пересказов встречается неверное название «OneContext» — это ошибка пересказа, не альтернативное официальное имя. исправлено
Заявленный прирост качества на задачах разработки — около 13%, за счёт лучшей памяти, а не более мощной модели. Цифра из одного разбора транскрипта, отдельно не перепроверена нашей верификацией. осторожно
Context anxiety и решение через context reset — подтверждено разбором поста Anthropic про harness для long-running агентов. проверено Важная оговорка: это НЕ стоит напрямую связывать с размером контекстного окна модели (1M токенов) — даже модели с огромным окном выигрывают от внешнего progress-файла, потому что это архитектурная гарантия против потери прогресса при сбое сессии, а не костыль под маленькое окно.
🌿 Демо ветвления GCC — попробуй Playwright вместо API
main.md:
branch/playwright/commit.md:
branch/playwright/log.md (сырая история, растёт с каждым шагом): 0 записей
Токены на перечитывание: main.md ≈ 40 vs полная log.md ≈ 0.
Открыть на своём заводе:cat apps/photo-video-generator/data/generators/<gen>/projects/<slug>/state.json — твой сегодняшний прогресс-файл. Спроси себя: если бы этот файл разделился на main.md (обзор) и log.md (сырая история), что из сегодняшнего state.json попало бы в какой файл?
🔄 Context reset — решение первого поколения от Anthropic
Пять шагов, которые агент проходит каждый раз, когда стартует с чистого окна.
🗂️ Устройство GCC-ветки — клик по файлу
Кликни по файлу — узнаешь, зачем он и когда его реально перечитывают.
Кликни по любому файлу схемы.
Урок 3.4 — «От склада фактов к общему мозгу: retrieval и замыкание LEARNING»
Вот, вероятно, самая дешёвая и самая доходная правка во всём этом модуле: у тебя стадия ⑨ LEARNING физически существует в конвейере, но холостая — оркестратор выключен, метрики с YouTube не текут автоматически обратно в банки памяти. Это не отсутствие архитектуры — архитектура есть, просто провод не подключён. Включить его — не значит строить что-то новое, значит замкнуть уже готовую цепь. Это разница между «складом, куда изредка кто-то заходит и что-то кладёт» и «мозгом, который постоянно обновляется от опыта».
Когда цепь замкнута, память становится общей доской — все сервисы видят одно состояние, вместо того чтобы каждый канал заново набивал шишки, которые уже набил другой. Но общая доска работает хорошо только если поиск по ней умный. Здесь легко ошибиться в сторону «просто засунь всё в векторную базу» — индустрия уже прошла этот путь и вернулась к более скромному решению: гибридный поиск (точный поиск по полю + смысловой поиск по тексту вместе), а не чистая векторизация. Для твоего масштаба (единицы-десятки каналов) это ещё проще: у тебя уже структурированный JSON, так что «поиск» по большей части — это фильтрация по полям (channel_id, format, niche), а не дорогие эмбеддинги. В vector DB торопиться не нужно — она оправдана при сотнях каналов и тысячах записанных дефектов, не раньше.
Отдельная тонкость, которую легко упустить: не всякий вопрос к памяти — вопрос «найди похожее». Есть вопросы про ВРЕМЯ («что изменилось за последний месяц» — не то же самое, что «найди похожий факт», это вопрос про тренд) и вопросы про ЦЕПОЧКУ причин («почему это правило вообще появилось» — нужно пройти по связке дефект → правило → канал). Если твой сегодняшний банк не умеет отвечать на такие вопросы структурированным запросом, а требует ручного пролистывания JSON — это конкретный, измеримый признак «склада», не «мозга». И последнее — экономика: раздели память на стабильную часть (DNA канала, редкие правила — кешируется дёшево) и volatile-часть (последние метрики — меняется часто), иначе одна свежая строчка рядом со стабильным блоком будет каждый раз сбивать весь кеш и заставлять платить заново за то, что вообще-то не изменилось.
Мультисигнальный retrieval: dense embeddings (смысл) + BM25 (точные сущности, даты) + entity matching (графовые связи). AWS-иерархия трёх уровней памяти: Working Memory (окно LLM, эфемерна) → Individual Long-Term Memory (память одного канала/агента) → Shared Multi-Agent Memory (коллективное состояние для всех). Без третьего уровня система «дублирует работу, производит противоречивые действия, впустую тратит токены». TTL-политика (по аналогии с AutoGen/AG2 Context Variables + TTL) — автоматическое затухание неподтверждавшихся давно правил, механически, скриптом (закон №3), не ИИ-ревизией.
Для любопытных
Система памяти Mem0 (апрель 2026) на бенчмарках LoCoMo/LongMemEval: 92.5 и 94.4 балла соответственно, при потреблении ~6 900 токенов на запрос против ~26 000 у full-context (сокращение ~73%). Наибольший прирост дали временны́е рассуждения (+29.6 точки — понимание эволюции истории, не просто похожий факт) и multi-hop поиск (+23.1 точки — прослеживание цепочки зависимостей). проверено дословно
Практический тест на «склад vs мозг» именно из этих двух категорий вынесен в виджет ниже — попробуй мысленно ответить на оба вопроса о своём заводе прямо сейчас, до того как жать кнопки.
Источник: pamyat.md (shared memory, retrieval, TTL, экономика памяти), primenenie.md §1.3.
🩺 Тест на 2 вопроса к memory-bank
Переключи «Сегодня» / «После доработки (retrieval + LEARNING замкнут)» и посмотри, как меняется ответ.
Вопрос 1 (временной): «Что изменилось в подходе к обложкам за последний месяц?»
Вопрос 2 (multi-hop): «Почему это правило вообще появилось в generator-банке?»
Открыть на своём заводе: прямо сейчас задай себе оба вопроса из виджета про свой настоящий memory-bank. Если на оба пришлось бы лезть в файлы руками — это твой конкретный пункт №1 в план первой недели (Модуль 11): включить оркестратор и замкнуть LEARNING.
🖼 Визуально
🏛️ Три уровня памяти — от окна модели до общего мозга
Жми «+ добавить уровень» — смотри, что появляется и что ломается без него.
🔍 Гибридный retrieval — 3 сигнала, разные вопросы
Включай/выключай сигналы — смотри, какой вопрос к памяти проседает без него. Веса иллюстративные, направление эффекта из источника: temporal +29.6, multi-hop +23.1.
⏳ TTL-затухание — правило без подтверждения
Двигай ползунок — сколько дней прошло с последнего подтверждения правила. Пороги ниже иллюстративные — точные дни TTL в источнике не названы.
Где здесь деньги: каждый раз, когда per-generator банк предотвращает повторение уже известного дефекта — это сэкономленные токены на генерацию и повторную QC-проверку. Замкнутая LEARNING — это не абстрактное «система умнеет», это конкретное снижение стоимости одного успешного видео со временем. При цели «десятки каналов» и бюджете $500-2000/мес это единственный способ, чтобы расходы не росли линейно вместе с числом каналов.
Как снять два человеческих гейта твоего завода и не проснуться утром к сожжённому бюджету или забаненному каналу. Это не абстрактная теория рисков — это прямое продолжение твоих пяти законов, только оформленных как архитектура, а не как «Лучиан помнит и одёргивает руками».
Урок 4.1 — «Guardrails — это не фильтр, а контроль доступа к действиям»
Когда слышишь слово «guardrails», хочется представить антивирус — программу, которая сканирует текст на плохие слова и блокирует явную дрянь. Это неверная картинка, и она может стоить тебе денег. Правильная картинка — иммунная система целиком: не один барьер, а несколько уровней защиты, каждый со своей задачей. Кожа не пускает внутрь всё подряд механически. Слизистые ловят то, что просочилось через кожу, другим способом. Врождённый иммунитет реагирует мгновенно и грубо — воспаление, температура. Приобретённый — медленнее, зато точнее, и учится на прошлых встречах с конкретным возбудителем. Ни один из этих уровней не заменяет остальные — они работают вместе, «внахлёст».
На твоём заводе сейчас всё это упаковано в два гейта — EDIT_PENDING и APPROVAL_PENDING — которые останавливают ВЕСЬ конвейер целиком, независимо от того, что именно происходит на шаге. Это как если бы иммунитет одинаково жёстко реагировал что на занозу, что на укус змеи — вместо того чтобы занозу вытолкнуть тихо и без шума, а на змею объявить общую тревогу. Разница между двумя ситуациями — это разница в риске и обратимости действия, а не в самом факте «что-то произошло».
Поэтому первый шаг к ночной автономии — не «выключить гейты», а разложить один общий гейт на матрицу: что читается (READ) — можно смотреть само по себе, без разрешения, это как дыхание; что пишется и обратимо (WRITE) — можно делать автоматически, но с проверкой на входе, как слизистая фильтрует; что удаляется навсегда (DELETE) — только с твоего явного «да», потому что это необратимо; и отдельная, самая жёсткая категория — ТРАТА денег, которая требует подтверждения ВСЕГДА, без исключений, даже если всё остальное автономно. Это твоя красная линия, и она одна не меняется никогда во всём курсе.
Формально это паттерн interaction guardrails: контроль на уровне действий (actions), а не на уровне текста. Матрица по умолчанию: READ → 100% автономно; WRITE → авто-с-валидацией; DELETE → 0% автономии, только человек; PAYMENT → 0% автономии + отдельный блокирующий подтверждающий эндпоинт. Технически денежный гейт должен быть программным контролем на уровне API (сервер физически отклоняет запрос сверх лимита), а не текстовой инструкцией модели в промпте — модель может «забыть» инструкцию под давлением заполненного контекста (context anxiety, разбирается в Модуле 5) или её обойти при prompt injection.
На заводе естественная точка встраивания такого budget-gate — уже существующий resource-governor.slot, брокер, через который и так проходят все платные вызовы (FastGen, MOSS-синтез, GPU-аренда). Budget-gate добавляет к нему три уровня реакции: в рамках дневного лимита — авто; выше лимита, но ниже разового потолка «дорогой операции» — авто с уведомлением постфактум; сверх разового потолка или явно помеченная дорогая категория (Veo, GPU-аренда) — блокирующий запрос подтверждения, например кнопка в Telegram, конвейер стоит на паузе до ответа.
Для любопытных
Итоговая матрица риска для конвейера ⓪→⑨: выбор темы и генерация скрипта — низкий риск, обратимо → 100% автономно. Генерация голоса/картинок/видео — средний риск (тратит деньги, но в рамках бюджета) → автономно, но под budget-gate. Обложки и SEO-пакет — низкий риск → автономно с QC. Переход APPROVAL → публикация на YouTube — средний-высокий риск (необратимо публично, репутация) → автономно, ЕСЛИ критик-агент прошёл порог evals (см. урок 4.2), иначе эскалация. Дорогая генерация (Veo, большие прогоны, аренда GPU) и DELETE проекта/канала/отзыв OAuth — высокий риск → всегда подтверждение, без исключений.
Второй урок из полевых данных — не только денежный circuit-breaker нужен, но и репутационный: даже если формально трата денег не происходит, публичный провал (шквал негативных комментариев, страйк платформы, аномальная метрика сразу после публикации) должен сам приостанавливать систему и звать человека. Индустрия помнит McDonald's AI-бота, который вирусно отвечал сарказмом на жалобы клиентов — компанию заставили отключить систему целиком. Полная автономия без такого предохранителя — второй провальный полюс, симметричный «бутылочному горлышку» одобрений на каждом шаге.
Источники: nadezhnost.md §1, §2, §6; 01-owner-and-rules.md (твоё нынешнее «дорогое не запускать самому — спросить»).
🧭 Матрица риска — расставь шаги конвейера по уровню автономии
Тапни шаг, затем тапни уровень автономии, который ему подходит. Правильные ответы подсветятся зелёным.
Выбери шаг конвейера.
Открыть на своём заводе:ssh root@VPS; cat apps/resource-governor/config.json | grep -i limit (или посмотри портал :4700) — проверь, есть ли уже дневной/часовой лимит трат по каналу. Если нет — это первая дыра, которую матрица риска просит закрыть.
🖼 Визуально
⚖️ Два провальных полюса — бутылочное горлышко vs McDonald's-сценарий
Двигай ползунок вдоль спектра автономии — крайности одинаково плохи, только по разным причинам.
💰 Денежный гейт — три уровня реакции + где он живёт
1) Выбери ситуацию с тратой. 2) Выбери, ЧЕМ гейт реализован — текстом в промпте или кодом на сервере.
Ситуация:
Реализация гейта:
Выбери ситуацию сверху.
🧬 Иммунная система целиком — четыре уровня, не один фильтр
Тапни уровень — увидишь, как он работает и почему он не заменяет остальные три.
Тапни любой из четырёх уровней сверху.
Урок 4.2 — «Критик-агент решает о публикации: evals»
В профиле ты сформулировал цель просто: «агент-критик сам решает о публикации по чек-листу — человек смотрит только метрики». Это отличная цель, но у неё есть техническая ловушка, о которой стоит знать заранее. Если попросить ту же модель, которая только что сгенерировала видео, оценить своё же видео — она, скорее всего, его похвалит, даже если качество очевидно посредственное для стороннего наблюдателя. Это не баг конкретной модели, это системное свойство: автор своей работы плохо видит собственные слабые места, и ИИ здесь не исключение из человеческого правила «врач не оперирует сам себя».
Решение — то же, что придумала медицина много веков назад для той же проблемы: независимый критик. Не «попроси ту же модель самокритично взглянуть на своё видео в том же разговоре» — а отдельный агент, с отдельным чистым контекстом, который видит только готовый артефакт и чек-лист требований, без рассуждений автора о том, почему он сделал именно так. проверено — именно этот паттерн вывела команда Anthropic после нескольких неудачных попыток: «из коробки Claude — плохой QA-агент», пока не изолировали роль критика полностью.
Но одной изоляции роли мало — нужен ещё и сам чек-лист, причём измеримый, а не «хорошо ли видео в целом». Твой чек-лист из профиля — хук, визуал, звук, факты — уже правильно сформулирован именно как набор проверяемых пунктов, а не как расплывчатое «качество». Плюс к явным критериям добавляется ещё одна тонкость: веса критериев нужно подгонять под известные слабые места модели. Если факт-чек у неё систематически слабее визуального QC — вес факт-чека в итоговом вердикте должен быть выше, иначе критик будет пропускать именно те ошибки, которые сам плохо ловит.
Без evals решение о публикации остаётся «vibes-based evaluation» — субъективной оценкой без измеримой базы. Практическая рецептура: 25-50 куратированных примеров с известным исходом (retention, CTR, страйки), 2-3 ключевые метрики, разметка один раз вручную — одноразовая инвестиция, дальше evaluator-агент судит по этому бенчмарку. Offline evals = проверка ДО публикации по чек-листу (unit-тест для контента). Online evals = мониторинг ПОСЛЕ (реальный retention, аномалии в комментариях) — это ровно то, что должно замкнуть холостую сейчас стадию ⑨ LEARNING (см. Модуль 3).
Три условия рабочего evaluator-агента: (1) измеримые критерии вместо «хорош ли скрипт» — конкретно «хук ≤ 3 предложения, факт-чек по каждому утверждению»; (2) веса критериев под слабые места конкретной модели; (3) реальный доступ к артефакту, а не к описанию — у тебя это уже частично есть в Haiku vision QC thumbnail-studio, которая реально «смотрит» на обложку, а не читает промпт про неё.
Для любопытных
Метрики отказов из практики, на которые стоит калибровать ожидания: частота отказов tool calling в production — 3-15%, то есть часть вызовов FastGen/MOSS/QC будет проваливаться штатно, нужен retry-лимит, а не паника. Реалистичный SLA агентной системы осторожно — 85-95% успеха на простых задачах с человеком на edge cases, а не 99,99% как у классического ПО. ROI автономного критика проявится не с первой ночи, а за несколько недель калибровки на твоём датасете.
Break-even для человеческой проверки экономически прост: если страйк или бан канала стоит недель работы и потери монетизации, а 30 секунд твоего внимания на подтверждение в Telegram стоит условно ноль денег (но занимает лимитированное время), порог эскалации нужно калибровать не по деньгам, а по риску необратимости — это та же логика, что и в матрице риска урока 4.1.
Источники: nadezhnost.md §4, §7.6.
🩺 Конструктор чек-листа критика
Подвинь вес каждого критерия (сумма не обязана быть ровно 100 — важна относительная важность), отметь, прошёл ли критерий, и посмотри итоговый вердикт.
Настрой веса и отметки — вердикт появится здесь.
Открыть на своём заводе: посмотри в memory-bank или в UI, есть ли уже структура для хранения исходов прошлых видео (retention, страйки, жалобы). Если нет — это и есть первый шаг: собери 30-50 карточек прошлых видео с известным исходом, вручную размеченных по хуку/визуалу/звуку/фактам, прежде чем давать критику решать самому.
🖼 Визуально
🩺 «Врач не оперирует сам себя» — та же модель vs независимый критик
Одно и то же посредственное видео. Тапни, кто его оценивает.
Тапни вариант оценки сверху.
🔁 Offline vs Online evals — где на конвейере какая проверка
Тапни OFFLINE или ONLINE — подсветятся стадии конвейера, где эта проверка работает.
Тапни OFFLINE или ONLINE сверху.
📉 Реалистичный SLA агентной системы — не 99,99%
Двигай ползунок — какую цель по успешности ставить агентному конвейеру.
Целевой SLA: 90%
Урок 4.3 — «Loop of Death и почему длинные цепочки рушатся»
Есть простая арифметика, которая объясняет, почему у тебя вообще стоят гейты, и почему длинная автономная цепочка без остановок статистически обречена спотыкаться. Если каждый шаг конвейера выполняется правильно с вероятностью 95% — что вообще-то неплохой показатель — то цепочка из 10 шагов подряд (ниша → концепт → тема → генерация → QC → обложки → SEO → approve → upload → learning) успешна целиком лишь в районе 60% случаев. осторожно Это не пессимизм и не мистика — просто вероятности независимых событий перемножаются, и десять шагов подряд без единой проверки — это как десять монеток подряд лечь одной стороной.
В медицине у этой идеи есть прямая параллель — контрольная точка. Каждый раз, когда врач проверяет пациента между этапами длинного лечения, вероятность общего успеха не остаётся единой длинной цепочкой — она «перезагружается» на каждой проверке. Именно поэтому твои гейты стоят не где попало, а на самых дорогих и необратимых шагах: они разбивают одну хрупкую цепочку на несколько более коротких и надёжных.
Но есть и обратная, более коварная ловушка — Loop of Death: агент делает шаг с ошибкой, среда сообщает об ошибке, агент «исправляет» — и исправление плодит новую ошибку, цикл повторяется, сжигая на каждом витке самые дорогие токены. Это не гипотетический риск — у тебя это уже случалось буквально: повторные kill+relaunch+resume загоняли прогон в 409 Conflict, а стадия зависала в failed навсегда. Твоё собственное правило «чинить вперёд, не с нуля» и совет «не thrash'ить stop/resume» — это полевым опытом найденная версия того же самого рецепта, который советует индустрия: жёсткий лимит попыток, а не бесконечное «ещё разок».
Индустриальный рецепт для Loop of Death — «tiered computation»: smart routing (дешёвая модель классифицирует сложность проблемы до отправки в дорогую), semantic caching (40% подзадач обслуживается из кеша, без пересчёта) и sandboxed execution с жёстким лимитом попыток (max 3). Результат в исходном кейсе: проверено −70% расходов, 99,9% надёжность.
Практически для завода это значит: retry-лимит на каждую стадию конвейера должен быть явным числом в конфиге, а не «агент разберётся сам»; после N неудачных попыток — не бесконечный цикл, а эскалация человеку или fallback на альтернативный путь (другой провайдер, другой шаблон). Плюс отдельный, ещё не формализованный у тебя механизм — кеш промежуточных ВЫЧИСЛЕННЫХ артефактов конвейера («эта ниша уже анализировалась вчера, не пересчитывать»), а не только prompt caching на уровне одного вызова модели.
Для любопытных
Важная методологическая деталь про цифру 0.9510 ≈ 60%: это чистая арифметика вероятности независимых событий, а не измеренный на реальных прогонах показатель твоего конвейера — используй её как интуицию «зачем нужны чекпойнты», а не как точный прогноз «60% моих видео провалятся». Настоящая частота отказов на твоём заводе может быть и выше, и ниже — зависит от того, насколько шаги реально независимы (а обычно они не полностью независимы: если ниша выбрана плохо, это тянет вниз и тему, и SEO).
Ещё одна ошибка индустрии, задокументированная отдельно: 100% автономность буквально — это «unfixable problem» для текущего поколения моделей (Codemanship, февр. 2026), потому что модель не может надёжно понять, что задача вышла за рамки её знаний. Рабочий паттерн — «держи firehose в коротких управляемых очередях» (hold the firehose in short, controlled bursts): небольшие проверяемые фазы с чекпойнтами между ними, а не один непрерывный десятичасовой прогон без остановок.
Крути число шагов и точность на шаг — смотри, как падает итоговая надёжность, и что даёт один чекпойнт посередине цепочки.
Шагов в цепочке: 10
Точность на шаг: 95%
Открыть на своём заводе:grep -r "409\|retry\|max_attempts" apps/*/config.json 2>/dev/null — проверь, есть ли уже явный числовой лимит попыток на стадиях, или конвейер полагается на «агент как-нибудь разберётся». Это и есть разница между управляемым Loop-of-Death и неуправляемым.
🖼 Визуально
🌊 Firehose в коротких очередях — не один десятичасовой прогон
Тапни режим — одна и та же ошибка на одном и том же месте, разная цена сбоя.
Тапни режим сверху.
🔥 Симулятор Loop of Death — жми «Ещё попытка»
Агент словил ошибку и «чинит». Каждая попытка стоит токенов. Сравни с лимитом попыток и без.
🧩 Tiered computation — рецепт против Loop of Death
Тапни по шагу цепочки — три независимых механизма, каждый экономит своё.
Тапни любой из трёх шагов сверху.
Урок 4.4 — «Sandbox и безопасность: изолируй ночного строителя от секретов завода»
Твой первый приоритет года — строитель приложений: система, которая ночью сама пишет и запускает код без присмотра. Это самая рискованная часть будущей системы именно потому, что она буквально исполняет непроверенный код, а не просто генерирует текст. Представь это как приём нового, ещё не проверенного лекарства: пока ты не знаешь всех побочных эффектов, его испытывают не сразу на пациенте, а сначала в изолированной пробирке, отдельно от остального организма. Sandbox — это ровно такая пробирка для кода: место, где ошибка или неудачный эксперимент не может дотянуться до здорового организма.
Твой завод уже использует Docker для всех 16+ сервисов — это хорошая базовая изоляция, но не абсолютная. Контейнеры делят одно ядро операционной системы хоста, и если в этом ядре найдётся дыра, она теоретически пробивает все контейнеры разом — как если бы «пробирки» стояли в одном инкубаторе с общей вентиляцией. Для доверенного, известного кода (твои боевые сервисы) это приемлемый риск. Но для НОЧНОГО СТРОИТЕЛЯ, который сам пишет и запускает произвольный код без присмотра, этого уровня изоляции может быть недостаточно — особенно если он крутится на том же VPS, где живёт боевой завод.
Отсюда простое и жёсткое правило: ночной билдер приложений по умолчанию НЕ должен видеть секреты завода вообще — ни YouTube OAuth-токены, ни .env боевых сервисов, ничего, кроме явно прокинутых тестовых ключей. Это прямое расширение твоего же правила «секреты не отдавать третьим сервисам без спроса», только теперь применённое не к внешним интеграциям, а к твоему собственному будущему агенту-строителю. Второй жёсткий инвариант, который у тебя уже есть и который нельзя ослаблять: прямые порты сервисов биндятся только на 127.0.0.1, наружу торчит только Caddy с SSO. Это ровно то, чего не хватало тысячам публично уязвимых инстансов чужих агентных систем.
Три уровня изоляции с разным trade-off: Docker — достаточен для доверенного кода, слабое место — общее ядро хоста; gVisor — user-space ядро, перехватывает syscalls, оверхед 10-30% на I/O и 50%+ на системные вызовы; Firecracker microVM — рекомендуемый стандарт для недоверенного production-кода: загрузка ~125ms, оверхед памяти <5MB, аппаратная изоляция через KVM (используют E2B/Modal).
Defense-in-depth — четыре независимых слоя, ни один не заменяет другой: (1) guardrails на входе (фильтр промптов/вызовов до выполнения), (2) sandbox (изолированная VM), (3) ограничение ресурсов (CPU/память/disk I/O лимиты), (4) мониторинг (каждое действие логируется, может быть остановлено). Практический вывод: microVM-песочница на VPS (или отдельная изоляция на домашнем ПК с 3090, где Docker/gVisor уже достаточно, поскольку это не публичный prod) — с артефактом, который выгружается в боевой репозиторий только после прохождения evals.
Для любопытных
Урок из чужого провала: в OpenClaw нашли проверено CVE-2026-25253 (CVSS 8.8) — удалённое исполнение кода через WebSocket-инъекцию, эксплуатируемое из-за того, что десятки тысяч инстансов были публично доступны на 0.0.0.0:18789 без файрвола. осторожно Уточнение по масштабу проблемы: экспозиция — в основном ошибка настройки пользователей (LAN-режим), не единственно небезопасный дефолт «из коробки»; и доля вредоносных community-скиллов на ClawHub цитируется по-разному в разных источниках (около 7-12%), это не единая проверенная цифра.
Прямая параллель с твоим заводом, которую нужно закрепить как жёсткое правило, а не случайность: у тебя УЖЕ порты сервисов ограничены 127.0.0.1, наружу — только через Caddy+SSO. Это ровно то, чего не хватало уязвимым инстансам OpenClaw. Правило нужно распространить и на будущего ночного билдера: никакой новый сервис, который он создаст, не должен биндиться на 0.0.0.0 без явного прохождения через Caddy+SSO слой, и любой скачанный «из интернета» скилл/плагин должен проходить явную ревизию перед использованием в проде — как минимум, прочитан хотя бы бегло, а не установлен вслепую.
Источники: nadezhnost.md §3, §7; deploy-ui.md §6.
🧫 Сравнение изоляции — Docker / gVisor / microVM
Тапни вариант изоляции — увидишь оверхед, уровень защиты и когда его достаточно.
Открыть на своём заводе:ssh root@VPS; ss -tlnp | grep -v 127.0.0.1 — если в выводе есть что-то кроме Caddy на публичном интерфейсе, это дыра, которую нужно закрыть ДО того, как заводить ночного билдера приложений.
🖼 Визуально
🌙 Путь ночного билдера — от кода до боевого репозитория
Тапни каждый узел цепочки по порядку.
Тапни любой узел сверху.
🛡️ Defense-in-depth — четыре слоя, ни один не заменяет остальные
Все 4 слоя включены по умолчанию. Выключай по одному — смотри, какой конкретно риск остаётся непойманным.
🔌 0.0.0.0 vs 127.0.0.1 — куда смотрит порт сервиса
Тапни вариант биндинга — увидишь, что из этого получается.
Тапни вариант биндинга сверху.
Где здесь деньги: денежный гейт как код (hook на resource-governor.slot), а не как обещание модели «я спрошу перед тратой» — это и есть защита от «монстра, кушающего $1000 в минуту». Cost control — это архитектура (сторож-скрипт вроде moss_worker_guard.py, который уже спас тебя от ~$38/сутки холостого GPU), а не «взять модель подешевле». Изолированный критик с калиброванными evals экономит и деньги, и репутацию канала — который стоит недель работы, если его забанят. А песочница для ночного билдера — это страховка от одной плохой ночи, которая может дотянуться до боевых секретов и остановить весь завод разом.
Модуль 5
Токеномика: дешёвая система BY DESIGN
Твоя личная боль — 1 миллион токенов на одной 12-шаговой задаче — не случайность и не «так работает ИИ». Это конкретный, диагностируемый и лечимый симптом. Этот модуль — твоя аптечка: откуда берётся расход, какие пять рычагов его снижают, и как поставить систему на стоп-кран раньше, чем она станет «монстром за $1000/минуту».
Урок 5.1 — «Метаболизм системы: откуда берутся токены»
В медицине ты знаешь: чем больше и активнее орган, тем больше энергии он тратит на метаболизм — и не вся эта энергия уходит на полезную работу, часть сгорает просто на поддержание процесса. С токенами в агентных системах — то же самое. Каждое слово, которое модель читает или пишет, стоит энергии (денег). И вот ключевой факт, который объясняет твою боль: чем больше «органов» включается в один разговор, тем не линейно, а взрывообразно растёт расход. Простой чат — это как человек, спокойно сидящий в кресле: минимальный метаболизм, единица энергии. Один агент с инструментами — это уже человек, который встал и начал что-то делать руками: он тратит примерно в 4 раза больше. А вот полноценная мультиагентная система, где несколько «органов» работают над одной задачей одновременно, — это уже бегущий марафон: расход взлетает примерно в 15 разосторожно относительно простого чата (цифра research-системы Anthropic, не универсальное свойство мультиагентных систем).
Почему так много? Потому что 80% этого расхода — это не «модель стала умнее думать», а просто объём текста, который гоняется туда-сюда проверено. Представь консилиум врачей, где перед каждым новым специалистом зачитывают ВСЮ историю болезни с самого начала — включая черновики, отменённые гипотезы и разговоры между собой, — вместо краткой выписки. Именно это происходит, когда субагенты не изолированы: каждый получает не «выжимку под свою задачу», а всю историю разговора целиком, и оплачивает её прочтение заново.
Твой личный опыт с 1M токенов на 12-шаговой задаче — это ровно такой случай: система «перечитывала одно и то же» на каждом шаге, вместо того чтобы держать общий обзор в одном компактном месте, а детали доставать по запросу. Это не о том, что модель «плохая» — это о том, что архитектура задачи не разделяла контекст на «нужно всегда» и «нужно иногда». Хорошая новость: примерно 70% оплаченных токенов в типичных многоагентных прогонах вообще не приносят пользы осторожно (вторичный источник, не Anthropic напрямую) — то есть даже без магии, просто убрав это бесполезное сгорание, экономия огромная и реальная.
Есть и вторая, более скрытая причина раздувания — техническая механика самого инструмента (Claude Code), которую стоит знать как врач знает фармакокинетику препарата. Разговор автоматически «сжимается» (автокомпакция), когда давление контекста достигает примерно 167 тысяч токенов — но при сжатии система оставляет лишь несколько последних файлов, а всё остальное — рассуждения, промежуточные решения, прочитанные файлы — сминается в один плотный блок. Чтение одного файла обрезается на 2000 строках — без предупреждения, что хвост файла не виден вообще. А если результат работы инструмента длиннее 50 тысяч символов, он сохраняется на диск, а агенту показывается только превью — и агент искренне не подозревает, что видит не всё (например, grep «нашёл» 3 совпадения из реальных 47). Это как если бы врач читал только первую страницу анализа крови и был уверен, что видит полную картину.
Формально: чат = 1× токенов, агент с инструментами ≈ 4×, полноценная мультиагентная система ≈ 15× относительно baseline-чата проверено (Anthropic). При этом 80% вариативности качества/стоимости объясняется объёмом использованных токенов, а не выбором модели или числом вызовов инструментов проверено.
Механика Claude Code, значимая для его завода: автокомпакция при ~167K токенов контекстного давления (сохраняет до 5 файлов ≤5K токенов каждый + один сжатый блок ~50K, теряя цепочки рассуждений); чтение файла — хардлимит 2000 строк / 25000 токенов без явного сигнала об обрезке; вывод инструмента >50000 символов уходит на диск, в контекст попадает превью 2000 байт. У субагентов — собственный изолированный контекст (свой цикл компакции, свой бюджет), и лимита на число параллельных субагентов по умолчанию нет — 5 параллельных субагентов дают суммарно ~835K токенов рабочей памяти вместо 167K у одного. Источник этих цифр — реверс-инжиниринг внутренностей Claude Code, не официальная документация Anthropic (см. «для любопытных»).
Для любопытных
Цифры автокомпакции, лимита чтения файла (2000 строк / 25000 токенов) и обрезки вывода инструмента (>50000 символов → превью 2000 байт) взяты из независимого реверс-инжиниринга исходников Claude Code, опубликованного в X (не из официальной документации Anthropic) — используй их как ориентир поведения инструмента, а не как гарантированную константу, которая не изменится в следующей версии.
Сравнение стоимости по задаче из того же корпуса материалов: чат ≈ $0.0005/задача, Claude Opus в связке инструмент+рассуждение ≈ $0.01-0.02/задача, GPT-4-класс агент ≈ $0.03-0.05/задача — порядок величин, не прайс-лист.
Практический вывод для твоего завода: если субагент получает «весь контекст на всякий случай» вместо выжимки под конкретную подзадачу, ты платишь 15×-эффект даже не заметив, потому что каждый субагент — это отдельный, изолированный, полностью оплачиваемый заново контекст.
📈 Визуализация раздувания контекста — 12-шаговая задача
Двигай ползунок «шаг задачи» — смотри, как растёт счётчик токенов без изоляции, и как та же задача выглядит, если субагенты получают только выжимку.
Открыть на своём заводе: возьми любую свою длинную сессию в Claude Code и прогони /checkup (чистка неиспользуемых skills/MCP, дедупликация CLAUDE.md) — или просто посмотри в UI Cowork/CLI счётчик токенов сессии в момент, когда задача переваливает за шаг 6-7. Заметь, ускоряется ли рост.
🖼 Визуально
✂️ 3 скрытые ловушки — что Claude Code режет без предупреждения
Жми на блок — увидишь, что именно обрезается и почему агент об этом «не подозревает».
Тапни блок выше — увидишь механику и последствие.
🧍🚶🏃 Метаболизм: чат vs агент vs мультиагент
Жми на режим — увидишь, во сколько раз он «съедает» больше энергии (токенов), чем спокойный чат.
Тапни режим — увидишь разницу в расходе и почему.
🧩 Параллельные субагенты — рабочая память умножается
Двигай ползунок «число параллельных субагентов» — у каждого свой изолированный контекст ~167K.
Урок 5.2 — «Пять рычагов экономии»
Хорошая новость: с раздутым метаболизмом работают ровно так же, как с раздутым обменом веществ у пациента — не одним чудо-лекарством, а набором из нескольких конкретных, скучных, работающих привычек. Вот пять рычагов, и лучшая новость в том, что три из них ты уже интуитивно применяешь.
1. Контекстная изоляция субагентов. Каждый «специалист» получает только то, что нужно для его конкретной задачи — не всю историю болезни пациента, а выписку по профилю. Твой оркестратор должен передавать субагенту выжимку, а не сырой лог всего, что происходило раньше.
2. Внешняя память вместо контекста. Промежуточные результаты — не держать «в голове» (в разговоре с моделью), а записывать в файл или memory-bank, и читать обратно только когда реально нужно. Это как записи в карте пациента вместо попытки держать весь анамнез в оперативной памяти врача.
3. Компакция и свежая сессия на новый этап. Когда задача переходит в новую фазу — не тащить раздутый хвост разговора дальше, а сжать суть в прогресс-файл и начать почти с чистого листа. Как выписка при переводе пациента в другое отделение: не копия всей истории болезни, а сжатая суть плюс ссылка на полную карту.
4. Лестница моделей. Не всякая задача требует главного врача-профессора. Механическую рутину — быстрой и дешёвой модели («хайку»-уровень); код и анализ по чёткому ТЗ — модели среднего уровня («сонет»-уровень); архитектурные решения и синтез разных мнений — самой мощной и дорогой модели («опус»-уровень). Твоё собственное открытие с замерами — на чётких код-задачах модель среднего уровня даёт тот же результат, что дорогая, но в разы дешевле — это не совпадение, а системный паттерн, который индустрия называет «умной маршрутизацией».
5. Mechanical-first — скрипт вместо ИИ. Если задачу можно решить детерминированным кодом (посчитать, найти по шаблону, отфильтровать) — не зови модель вообще. Твой собственный замер: аудит 10 инструментов через LLM обошёлся примерно в 4 миллиона токенов, а тот же самый аудит через grep — в ноль. Это как разница между «попросить консилиум врачей прочитать всю историю болезни, чтобы найти одну дату» и «нажать Ctrl+F».
Формально: (1) context isolation субагентов — минимальный контекст на подзадачу; (2) внешняя память вместо удержания в контексте; (3) компакция/суммаризация между этапами + новая сессия per-phase вместо продолжения раздутого диалога; (4) лестница моделей (tiered routing) — малая модель классифицирует сложность и направляет задачу на подходящий по цене уровень; (5) mechanical-first — детерминированный код там, где не нужно вероятностное рассуждение.
Retrieval как частный случай рычага №2: гибридная выборка 5-10 релевантных записей из memory-bank вместо полного банка обходится ≈6900 токенов на запрос против ≈26000 у full-context подхода — разница почти в 4 раза на каждый вызов проверено (Mem0, бенчмарки LoCoMo/LongMemEval).
Для любопытных
Индустриальный аналог твоей лестницы моделей — «smart routing»: лёгкая модель классифицирует сложность задачи и маршрутизирует на дешёвую или дорогую модель. В связке с семантическим кешированием (обслуживание похожих подзадач из кэша без единого нового токена, до ~40% подзадач) и лимитом попыток на самоисправление это давало практикам до 70% экономии токенов и 99.9% надёжности прогона проверено дословно.
Твой собственный замер (07.07): на чётких код-задачах модель среднего уровня (Sonnet) даёт тот же результат, что топовая (Opus), но в ×4 дешевле — независимо выведенная версия того же принципа «smart routing», к которому пришла вся индустрия.
Аналогичный паттерн вне твоего стека: инструмент, который перед вызовом дорогой модели «сжимает» 50 строк кода в одну через механическое правило, даёт −80…94% объёма кода на входе, −47…77% стоимости и в 3-6 раз быстрее — прямое подтверждение твоего закона №3 в чужой реализации.
🪜 Лестница моделей — кинь задачу на нужную ступень
Тапни тип задачи — увидишь, на какую ступень её кидать и почему.
🧮 Калькулятор: grep vs LLM-аудит
Сколько инструментов/файлов нужно проверить и сколько токенов в среднем уходит на один LLM-проход одного файла — увидишь разницу.
Открыть на своём заводе: выбери одну свою длинную сессию с сабагентами и посмотри, что реально передаётся в промпт субагента — всю историю или выжимку? Если всю — это первый кандидат на рычаг №1.
🖼 Визуально
📦 Рычаг 3 — компакция и свежая сессия на новый этап
Переключи режим, потом жми на этап — увидишь размер контекста на входе в этот этап.
Жми на этап — увидишь, с каким контекстом он стартует.
💾 Рычаг 2 — внешняя память вместо контекста
Жми «+ добавить промежуточный результат» несколько раз в каждом режиме — смотри, что происходит с контекстом.
🔗 Рычаг 1 — контекстная изоляция субагента
Переключи режим, потом жми на субагента — увидишь, сколько токенов он получает от оркестратора.
Жми на субагента — увидишь объём, который он получает.
📚 Retrieval — гибридная выборка vs весь memory-bank
Переключи режим — сравни стоимость одного запроса к памяти.
Урок 5.3 — «Стоп-краны и бюджеты на задачу»
У тебя уже есть личное правило, выстраданное практикой: если прогон съедает больше 250 тысяч токенов из кеша или больше $0.50 — стоп, пересобрать задачу заново, а не гнать дальше. Это не случайная цифра из воздуха — это твой собственный стоп-кран, и в индустрии он называется ровно так же, как звучит: предохранитель, который разрывает цепь до того, как утечка станет катастрофой. В медицине это жгут при кровотечении — накладывается не после того, как пациент потерял пол-литра крови, а сразу при первых признаках, что кровотечение не останавливается само.
Второй важный кусок экономики — это кеширование промптов. Смысл простой: если в начале каждого запроса стоит одно и то же (правила, системный промпт, стабильная часть профиля канала) — платить за перечитывание этого блока каждый раз заново глупо, и провайдер даёт скидку на повтор. Но это работает только если стабильная часть действительно НЕ меняется от вызова к вызову. Если ты кладёшь весь profile.json целиком в каждый вызов, не разделяя «то, что редко меняется» (правила канала, DNA) и «то, что меняется каждый раз» (последние метрики, свежие события) — быстро меняющийся кусок «сбивает» кеш у соседнего стабильного, и ты платишь по полной цене за весь блок. Аналогия: если карточка аллергий пациента подшита в одну пачку с ежедневными записями медсестры, то при каждом обновлении записи медсестры приходится заново копировать всю пачку — вместо того чтобы карточка аллергий лежала отдельно и переиспользовалась без изменений.
Третий кусок — честный вопрос «подписка или API». При твоём объёме использования (десятки каналов, ежедневная работа) месячная подписка Claude почти наверняка выгоднее оплаты по токенам за API — это уже твоё текущее решение, и оно правильное. Но здесь есть юридическая тонкость, которую стоит прояснить ДО того, как ты начнёшь коммерчески масштабировать систему на подписке: условия использования подписки для программного доступа (Agent SDK, автоматические ночные прогоны без твоего личного клика) в некоторых сценариях описаны неоднозначно даже самими практиками индустрии. Это не повод паниковать — это повод один раз списаться с поддержкой Anthropic и получить письменный ответ, прежде чем строить на этом бизнес для десятков клиентов.
И последнее — мониторинг. Стоп-кран работает только если ты видишь цифру ДО того, как она стала катастрофой, а не после. Панель с $/задача, $/день и алертами — это твой пульсоксиметр: не лечит сама, но кричит раньше, чем станет поздно.
Формально: budget gate — жёсткий потолок на прогон (токены и/или деньги), при превышении — блок и требование подтверждения, а не молчаливое продолжение. Твоё правило «>250K cache-read или >$0.50 — стоп» — это конкретная реализация rate limiting + circuit breaker на уровне отдельной задачи, а не всей системы.
Prompt caching снижает стоимость повторного чтения СТАБИЛЬНОГО контента, но не даёт эффекта на volatile-содержимом (растущий log.jsonl, часто обновляемые метрики). Архитектурное правило: стабильная часть — в начало промпта (кешируется), volatile — отдельно и маленькой (не сбивает кеш соседнего блока).
Юридический нюанс использования Agent SDK / claude -p в коммерческом/распределённом сценарии на условиях подписки описан индустрией как неоднозначный — рекомендация прояснить напрямую у Anthropic перед масштабированием на клиентов, а не полагаться на неофициальные трактовки.
Для любопытных
Замер практиков: 40% подзадач в многошаговых прогонах можно обслужить из семантического кеша без единого нового токена — это отдельный, более широкий механизм, чем prompt caching стабильного текста, но принцип тот же: не платить дважды за то, что уже посчитано.
Индустриальное предупреждение, дополняющее твой стоп-кран: контекстное окно эффективно используется лишь на 50-60% от заявленного размера — не начинай сложный, дорогой шаг задачи «на половине разговора», лучше принудительно сжать/начать заново по факту смены этапа задачи, а не по факту физического переполнения токенов.
Цитата о юридической неопределённости (X, разработчик, лояльный пользователь Claude): «Claude Code = OK / Agent SDK в личном софте = OK... наверное? / Agent SDK в коммерческом софте = НЕ OK / claude -p на распределённых песочницах = ?? ...такая раздражающая нехватка ясности». Прояснить у Anthropic перед продажей MVP клиентам на этой модели.
📊 Дашборд burn-rate — макет
Задай дневной бюджет и текущий расход — посмотри, как загорается алерт стоп-крана.
⚖️ Подписка vs API — точка окупаемости
Двигай «часов интенсивной работы в день» — увидишь, при каком объёме подписка выгоднее оплаты по токенам.
Открыть на своём заводе: зайди в панель resource-governor (порт 4700) и найди, есть ли там сейчас хоть один показатель $/задача или $/день. Если нет — это первый кандидат для Модуля 8 (панель) и прямая реализация стоп-крана из этого урока.
🖼 Визуально
🧬 Prompt caching — стабильное vs volatile
Переключи режим — увидишь, что происходит с ценой, если volatile-часть лежит рядом со стабильной.
📉 Контекстное окно — заявленный vs эффективный размер
Двигай ползунок «заполнение окна» — увидишь зону, где качество уже проседает, хотя место физически ещё есть.
🛑 Стоп-кран — цепочка проверки перед продолжением
Прогони пример через цепочку — увидишь, где сработает твоё правило «>250K cache-read или >$0.50 — стоп».
Жми пример — увидишь, по какой ветке пойдёт цепочка.
Где здесь деньги: это весь модуль про деньги напрямую. Каждый из пяти рычагов — это не «оптимизация ради красоты», а прямая защита твоего бюджета $500-2000/мес от превращения в «монстра за $1000/минуту». Дешевизна by design — предусловие того, чтобы масштаб до десятков каналов и параллельных MVP-вееров вообще помещался в разумные деньги, а не рос линейно с числом задач.
Твой приоритет №1: система, которая по одной команде строит сайт, тулзу или MVP ночью, без тебя. Хорошая новость — ты уже знаешь этот паттерн наизусть, просто на другом материале. Здесь мы переносим его с видео на код.
Урок 6.1 — «Тот же паттерн, новый артефакт: код+UI вместо видео»
Есть соблазн думать, что «строитель приложений» — это отдельный, совершенно новый зверь, который надо изучать с нуля, скачивать какой-то фреймворк, читать толстую документацию. Хорошая новость: это не так. Это тот же паттерн, который ты уже месяц эксплуатируешь на видео-заводе — специализированные роли, гейты одобрения, память, независимая проверка качества — просто применённый к другому конечному продукту. Раньше выход конвейера — готовое видео. Теперь выход — работающий код с интерфейсом. Организм тот же, просто вместо органа, который делает видео, вырастает орган, который делает софт.
Мировая индустрия ночных кодинг-агентов сошлась примерно на трёх больших семьях архитектур, и все три — это просто три разных ответа на вопрос «как устроить тело». Первая — это то, чем ты уже реально пользуешься: Claude Code с его шестью «кирпичиками» (CLAUDE.md как конституция репозитория, скиллы, субагенты, слэш-команды, хуки-стражники и внешние коннекторы). Вторая — архитектура Devin: четыре РАЗНЫХ роли — планировщик, кодер, критик, «браузерный агент», который сам открывает приложение глазами. Третья — OpenHands: система, где вообще всё записывается в неизменяемый журнал событий, чтобы после сбоя можно было честно восстановиться, а не гадать, что произошло.
Разница твоего будущего строителя приложений с видео-заводом на самом деле сводится всего к двум местам. Первое — как ты проверяешь результат «на глаз»: видео ты смотришь, а код с интерфейсом нужно не «прочитать», а сфотографировать в работающем виде — сделать скриншот и посмотреть, не наехал ли текст на кнопку. Второе — что является «единицей параллельности»: на видео-заводе ты параллелишь темы для роликов, а тут параллелишь целые архитектурные варианты одного и того же решения (три-десять разных MVP на одну и ту же боль клиента). Всё остальное — оркестрация, брокер ресурсов, память, экономика токенов — переносится буквально, один в один.
Три референсные архитектуры: Claude Code (CLAUDE.md / Skills / Subagents с тремя типами доступа — Explore read-only, Plan без изменений кода, General-purpose полный / Slash commands / Hooks — детерминированный код, который «не может галлюцинировать» / MCP-серверы); Devin (Cognition AI) — составная модель Planner→Coder→Critic→Browser Agent с self-correcting code (тесты упали — чинит текущую задачу, не идёт дальше); OpenHands — событийная (event-sourced) архитектура, все взаимодействия — immutable events в логе, что даёт deterministic replay и надёжное восстановление после сбоя.
Для тебя вывод простой: мозг (`claude -p`, мульти-аккаунт failover) уже выбран, поэтому фундамент — Claude Code примитивы; роль Devin-разделения ты реализуешь субагентами с разными system prompt и разными правами инструментов — ровно как channel-forge отдельно от channel-hq у тебя сегодня; урок OpenHands — писать state в файлы/JSONL, не в контекст одной длинной сессии.
Для любопытных
Ключевая цитата про хуки из источника: «hooks execute deterministic code. They cannot hallucinate» — прямая параллель твоему закону №3 («скрипт вместо ИИ где можно»): PreToolUse-хук формализует именно это — детерминированная проверка ПЕРЕД тем, как агент потратит деньги/токены или сделает необратимое действие.
🌉 Таблица-мост: орган завода → орган строителя приложений
Тапни строку — увидишь, как именно механизм завода переносится на строителя приложений.
Открыть на своём заводе:ssh root@VPS; cat apps/channel-hq/core/orchestrator.mjs | head -50 — код оркестратора уже написан и просто ждёт включения. Строитель приложений будет использовать тот же принцип, только для нового типа задач.
🖼 Визуально
🔐 Субагенты — три уровня доступа
Тапни уровень — увидишь, что ему разрешено и где он используется в цикле строителя.
🏛️ Три архитектуры ночного агента — тапни
Тапни архитектуру, чтобы увидеть, из чего она состоит.
🎬↔️💻 Что реально меняется: видео-завод → строитель приложений
Проверка результата «на глаз»
смотришь готовый ролик 👁
Единица параллельности
темы для роликов 🎞️
Не меняется
оркестрация, брокер ресурсов, память, экономика токенов — переносится один в один
Разница строителя приложений с видео-заводом сводится всего к двум местам: как ты проверяешь результат и что параллелится. Всё остальное — буквально то же самое.
Урок 6.2 — «Цикл: план → код → тест → критика → скриншот → доработка»
Разберём сам рабочий цикл строителя по шагам — это его сердцебиение, ритм, который повторяется на каждой задаче. Шаг первый — ПЛАН: агент-планировщик читает боль клиента или ТЗ и пишет план в файл, а не держит его в разговоре. Это важно так же, как история болезни в карте пациента, а не в голове врача — план не должен «стираться» между шагами. Шаг второй — КОД: агент-кодер реализует план, пишет и код, и тесты к нему. Шаг третий — ТЕСТ: детерминированные проверки, линтер, сборка — это ноль «мышления» модели, просто механическая проверка, как анализ крови на автоматическом анализаторе.
Шаг четвёртый — критика, и здесь есть тонкость, которую стоит прочувствовать: критик должен быть независимым — другая сессия, другой контекст, видит только готовый результат и требования, но НЕ видит рассуждений того, кто писал код. осторожно Причина простая и человеческая: если ошибка закралась в ход мысли автора, а проверяющий думает теми же путями — он унаследует ту же слепую точку. Это ровно та же логика, что уже работает в твоей thumbnail-studio, где Haiku-судья QC не видит внутренних рассуждений генератора обложек, только готовую картинку и требования.
Шаг пятый — САМЫЙ важный и неочевидный: скриншот. Код может быть синтаксически безупречным, все тесты зелёные, а интерфейс при этом — визуально сломан: текст наехал на кнопку, на мобильном экране всё расползлось. Тесты этого не поймают, поэтому агент обязан сам запустить приложение и сфотографировать его глазами (через headless-браузер), а не поверить коду на слово. И шестой шаг — доработка по вердикту критика, с жёстким потолком в 3-5 попыток на итерацию: без потолка это Loop of Death, о котором ты уже знаешь из Модуля 4. Честный ориентир из практики: первый прогон ночного строителя реалистично выдаёт черновик — рабочий результат требует ещё 1-2 внутренних цикла критики за ту же ночь, не одну попытку с ходу.
Цикл: PLAN → CODE → TEST → CRITIQUE → SCREENSHOT → FIX/ITERATE. Verifier Pattern требует четырёх вещей от промпта критика: конкретные критерии (не «find bugs», а явный чек-лист — «работает форма / нет console-ошибок / тесты зелёные / не пусто на мобильном»); structured output (JSON: verdict/issues/severity — чтобы оркестратор мог программно решить фикс vs релиз, не парсить свободный текст); hard iteration limits (3-5 циклов); опционально — разные модели/семейства для генератора и критика.
Визуальная верификация — паттерн ProofShot: headless-браузер делает скриншот desktop + mobile ключевых экранов, это ЕЩЁ ОДНА «перезагрузка вероятности ошибки» по терминологии Selective Autonomy, дополнительная к unit-тестам, а не замена им.
Для любопытных
Прямая цитата, объясняющая, почему критик не может быть той же сессией: «Any mistake made during generation is likely to persist through review — because the reviewer thinks the same way as the writer».
Математика многошаговости, которую ты уже видел в Модуле 4: при точности 95% на шаг, 10-шаговый прогон (типичный размер «построй сайт с нуля») даёт осторожно примерно 0.9510 ≈ 60% шанс дойти до конца без единой ошибки. Отсюда прямой практический вывод: не строить одну длинную цепочку из 10+ шагов без промежуточных чекпойнтов-файлов — каждая проверка «перезагружает» вероятность, и при сбое перезапускается только провалившийся шаг, а не весь прогон целиком.
Реальный опыт (Sanity, staff engineer, 6 недель с Claude Code): первая попытка на новой задаче — ~95% мусора (агент строит понимание контекста), вторая — ~50% мусора (нюансы уточнены), третья — рабочий итерируемый результат. Практический вывод для ночного конвейера: закладывать в дизайн минимум 2-3 внутренних цикла критики за одну ночь на новый тип задачи, а не одну попытку.
Тапни «1. PLAN», чтобы начать прогон — шаги открываются по порядку, шестой ведёт либо к релизу, либо обратно на CODE.
Кнопка «Отправить»
Тесты — зелёные (форма отправляется, код синтаксически верен). Но глазами видно: текст наехал на кнопку — без шага SCREENSHOT это ушло бы клиенту как готовое.
Открыть на своём заводе: найди прогон thumbnail-studio, где Haiku vision-QC забраковал обложку по картинке, а не по коду генерации — это тот же принцип «SCREENSHOT», который строитель приложений унаследует для интерфейсов.
🖼 Визуально
📉 Мини-симулятор: цепочка шагов без чекпойнтов
Двигай ползунки.
С чекпойнтом-файлом после каждого шага сбой откатывает только ЭТОТ шаг, а не весь прогон целиком — общая надёжность больше не падает как точность^шаги, а определяется тем, сколько попыток (обычно 3-5) ты разрешаешь на каждый отдельный шаг.
🧪 Реальный опыт: сколько попыток до рабочего результата
95% мусора
Первая попытка на новой задаче — агент строит понимание контекста, это нормально, не сигнал провала.
✅ 4 требования к промпту критика (Verifier Pattern)
Тапни требование — увидишь, почему без него критик бесполезен.
Урок 6.3 — «Ночь без человека: cron, очередь, resume»
Как организовать саму ночь — период, когда тебя рядом физически нет? Есть три рабочих способа запустить агента без присмотра, и у тебя фрагменты всех трёх уже есть. Первый — просто расписание: скрипт-таймер запускает claude -p "Задача" в назначенное время, точно как у тебя сегодня работает x-research-daily по systemd-таймерам в 07:20 и 09:20. Просто и надёжно для одношаговых задач, но без встроенной логики «повторить, если не получилось». Второй способ — очередь задач с зависимостями: это уже написанный, но выключенный orchestrator.mjs — он умеет ретраить с паузами и хранить историю прогонов, и для многошагового ночного строителя нужен именно он, просто применённый к коду вместо видео. Третий вариант — управляемые облачные платформы — для твоего self-hosted завода избыточен, но у него есть одна ценная идея, которую стоит украсть буквально.
Идея такая: по умолчанию всё только читает и анализирует, любая запись наружу требует явного «безопасного вывода» с логом, а слияние с боевым кодом никогда не происходит автоматически. Это готовая формулировка для твоего же правила про деньги, только расширенная на любое необратимое действие: ночью можно писать код, деплоить в тестовую среду, генерировать демо — свободно. Но платить (за домен, за API, за рекламу) нельзя без утреннего «да». Это твоя красная линия, просто перенесённая с видео на код без единого изменения смысла.
И последняя важная мысль про саму природу «полной автономии»: индустрия честно признаёт, что «100% автономность без единой точки контроля» — это ошибка проектирования, а не достижение. Формулировка звучит образно: «держи пожарный шланг короткими управляемыми очередями», а не открывай на всю ночь. Для твоей цели «полная автономия ночью, кроме денег» это не противоречие, а уточнение: полная автономия — это не десять часов вслепую, а десятки коротких фаз, у каждой свой чекпойнт и свой QC-гейт, просто ты не смотришь на них до утра. Молчаливый сбой опаснее явной ошибки — агент, который тихо отработал и не выдал ошибку, но сделал что-то не то, страшнее агента, который честно упал с понятным сообщением.
Три подхода к unattended execution: (1) Cron + headless claude -p — просто, без retry/dependency-логики; (2) Task queue с зависимостями (exponential backoff retry, run-history) — это архитектура orchestrator.mjs; (3) Managed cloud (GitHub Agentic Workflows и аналоги) — избыточно для self-hosted, но модель «read-only default / write требует safe-output / PR не мёржится авто» переносится буквально как шаблон денежного гейта.
Safety-чеклист unattended-режима: scoped permissions (least privilege — у read-агента физически нет прав Write/Bash); output validation ПЕРЕД действием, не после; execution time limits на каждый шаг и на весь прогон; human review для high-stakes действий (деньги, публикация под твоим именем); comprehensive monitoring — прямая цитата: «The greatest risk is a silent failure — an agent that runs, doesn't produce an error, but generates incorrect output».
Для любопытных
Сквозной сценарий ночи консультант-фабрики (§9.3 источника): вечером ты диктуешь боль клиента в Telegram → Requirements-агент за минуты превращает это в ТЗ + 3-5 архитектурных углов, записанных в файл → ночью оркестратор поднимает N Explorer-субагентов параллельно, каждый в своей git-ветке (чтобы не «ломать чужую сборку» — параллельные агенты, пишущие в одну кодовую базу без изоляции, ломают сборку и блокируют всех) → независимый Critic прогоняет тесты и скриншоты, Judge Panel сравнивает варианты турниром → на единственном платном действии (домен/API-ключ/хостинг) hook блокирует автомат и оставляет пометку «ждёт да» на утро → утром ты получаешь 2-3 лучших демо с резюме судейской панели, идёшь к клиенту с готовым выбором, а не с сырым черновиком.
Ориентир стоимости одного ночного прогона: OpenHands даёт вилку осторожно $0.5-3 за run при трёхуровневом тестировании — полезный якорь, чтобы понять, что «дорогая ночь» скорее означает раздутый контекст, чем нормальную цену цикла.
Двигай ползунок — увидишь таймлайн ночи с чекпойнтами; жёлтая фаза требует денег и стопорит прогон до утра.
Открыть на своём заводе:ssh root@VPS; systemctl list-timers | grep x-research — посмотри, как уже работает cron-запуск headless-агента без человека. Это прототип ночного запуска строителя приложений, только сегодня он ищет твиты, а не пишет код.
🖼 Визуально
🌃 Сценарий ночи консультант-фабрики — тапай стадии
Тапни стадию — узнаешь, что в ней происходит и почему именно так.
🛡️ Safety-чеклист ночного режима — 5 пунктов
Тапни пункт чеклиста.
⏱️ Три способа запустить агента без присмотра
Retry-логика
Зависимости между шагами
Где это на твоём заводе
Где здесь деньги: строитель приложений — твой универсальный станок сразу для двух источников дохода: тулз/SaaS/сайтов под трафик/игр (пункт 2 твоей большой цели) И консультант-фабрики MVP (ночь → веер MVP → демо → продажа, пункт 3). Ориентир стоимости прогона осторожно — OpenHands $0.5-3/run — держит эту стройку внутри твоего бюджета $500-2000/мес, а не превращает её в «монстра за $1000/мин».
Модуль 7
Выбор ядра: на чём строить нервную систему
Ты сам поставил этот вопрос в задании курсу: на чём строить ядро системы. Здесь — честное сравнение восьми систем и аргументированная рекомендация именно под твой завод, а не абстрактный рейтинг «что модно».
Урок 7.1 — «Мозг уже выбран, вопрос — оркестратор»
Прежде чем сравнивать фреймворки, важно развести два вопроса, которые в статьях и обзорах постоянно путают друг с другом, будто это одно и то же. Первый вопрос — какая нейросеть думает. У тебя он уже решён и решён давно: это подписка Claude, claude -p, с переключением между аккаунтами при сбое одного из них — проверено. Второй вопрос — совсем другой: кто управляет циклом «агент подумал → вызвал инструмент → получил результат → решил, что делать дальше», кто хранит состояние задачи между шагами, кто плодит и рассаживает субагентов по ролям. Вот это и есть настоящий вопрос «ядра», и весь этот модуль — именно про него.
Аналогия, которая должна снять напряжение: мозг — это уже сформированная кора, которая думает; а оркестратор — это нервная система, которая решает, в какой орган и когда отправить сигнал, куда провести импульс, что сделать параллельно, а что — строго по очереди. У тебя мозг уже подключён и работает месяц. А вот код нервной системы — тот самый orchestrator.mjs — уже написан, лежит в репозитории channel-hq, но сегодня физически выключен. Твой завод сейчас работает не как «свободный агент», а как жёстко заданный конвейер стадий ⓪→⑨ с двумя человеческими гейтами (EDIT_PENDING и APPROVAL_PENDING) — это в индустрии называется workflow: путь заранее известен, число шагов предопределено. Настоящий «агент» отличается тем, что сам решает, сколько шагов сделать и в каком порядке — этого у тебя пока нет, и это нормально: workflow там, где важна предсказуемость (деньги, публикация), — это правильный выбор архитектуры, а не недоделка.
Отсюда главный практический вывод модуля, который снимает страх «надо всё переписать под новый фреймворк»: переход к ночной автономии — это НЕ смена ядра и НЕ миграция на чужую систему. Это включение уже написанного оркестратора и замена части человеческих гейтов на агентов-критиков — там, где предсказуемость важнее гибкости (аплоад, траты), workflow-скелет остаётся; там, где нужна импровизация (ресёрч ниши, разные архитектурные подходы к MVP-веера) — добавляется настоящая agent-петля поверх того же скелета.
Разграничение из транскрипта Anthropic + LangChain «Building Effective Agents»: workflows — предопределённый путь, LLM выполняет шаги в заданном порядке; agents — LLM динамически направляет собственный процесс и использование инструментов, число шагов заранее неизвестно. Конвейер channel-hq ⓪→⑨ — классический workflow (DAG стадий с гейтами), близкий по духу к философии State/Node/Edge (см. Урок 7.2, LangGraph), но без фреймворка — своя ручная реализация.
«Мозг» = LLM-провайдер (Claude, подписка, CLI-модель). «Оркестратор» = слой управления: держит state между вызовами модели, маршрутизирует по нодам/агентам, определяет параллелизм и глубину субагентов, применяет hooks/guardrails. Именно второй слой — предмет сравнения восьми систем в Уроке 7.2.
Для любопытных
Важная деталь: «мозг» и «оркестратор» — независимые оси выбора. Можно взять Claude как мозг и любой оркестратор поверх (LangGraph, CrewAI, свой код) — они не привязаны друг к другу технически. Но не любая комбинация совместима: например, OpenAI Agents SDK жёстко завязан на модели OpenAI и не совместим с «мозгом»-подпиской Claude в принципе — этот кандидат отклоняется в Уроке 7.2 именно по этой оси, а не по качеству фреймворка.
Источник: frameworki.md §1 (со ссылкой на 04-server и 02-factory-overview HERMES_HANDOFF).
🧠 Схема «мозг vs оркестратор» — что уже зафиксировано, что выбираем
Тапни карточку — увидишь, что в ней уже решено, а что решается по ходу этого модуля.
Открыть на своём заводе:ssh root@VPS; cat apps/channel-hq/core/orchestrator.mjs | head -80 — это код твоей будущей нервной системы. Он уже написан. Модуль 7 отвечает на вопрос «включать как есть или на каком ядре его развивать».
🖼 Визуально
🚦 Конвейер ⓪→⑨ — кто стоит на гейтах сегодня и после
Тапни по стадии (в т.ч. по гейту) — узнаешь, кто там стоит.
10 стадий ⓪→⑨, из них 2 — человеческие гейты: EDIT_PENDING и APPROVAL_PENDING.
🧩 Мозг и оркестратор — независимые оси (кроме одного исключения)
🧠 Мозг зафиксирован: Claude (подписка), claude -p. Тапай на кандидата в оркестраторы — проверим совместимость.
Выбери оркестратор сверху.
🔀 Workflow vs Agent — кто решает, что дальше
Выбери режим, потом тапни по шагу схемы.
Урок 7.2 — «Матрица восьми систем»
Дальше — честное сравнение восьми систем, которые сегодня претендуют на роль «оркестратора» в индустрии. Ни одна из них не хуже других абсолютно — вопрос всегда «подходит ли она именно твоему заводу». Начнём с LangGraph: это фреймворк с очень чёткой философией — «модель генерирует текст, граф управляет поведением». Три кирпичика — состояние, узлы, рёбра — дают детерминированный контроль над потоком, а автоматическое сохранение состояния после каждого шага решает ровно ту боль, которую ты уже знаешь по своей практике: раздувание контекста и потерю прогресса при сбое. Здесь важно честно поправить одну цифру, которая гуляет по интернету в раздутом виде: Klarna, которую часто приводят как флагманский кейс LangGraph, заменила ботом эквивалент 700 сотрудников исправлено, а не 853, как иногда пишут. А цифра экономии «$60 млн» исправлено в надёжных источниках не подтверждается — ближайшая проверяемая цифра другая и относится к другому продукту. Зато две вещи про Klarna подтверждены твёрдо: доля решённых обращений выросла до 80%, и у бота было 85 миллионов пользователей-разговоров проверено. Для твоего завода вывод простой: LangGraph — это язык описания графа, полезная библиотека внутри одного сервиса (например, будущего opportunity-scout), но не повод переписывать весь завод под чужую систему состояния — у тебя уже есть работающий `state.json`.
CrewAI даёт простую ролевую модель («агент/задача/бригада»), которая осваивается быстрее графа — но есть честная и болезненная деталь: иерархический режим не умеет условно пропускать агентов, менеджер прогоняет всех подряд, даже когда часть работы не нужна. Реальный замер — 15 759 токенов на простой запрос вместо ожидаемых 200 проверено — это ровно та же болезнь токенного раздувания, которую ты уже пережил на 12-шаговых задачах. AutoGen/AG2 устроен иначе — агенты «спорят» в чате, менеджер-модель выбирает, кто говорит следующим. Это отличная идея именно для твоей судейской панели MVP-вариантов, но фреймворк ещё в статусе бета и склонен зацикливаться без явного лимита раундов. OpenAI Agents SDK отклоняется сразу и без сожаления — он жёстко привязан к моделям OpenAI, а твой мозг — подписка Claude; несовместимость по фундаментальной оси.
OpenClaw — система, с которой ты уже знаком лично, и архитектурно она ближе всего к твоей интуиции: файлы памяти MEMORY.md и .learnings/, ограничение глубины субагентов — это почти калька структуры, которую ты уже частично построил вручную в memory-bank. Но здесь тоже нужна честная поправка: часто цитируемый кейс «$1.3 млн в месяц» на сотне параллельных агентов — это расходы на разработку (dev-costs) конкретной команды на OpenAI-токенах, а не подтверждённые продакшн-расходы типичной установки исправлено. Это не отменяет саму опасность — токен-бомба параллелизма реальна, — но она не значит «любой, кто ставит OpenClaw, обречён платить $1.3М в месяц»: это единичный, дорогой этап разработки одной команды. Плюс к этому — реальная уязвимость CVE-2026-25253 (удалённое выполнение кода через кражу токена), и здесь тоже стоит уточнить: экспозиция в основном связана с неправильной настройкой пользователя (LAN-режим), а не только с настройками по умолчанию из коробки. OpenHands и MetaGPT — отличные блоки именно для «Строителя приложений» (Модуль 6), но не претендуют на роль оркестратора всего завода — у них нет общей памяти уровня всего бизнеса. И наконец — Claude Agent SDK: единственный кандидат, совместимый со всеми осями сразу, потому что это не альтернативная философия, а официальная библиотека поверх той же CLI-модели Claude, которую завод уже использует. Субагенты получают изолированный контекст, не наследуют историю родителя — это архитектурное решение именно той токенной боли, с которой ты живёшь проверено: глубина субагентов ограничена 5 уровнями, что похоже на то же ограничение, которое ты уже видел у OpenClaw. И отдельно, вне восьмёрки систем, — PAUL: это не платформа, а дисциплина поверх любого ядра — цикл План→Применение→Свод с явными критериями готовности, которую стоит взять независимо от того, что выберешь ядром.
Восемь систем по осям (совместимость с мозгом Claude / токеномика / изоляция контекста / зрелость / риск): LangGraph (граф State/Node/Edge, PostgresSaver-чекпойнты, Python-first, кривая обучения 2-3 дня) — библиотека, не ОС завода; CrewAI (Agent/Task/Crew/Process, Flows для явной маршрутизации, но 15759 токенов на иерархическом режиме без Flows); AutoGen/AG2 (GroupChatManager, дебаты, beta v0.7.x, риск бесконечных циклов без max_round); OpenAI Agents SDK (моно-провайдер, отклонён); OpenClaw (Local-First Gateway, MEMORY.md/.learnings/, depth 0/1/2 max 5 субагентов на родителя, CVE-2026-25253 CVSS 8.8 — проверено); OpenHands/MetaGPT (control center для coding-агентов / SOP-симуляция компании, узкоспециализированы под код); Claude Agent SDK (subprocess-модель, изоляция контекста субагентов, глубина 5 уровней — проверено дословно, hooks PreToolUse/PostToolUse/Stop/SessionStart как детерминированные guardrails); PAUL (методология Plan→Apply(Execute/Qualify)→Unify, статусы DONE_WITH_CONCERNS/NEEDS_CONTEXT вместо бинарного done).
n8n — отдельная категория: интеграционный клей (AI Agent Tool node), не ядро долгоживущих агентов; ограничение памяти по умолчанию ~100MB execution data, контекст между узлами передаётся неявно.
Для любопытных
Ключевая цитата по LangGraph: «LLMs generate text. LangGraph governs behavior». Ключевая цитата по CrewAI-проблеме: менеджер в hierarchical-режиме прогоняет всех агентов последовательно даже когда работа не нужна — конкретный замер 15759 токенов вместо 200 проверено. По OpenClaw: реальная цифра масштаба уязвимости — порядка 30 000+ незащищённых инстансов и доля вредоносных/подозрительных скиллов в публичном каталоге ClawHub осторожно — не подавать как единое точное число, но сам факт риска подтверждён.
Источник: frameworki.md §2.
📊 Сравнительная матрица 8 систем
Тапни строку системы, чтобы увидеть вывод под твой завод.
Открыть на своём заводе:ssh root@VPS; find apps/channel-hq -name "*.mjs" | xargs grep -l "claude -p" — увидишь, что твой конвейер уже сегодня построен как subprocess-обёртка над Claude CLI, то есть архитектурно ближе к Claude Agent SDK, чем к любой из семи других систем.
🖼 Визуально
💸 CrewAI: почему иерархический режим раздувает токены
Менеджер прогоняет всех агентов подряд, даже когда часть работы не нужна — 15 759 токенов вместо ожидаемых 200. Проверено дословно.
🔍 Проверка цифр Klarna — что подтверждено, что исправлено
Klarna — флагманский кейс LangGraph. Тапни по каждому заявлению.
Выбери заявление, чтобы увидеть вердикт.
⚠️ OpenClaw — заявления против того, что реально стоит за ними
Ближе всего по духу к твоему заводу (MEMORY.md/.learnings/, лимит субагентов) — но тапни по каждому громкому заявлению.
Выбери заявление, чтобы увидеть уточнение.
Урок 7.3 — «Рекомендация: гибридное ядро, не единый фреймворк»
Предварительная рекомендация — и важно подчеркнуть слово «предварительная»: она подтверждается на этапе roadmap (Модуль 11), когда будут учтены бюджет, хостинг и результаты первого пилота на одном сервисе. Но направление уже понятно. Ядро — Claude Agent SDK поверх твоей уже существующей подписки Claude. Это не «ещё один фреймворк со своей философией», это официальная библиотека прямо над той же CLI-моделью, которую твой завод использует сегодня: один процесс claude = одна сессия, история пишется на диск. По сути это прямое расширение того, что уже происходит в channel-hq — не миграция, а достройка.
Поверх этого ядра — три надстройки, и все три уже узнаваемы, потому что ты частично их изобрёл сам. Первая — дисциплина в духе PAUL (План → Применение → Свод) для режима «Строитель приложений» и «Консультант-фабрика MVP»: формальный критерий «готово к демо», а не просто «агент сказал done». Вторая — паттерн мышления LangGraph (состояние + чекпойнт), но НЕ обязательно сама библиотека: твой оркестратор уже неявно реализует граф стадий ⓪→⑨ с гейтами, и у тебя уже есть свой JSON-чекпойнт в state.json каждого проекта — тащить Postgres и LangGraph-библиотеку в завод стоит, только если твоя собственная реализация начнёт давать сбои, не раньше. Третья — локальный дебат-паттерн в духе AG2 для одного конкретного узла — судейской панели: параллельные варианты MVP критикуют и ранжируют друг друга. Это узкий, изолированный сценарий внутри одного модуля системы, для которого хватит нескольких параллельных субагентов Claude SDK с разными системными промптами — без внедрения целого фреймворка ради одной функции.
Отдельно нужно закрыть вопрос «а почему не OpenClaw, если он ближе всего по духу»: причина не в том, что OpenClaw плохой, а в том, что он дублирует то, что ты уже построил вручную и понимаешь лучше (память, гейты, оркестрация), да ещё и ценой реального риска стоимости и безопасности при полной автономии. Разумный компромисс — украсть идеи (файлы MEMORY.md/.learnings/, лимит глубины субагентов), но не ставить сам OpenClaw как внешнюю зависимость с чужим кодом скиллов. И третий важный вывод — n8n не мозг, а клей: он отлично закрывает точечные интеграционные мостики (webhook-триггер → цепочка HTTP-вызовов между сервисами завода), но не заменяет оркестратор — не строить на нём архитектуру всей системы.
Рекомендованный стек: ядро — Claude Agent SDK (subprocess-модель, изолированный контекст субагентов, hooks как детерминированные guardrails, depth-limit субагентов) поверх подписки Claude (`claude -p`, мульти-аккаунт failover). Надстройка 1 — PAUL-дисциплина (Given/When/Then критерии приёмки, обязательный UNIFY-этап) для Строителя приложений и MVP-веера. Надстройка 2 — LangGraph как модель мышления (state+checkpoint), не обязательно как библиотека — включение `orchestrator.mjs` с персистентным state закрывает ту же дыру, что и PostgresSaver, но на уже написанном коде. Надстройка 3 — AG2-подобный debate/consensus паттерн локально для judge panel: параллельные субагенты Claude SDK с разными system prompts вместо переноса всей GroupChatManager-архитектуры.
Отклонённые кандидаты и причина: OpenAI Agents SDK (несовместим по мозгу); n8n как архитектурный уровень (интеграционный слой, не долгоживущая память агентов); CrewAI как ядро (токенная неэффективность иерархического режима); OpenClaw как ядро (дублирование + риск стоимости/безопасности при full autonomy — заимствовать идеи, не код).
Для любопытных
Из типичных ошибок, которые ядро само по себе НЕ решает (важно проговорить отдельно от выбора фреймворка): Loop of Death лечится дисциплиной (лимит попыток, smart routing, semantic caching), а не архитектурой; «мнимая делегация» иерархических менеджеров (CrewAI-пример 15759 vs 200 токенов) лечится явными условными ветками, а не надеждой на LLM-маршрутизацию; 95% провалов агентных пилотов на масштабировании — это интеграционные проблемы (хрупкие коннекторы, polling вместо событий), а не «модель недостаточно умная» — прямое следствие: тестировать интеграции завода (resource-governor, YouTube API) отдельно от «умности» самого агента.
Источник: frameworki.md §3-6.
🛠️ Конструктор ядра — собери стек
Отметь блоки, которые хочешь включить в ядро. Система подсветит конфликты.
Выбери блоки — увидишь итоговый стек и предупреждения.
Открыть на своём заводе:ssh root@VPS; ls apps/channel-hq/core/ — посмотри, из чего сегодня физически состоит потенциальное ядро: файлы уже лежат, просто ждут решения «включить как есть на Claude Agent SDK» вместо решения «мигрировать на чужой фреймворк».
Выбор фреймворка — не панацея. Тапни по каждой типичной ошибке.
Выбери ошибку сверху.
⚖️ Почему не OpenClaw, если он ближе всего по духу
Тапни по варианту.
Где здесь деньги: правильное ядро — это не мигрировать работающий завод на чужие абстракции (сожжённые недели без единого проданного MVP), а достроить своё. Экономия здесь — именно в НЕ-переписывании: Claude Agent SDK прямо продолжает то, что channel-hq уже делает сегодня, а три узкие надстройки (PAUL, state+checkpoint, дебат-панель) закрывают конкретные дыры точечно, без миграции всей системы на новый фундамент.
Модуль 8
Сервер и панель: где живёт система и как ей управлять с телефона
У тебя уже нет вопроса «как задеплоить агента» — 16+ сервисов уже крутятся на боевом VPS. Вопрос честнее: где именно должна жить каждая часть системы, что склеивает органы между собой, и как ты будешь смотреть на всё это с телефона из кофейни клиента, а не через SSH.
Урок 8.1 — «VPS и домашний ПК — не или-или, а разные роли»
Есть соблазн думать про хостинг как про спор «VPS или домашний ПК с 3090» — будто нужно выбрать одного победителя. На практике правильный ответ не выбор, а разделение обязанностей, как у тела: у тебя есть мозг снаружи — арендованный сервер, который живёт 24/7 независимо ни от чего, и есть мышцы по требованию — твой домашний ПК с RTX 3090, который просыпается только тогда, когда реально нужна тяжёлая видеокарта: локальный инференс, рендер видео, синтез голоса. Мозг никогда не спит, мышцы работают по вызову — организм в целом от этого не становится слабее, наоборот, экономнее.
Критично важная деталь архитектуры: домашний ПК НЕ должен быть на критическом пути ночного конвейера. Если ты выключил компьютер, ушёл гулять или просто лёг спать с закрытой крышкой ноутбука дома — фабрика видео не должна встать колом только потому, что 3090 сейчас офлайн. Значит, связь между VPS и ПК должна быть построена так, чтобы при недоступности домашней машины система тихо переключалась на облачную замену (тот же RunPod, которым ты уже пользуешься для озвучки), а не зависала в ожидании. Это тот же принцип, что и денежный гейт — не полагаться на хрупкое звено там, где можно поставить надёжный fallback.
Отдельно — давай честно поправим цифры, которые раньше гуляли в черновых расчётах экономики. исправлено Сборка ПК с RTX 3090 «под ключ» реально стоит $1500-3500, а не «от $900» — сама видеокарта нового поколения обходится примерно в $1050-1500, и это только один компонент. исправлено Аренда сопоставимой GPU-мощности в облаке (RunPod-типа) стоит реально $0,13-0,6 в час, а не $15 в час — это разница на два порядка, и она полностью меняет расчёт «когда своя видеокарта окупается». исправлено И маленький хостинг-план Hetzner (уровня CX22) стоит около €4,35 в месяц, а не €5,50. С честными цифрами «окупаемость своей видеокарты за 1-2 года» остаётся верной только против дорогих управляемых API-сервисов, а не против честной почасовой аренды GPU — и это меняет то, как стоит думать о своём железе: не как об обязательном условии, а как об одном из шести равноправных вариантов.
Гибридный паттерн 2026 года: VPS = control plane (оркестрация, публичный API, Caddy-шлюз, память), домашний GPU-узел = data plane по требованию, синхронизация через Tailscale — mesh VPN без открытых портов, вместо текущих reverse-ssh туннелей, которые требуют постоянно включённый ПК и плохо масштабируются на несколько сервисов одновременно.
Экономика с исправленными цифрами: сборка $1500-3500 (карта $1050-1500 + остальное); почасовая аренда сопоставимого GPU $0,13-0,6/час; при 8 часах GPU-нагрузки в сутки аренда обходится примерно в $30-150/мес против амортизации собственной сборки за 2-3 года. Точка выгодности собственного железа зависит от реальных часов загрузки — считать нужно по факту, а не по слухам «$15/час».
Для любопытных
У тебя уже физически есть все компоненты этого гибрида: ASUS ПК с RTX 3090 сейчас используется «только со спросом» для ночного голоса — это уже правильный режим эксплуатации, просто через хрупкую связку reverse-ssh туннелей, которая требует включённого компьютера и не масштабируется на много сервисов сразу. Материал по деплою напрямую называет этот паттерн эталонным для 2026 года: не «или дом, или облако», а VPS как постоянно доступный control plane и локальный GPU как опциональный воркер, который VPS вызывает через приватную сеть, если он онлайн, и молча переключается на облачный запасной вариант (RunPod), если офлайн.
Полный список честных вариантов размещения (без якорения на уже купленной 3090): апгрейд текущего тарифа Hetzner; новый облачный сервер у другого провайдера; Mac mini как тихий и экономичный домашний сервер 24/7 (низкое энергопотребление, но без мощного GPU); текущий ПК с 3090 как GPU-узел по требованию; чисто облачный GPU по требованию (RunPod и аналоги) без покупки железа вообще; и гибрид всех перечисленных ролей одновременно — именно этот последний вариант используется в калькуляторе ниже как рекомендуемый базовый сценарий.
Источники: deploy-ui.md §1, lucian-profile.md (раздел «Хостинг — не зацикливаться на железе»), verify/corrections-3 №1.
🧮 Калькулятор хостинга — 6 вариантов размещения
Двигай ползунок — это часы, когда системе реально нужна тяжёлая видеокарта (инференс/рендер/голос), не время работы всей системы (VPS-часть считается 24/7 в любом случае).
Открыть на своём заводе:ssh root@VPS; cat 04-server.md | grep -i "reverse-ssh\|tailscale\|3090" — посмотри, как сейчас связаны VPS и домашний ПК, и прикинь, сколько реальных часов в сутки 3090 действительно нагружена.
🖼 Визуально
🧠 Мозг снаружи и мышцы по требованию — клик по органу
Кликни по «VPS», по «ПК 3090» или по линии связи между ними — узнаешь роль и от чего она зависит.
🔍 Три исправленные цифры — клик, чтобы вскрыть ошибку
Клик по карточке переворачивает старую (ошибочную) цифру в исправленную.
🔌 Ты лёг спать — конвейер встал или нет?
Урок 8.2 — «Очереди задач: главный разрыв между заводом и автономией»
Сейчас твои сервисы разговаривают друг с другом почти как люди в цепочке из рук в руки — один сервис звонит другому напрямую и ждёт ответа: channel-hq вызывает генератор, генератор вызывает thumbnail-studio, и если хоть одно звено на секунду замешкалось — HTTP-запрос виснет 30 секунд, потом обрывается по таймауту, и кусок работы просто теряется, будто его и не было. Это работает, пока ты рядом и можешь вручную дожать зависшую стадию — собственно, ты и есть тот самый «клей», о котором сам говоришь как о главной боли.
Лекарство — брокер очередей. Разница похожа на разницу между тем, как хирург передаёт инструмент ассистенту из рук в руки (уронил — инструмент потерян), и тем, как кислород разносится кровотоком: если один капилляр временно пережат, кровь всё равно доходит до органа другим путём, просто чуть медленнее. С брокером задача не «звонит и ждёт», а кладётся в очередь и терпеливо там лежит, пока свободный воркер её не заберёт — даже если конкретный сервис в эту секунду перезапускается или упал. Ничего не пропадает, просто чуть откладывается.
Второй эффект брокера — параллельность становится естественной, а не удачей. Твоё собственное правило «запусти N» сегодня опирается на resource-governor, который по сути угадывает, сколько параллельных прогонов система выдержит; с очередью это перестаёт быть угадыванием — N задач просто встают в очередь, и столько воркеров, сколько реально свободно, разбирают их сами. А задачи, которые дважды подряд упали одинаково — уходят в отдельную «мёртвую очередь» (dead-letter queue), и утром ты видишь явный список «вот что реально сломалось», вместо того чтобы вручную перерывать логи в поисках зависшего места.
Важная честная поправка по ресурсам: осторожно ранние прикидки называли ~3 ГБ RAM на весь брокерный слой (Redis + RabbitMQ + несколько воркеров) — это верхняя, довольно щедрая оценка; при разумной конфигурации реалистичнее рассчитывать на ~1-1,5 ГБ. В любом случае на твоём VPS с 16 ГБ это укладывается с огромным запасом — это железный аргумент НЕ переезжать на другой сервер ради одного этого слоя, а добавить брокер поверх того, что уже стоит.
Эталонная схема: FastAPI Endpoint → enqueue_task() → Broker (Redis/RabbitMQ, гарантирует доставку) → Worker #1..N → Result Backend. У завода уже есть частичный аналог на уровне отдельных сервисов — файловый state.json и POST /api/projects/{slug}/resume — это самодельная замена персистентной очереди, но только внутри одного сервиса, не между ними.
Целевая точка внедрения — не между всеми сервисами сразу, а именно между стадиями конвейера (channel-hq → генератор → thumbnail-studio → memory-bank), где сегодня стоят синхронные HTTP-вызовы. Дополнительно: event-driven переходы между стадиями (стадия N завершилась → событие → стадия N+1 стартует мгновенно) вместо poll-таймеров — задержка <1 сек вместо 15 мин у текущих `*.timer`-опросов; за 8-часовую ночь это разница в десятки потерянных интервалов.
Для любопытных
Конкретная оценка ресурсов из исходного материала — RabbitMQ ~500 МБ, Redis ~100 МБ, 2-3 Celery-воркера ~800 МБ каждый — в сумме давала ~3 ГБ; это верхняя граница «взять всё по максимуму», честнее ожидать заметно меньше при аккуратных лимитах памяти на контейнер. В любом случае на VPS 16 ГБ (не 4 ГБ, как в примере из общего материала для Hetzner CX22) запас большой в обоих случаях.
Для событийного слоя даже внутри своей сети `factory` (не публичные вебхуки) стоит перенести стандартные меры безопасности вебхуков: HMAC-подпись между сервисами, idempotency-ключи в Redis (чтобы повторная доставка события не задвоила генерацию видео), защита от replay-атак.
🩸 HTTP-клей vs брокер — урони сервис и посмотри, что будет
Выбери режим и нажми «Уронить thumbnail-studio», чтобы увидеть разницу в поведении конвейера.
Открыть на своём заводе:docker inspect thumbnail-studio | grep -i restart — если политика не always, это первое, что стоит починить ещё до брокера: контейнер должен сам подниматься после падения.
🖼 Визуально
🔗 Путь задачи через брокер — клик по стадии
Кликай по прямоугольникам схемы — по одному на каждую стадию.
⏱️ Опрос раз в 15 минут vs событие — сколько теряется за ночь
Poll-таймер (*.timer, до 15 мин)
Событие (<1 сек)
👷 Очередь из 12 задач — сколько воркеров разбирают её сами
1 воркер
Урок 8.3 — «Единая веб-панель и Telegram поверх существующего»
У тебя уже фактически есть панель управления — просто она разбросана по десятку разных адресов, SSH-сессии и памяти. Хорошая новость в том, что это не «начать с нуля», а «собрать то, что уже есть, в одном месте» — у тебя уже есть портал resource-governor на порте 4700, где новая тулка сама рождается с собственной плиткой. Расширить именно этот портал до полноценной mobile-first панели дешевле и естественнее, чем ставить сторонний чужой дашборд, который придётся подгонять под твою архитектуру.
Чего реально не хватает — это единого экрана расходов. Прямо сейчас у тебя есть логи по отдельным сервисам, но нет одного места, где видно: сколько денег сожрала эта ночь, эта неделя, этот канал. Это ровно то место, где живёт твой страх «монстр, кушающий $1000 в минуту» — и лекарство от страха не обещание модели, а цифра на экране, обновляющаяся в реальном времени.
Отдельная хорошая новость: твой approval workflow — гейты EDIT_PENDING и APPROVAL_PENDING — уже реализован лучше, чем у большинства систем, которые я видел в материалах по теме. Задача не «добавить одобрение с нуля», а разрешить панели постепенно СНИМАТЬ гейты там, где независимый критик уже доказал свою надёжность (твоя же идея «критик сам решает о публикации по чек-листу») — оставляя жёсткое человеческое подтверждение только там, где на кону деньги.
Telegram-бот в этой картине — не второй параллельный «мозг», а тонкий командный слой поверх того же самого API, что и веб-панель. У тебя уже есть рабочий прототип этого паттерна — x-research-daily, который пуляет тебе дайджест дважды в день. Расширить его с одностороннего пуша до двустороннего диалога («покажи очередь», «останови канал X», «подтверждаю трату») — это то же самое расширение, что и портал :4700, только в кармане, а не в браузере.
И последнее, самое приземлённое: диск на VPS, по внутреннему снимку, был занят на 91%. осторожно Эту цифру стоит перепроверить прямо сейчас, потому что она могла измениться, но сама логика неизменна: диск — тихий убийца автономии. Ночью, когда никто не смотрит, переполненный диск не кричит и не падает эффектно — он просто тихо блокирует запись нового файла в 3 часа ночи, и утром ты находишь не готовое демо, а оборванный на середине прогон без единого явного сообщения об ошибке.
Целевая функциональность единой панели: unified task board (вместо переключения между сабдоменами), cost/token dashboard ($/задача, $/день, алерты по порогу), disk/health-мониторинг, memory browser поверх API memory-bank, agent profiles с UI-редактором, approval workflow с настраиваемым «порогом доверия» на тип операции. Технически — расширение уже существующего FastAPI-подобного сервиса на :4700, не новый сервис и не сторонний ClawPort/Hermes Dashboard под чужую архитектуру.
Telegram — тонкий слой команд поверх того же API, что у панели (одна логика, два интерфейса), а не отдельный OpenClaw-инстанс. Security-инвариант сохраняется жёстко: биндинг сервисов на 127.0.0.1 + доступ через Caddy, аудит оставшихся 0.0.0.0-биндингов перед тем, как расширять автономию.
Для любопытных
Урок безопасности из практики похожих self-hosted агентных систем: массовая компрометация тысяч инстансов случалась именно через дефолтный биндинг на 0.0.0.0 без файрвола — у тебя большинство сервисов уже правильно смотрят на 127.0.0.1, но несколько исключений (по внутреннему снимку — генератор фото, remotion-инструмент, пара других) биндятся на 0.0.0.0. Это конкретная проверяемая задача: для каждого из них явно спросить — а зачем этому сервису открытый порт наружу, если Caddy и так проксирует всё нужное.
Второй урок оттуда же: один скомпрометированный «навык»/скилл наследует ВСЕ права системы целиком, если модель прав не разделена явно. Прямое следствие для твоей библиотеки скиллов (закон №3 «повторил дважды → оформи скиллом»): у скилла, который умеет тратить деньги или публиковать под твоим именем, должны быть явно урезанные права — не «всё или ничего».
Тапай вкладки — это макет того, во что расширяется портал resource-governor:4700 на телефоне.
Открыть на своём заводе: открой resource-governor:4700 с телефона прямо сейчас — посмотри, какие плитки уже там есть, и прикинь, каких трёх экранов (очередь / burn-rate / диск) реально не хватает, чтобы это стало полноценной панелью.
🖼 Визуально
🔓 Гейты снимаются по доверию — кроме одного
🛡️ Аудит 0.0.0.0 — клик по сервису, чтобы закрыть порт
📡 Один мозг, два интерфейса — или два мозга?
Кликай по блокам схемы или переключай режим кнопками выше.
Где здесь деньги: cost-dashboard закрывает страх «монстра за $1000/мин» цифрой вместо ощущения — а панель с телефона означает, что ты можешь одобрить трату, остановить канал или посмотреть на демо MVP прямо из кофейни, пока продаёшь его клиенту. Честные цифры хостинга (сборка $1500-3500, аренда $0,13-0,6/час, Hetzner ≈€4,35) освобождают от лишних трат на железо, которое не нужно именно сейчас.
Модуль 9
Три завода из одного: применение к твоим целям
Всё, что ты прошёл в модулях 0-8, — это словарь и инструменты. Здесь мы прикладываем их к твоим трём реальным направлениям (ферма каналов, строитель приложений, консультант-фабрика MVP) и связываем их в одну операционную систему, а не три отдельных проекта, которые тебе придётся клеить руками.
Урок 9.1 — «Направление 1: контент-фабрика на десятки каналов»
У тебя сейчас 1-3 канала на полуручной фабрике. Цель года — десятки, на полной ночной автономии. Соблазн очевиден: включить orchestrator.mjs и снять оба гейта разом. Это ловушка. Правильный порядок — как с любой операцией: сначала выращиваешь и калибруешь независимого критика на существующем гейте APPROVAL, недели сверяешь его вердикты со своими решениями — и только когда он стабильно совпадает с тобой, снимаешь ручной гейт. Оркестратор включается ПОСЛЕ критика, а не вместо него.
Вторая часть разрыва — стадия LEARNING сейчас холостая: метрики с YouTube не текут обратно в память. Оживить её — значит применить трёхуровневую типологию памяти из Модуля 3 к твоим же трём банкам: global.json становится семантической памятью («темы про военку заходят лучше катастроф»), log.jsonl канала — эпизодической («14 июля тема Y дала CTR 6.1%»), настройки генераторов — процедурной («какие параметры Veo дают меньше QC-отказов»). Это не «завести базу данных» — это замкнуть контур, который у тебя уже архитектурно нарисован, но не подключён.
При переходе с 1-3 каналов на 10+ первым ломается не творчество, а инфраструктура: resource-governor — это твой брокер пулов, но десять каналов параллельно — качественно другая нагрузка, чем один; и тот же паттерн «эхо-камеры обучения», что уже был в thumbnail-studio (критик хвалит сам себя), при масштабе размножается линейно с числом параллельных петель, если критик не изолирован от генератора. И честная цифра, о которой нужно помнить именно на этом шаге: проверено 97% faceless-каналов не окупаются. Автономия ускоряет производство контента, но не гарантирует, что ниша выстрелит — масштабировать нужно вместе с отбором ниш (format-radar), а не вместо него. Отдельная деталь про риски бана: осторожно «канал банят за 2 недели полностью автономной публикации без QA» — сам факт риска реален, а вот точный срок — не проверенное число, не повторяй его как факт.
Порядок внедрения: (1) Verifier Pattern — изолированный claude -p-критик с чистым контекстом на входе APPROVAL_PENDING, калибровка недели против ручных решений; (2) закрыть LEARNING как episodic/semantic/procedural на трёх существующих банках; (3) Tiered Autonomy — READ (анализ ниш, черновик сценария) автономно, CREATE/UPDATE (публикация, правки SEO) через критика, DELETE/SPEND (платный TTS-тир, покупка кредитов) — только явное подтверждение; это прямое расширение твоего уже работающего draft/final voice tier на всю фабрику.
Индустриальный ориентир экономики фермы: осторожно ~$450-1150/мес расходов на один автоматизированный канал в среднем по рынку. Твой бюджет $500-2000/мес на ВСЮ систему означает: либо радикальное удешевление за счёт подписки+лестницы моделей (уже дешевле среднего по рынку), либо жёсткий потолок на число одновременно активных автономных каналов.
Для любопытных
Реальный прецедент из индустрии: канал, полностью автоматизированный без QA-слоя, был заблокирован YouTube из-за галлюцинированных фактов в сценариях — критик-агент здесь не роскошь, а условие выживания канала при ночной автономии. AI-disclosure YouTube (обязательная маркировка синтетического контента) — ещё один слой требований, который стоит держать в чек-листе критика наравне с хуком/визуалом/звуком/фактами.
Двигай ползунки — увидишь, укладывается ли ферма такого размера в твой бюджет $500-2000/мес.
Открыть на своём заводе:cat channel-hq/core/orchestrator.mjs | grep -i approval — посмотри на месте, куда именно сегодня встаёт человеческий гейт APPROVAL_PENDING. Это ровно та точка, где вырастет изолированный критик, прежде чем оркестратор включится насовсем.
🖼 Визуально
🔗 Порядок включения автономии фермы
Тапни по стадии, чтобы увидеть, что там происходит — или переключи режим на «Нарушить порядок» и посмотри, что теряется, если пропустить калибровку критика.
📈 Эхо-камера обучения при масштабировании
Двигай ползунок — сравни, что происходит с риском эхо-камеры при росте числа каналов в двух режимах.
🧠 Три банка памяти фермы — тапни на орган
Тапни на любой банк — увидишь тип памяти и живой пример записи, которая в него пойдёт, когда LEARNING оживёт.
Модуль 6 разобрал сам цикл строителя (план→код→тест→критика→скриншот→доработка). Здесь — другой вопрос: откуда возьмётся вся «обвязка» вокруг этого цикла, чтобы он реально работал ночью на произвольном проекте, а не только в теории? Ответ дала сама индустрия одной фразой, которую стоит запомнить дословно: «harness важнее модели»проверено. Модель — это мозг, который у тебя уже выбран (подписка Claude). Harness — это весь слой вокруг: файл-конституция репозитория, библиотека скиллов, детерминированные хуки-стражники, субагенты с разными правами. И вот в чём хорошая новость: у тебя ЭТОТ слой уже построен — просто для видео, а не для кода.
Твой memory-bank с тремя банками, твой _STYLE_PLAYBOOK.md, твоё правило «стиль — это per-channel профиль, а не хардкод в коде» — это буквально harness для видео-домена, только ты не называл его этим словом. Задача направления 2 — не изобретать строителя приложений с нуля, а собрать АНАЛОГИЧНЫЙ комплект для кода: свой CLAUDE.md с конвенциями стека, скиллы «как задеплоить Node-сервис на мой VPS», «как подключить Caddy+SSO», «как написать docker-compose для нового сервиса» — и заметь: многое из этого у тебя уже есть в прозе в контрактах завода, просто не оформлено как переиспользуемый файл-скилл.
Практическое следствие — хуки вместо промптов там, где раньше было «попроси модель не забыть». Промпт можно уговорить отступить от правила в три часа ночи; хук физически блокирует действие кодом выхода. Это техническое воплощение твоего же закона №3 («скрипт вместо ИИ где можно»), просто применённое не к аудиту тулок, а к каждой точке, где ночной строитель мог бы сделать необратимое действие без проверки.
Компоненты harness для кода, по прямой аналогии с видео-заводом: CLAUDE.md/AGENTS.md ↔ _STYLE_PLAYBOOK.md; библиотека .claude/skills/ ↔ прозаические контракты в 08-contracts.md, формализуемые в файлы; PreToolUse/PostToolUse hooks (детерминированный код, «не может галлюцинировать») ↔ денежный гейт resource-governor; субагенты с разным доступом (Explore read-only / Plan без изменений кода / general-purpose) ↔ разделение channel-forge от channel-hq.
Claude Code out-of-the-box НЕ строит индекс кодовой базы — навигирует как инженер (grep, структура папок), а значит качество работы строителя целиком зависит от того, насколько заранее курирован контекст. Это прямое обоснование, зачем harness вообще нужен как отдельный объект внимания, а не «модель и так разберётся».
Для любопытных
Полная таблица переноса «орган завода → орган строителя» уже разобрана в Модуле 6 (виджет-мост урока 6.1) — здесь фокус смещён с самого цикла на инфраструктуру ВОКРУГ цикла: конвенции, скиллы, хуки как физический объект, который нужно собрать один раз и переиспользовать на каждом новом проекте, а не пересоздавать заново под каждую задачу.
Отметь чекбоксы — увидишь, какая доля harness для строителя приложений у тебя уже готова.
Открыть на своём заводе: открой 08-contracts.md и найди любой раздел, описывающий деплой или конфигурацию — это уже готовый скилл в прозе, ему не хватает только оформления в .claude/skills/<name>/SKILL.md.
🖼 Визуально
🕒 3 часа ночи: промпт-инструкция vs хук
Переключи режим — увидишь разницу между «попросить модель не забыть» и физической блокировкой кодом выхода.
⚖️ «Harness важнее модели» — живой пересчёт
Модель у тебя одна и та же (подписка Claude) — двигай только harness и смотри, что на самом деле определяет результат.
🔀 Harness по аналогии — тапни орган видео-завода
Тапни на любую пару — увидишь, зачем этот орган и что именно переносится с завода на строителя кода.
Это твой самый денежный режим: вечером ты приносишь боль реального бизнеса (кофейня теряет деньги на лишних сотрудниках, стройка теряет время на бумажной отчётности), а утром — 2-3 убедительных демо. Модуль 2 уже дал архитектуру: veer explorer-агентов с ЯВНО разными приоритетами + турнир разнородных судей. Здесь мы прикладываем её именно к MVP. Ключевая ошибка, которую легко совершить интуитивно, — запустить N одинаковых копий одного и того же агента на одну задачу. Это не даёт разнообразия: агенты без явно заданных разных углов сходятся к похожим решениям. Правильно — задать разницу явно в промпте каждого explorer'а: один строит CRM для записи клиентов, второй — telegram-бота лояльности, третий — dashboard управления запасами. Разные архитектурные ставки на одну и ту же боль, не N попыток одного и того же.
Вечерний сбор боли — тоже не свободный пересказ «на глаз». Исследование по гибридному подходу (явные правила + LLM) против чистого LLM-понимания незнакомого домена показывает разрыв в качестве, осторожно заявленный как 206% — цифру не повторяй как факт, а вот вывод стоит взять серьёзно: structured intake (полу-структурированное интервью с явными полями — процесс, точки решений, практические правила) работает надёжнее, чем «опиши боль в свободной форме и жди чуда». У тебя уже есть готовый кандидат на эту роль — сайд-проект client-interviewer, просто примени его как intake-слой перед запуском веера.
И последнее, самое важное для честности с самим собой и с клиентом: не обещай готовый продукт за одну ночь. Индустрия честно называет это «проблемой 70%» — ИИ быстро закрывает большую часть решения, а оставшиеся 30% (граничные случаи, безопасность, интеграция в продакшн, эмпатия к пользователю) требуют столько же человеческого труда, сколько и раньше. Утреннее демо продаёт не готовый продукт, а вход в оплачиваемую фазу доработки — это и есть твой настоящий доход, а не сам ночной прогон.
Архитектура: Requirements/intake-агент (structured intake через client-interviewer) → N Explorer-агентов с явно разными приоритетами (перф/scalability, DX/maintainability, cost-efficiency/time-to-market) в изолированных git-worktree (не в одну кодовую базу — параллельные агенты, пишущие в общий код, ломают сборку друг другу) → Judge Panel: knockout-турнир O(N log N), разнородные судьи (технарь / глазами клиента / по бюджету), не гомогенная тройка одной и той же модели. Время прогона ≈ время самого медленного explorer'а, не сумма — при достаточном числе параллельных слотов брокера (resource-governor-подобный принцип, перенесённый на code-агентов).
Per-domain память: опыт кофейни и опыт стройки НЕ должны смешиваться в общий банк напрямую (та же изоляция уровней, что уже защищает твой memory-bank от протечек между каналами) — кросс-доменным должен быть только процесс консалтинга (структура интервью, методология турнира), а не конкретные бизнес-факты клиентов.
Для любопытных
Ориентир по деньгам из индустрии полноценных MVP-агентств: $18 000-150 000 за цикл и 2-6 недель вместо 2-4 месяцев у классической разработки. Это НЕ твоя цена — твой ночной веер прототипов дешевле и быстрее на порядок, потому что это не готовый продукт, а «убедительный дискавери + пилот» (первая из трёх фаз типичной модели: Pilot/POC → MVP → Scaling). Именно вторую и третью фазу ты продаёшь клиенту после демо, а не производишь их за одну ночь.
Тапай фазы по порядку — вечер→ночь→утро одной сквозной ночи консультант-фабрики.
Открыть на своём заводе: открой сайд-проект client-interviewer — это уже готовый intake-слой; посмотри, какие поля он сегодня собирает, и сверь со списком «явные правила + процедурные точки», которого требует structured intake.
🖼 Визуально
🧬 Клоны vs явно разные Explorer-агенты
Переключи режим — увидишь, почему одинаковые копии не дают разнообразия, а разные приоритеты в промпте — дают.
📋 Свободный пересказ vs structured intake
Переключи режим — увидишь, что именно попадает в ТЗ до запуска веера explorer-агентов.
🌓 «Проблема 70%» — что продаёт утреннее демо
Двигай ползунок — увидишь, что именно остаётся в оставшихся 30% и сколько это примерно недель оплачиваемой доработки.
Урок 9.4 — «Клей: одна ОС вместо трёх заводов»
Твоя боль №1, названная тобой самим ещё до всякой теории, — «я сам клей между инструментами». Три направления, которые мы только что разобрали, рискуют остаться тремя отдельными заводами, между которыми ты вручную носишь информацию: увидел боль клиента — сам решил, кому передать; заметил денежную нишу в контенте — сам пошёл настраивать канал. Индустрия называет эту роль «человек-клей» (glue person) — и решение не «работать быстрее руками», а вырастить AI Glue Agent поверх читаемого источника истины.
Источник истины (Collaboration Plane) — это то место, куда ты просто бросаешь задачу человеческим языком: «новый канал», «клиент X, боли: ...», «построй мне тулзу Y» — веб-панель или Telegram, а не три разных интерфейса под три завода. Дальше один диспетчер (у тебя уже концептуально выбрана роль — Fable-оркестратор) читает эту доску и маршрутизирует задачу нужному заводу паттерном Handoff из Модуля 2: контент-фабрика, строитель приложений или MVP-веер. Это не новая идея, которую надо строить с нуля — это тот же принцип, что уже реализует channel-hq, только поднятый на уровень выше трёх направлений сразу.
Отдельная развилка, о которой стоит думать заранее, а не когда она уже сломается: общая память или передача сообщений между заводами. Если каждый агент видит только вывод предыдущего, а не общий контекст, — каждый рассуждает из своей частичной реальности, и опыт одного завода не помогает другому. Решение — единый knowledge graph: опыт, накопленный контент-фабрикой (какие ниши денежные, какие форматы заходят), должен быть доступен и разведчику возможностей, и MVP-строителю — и наоборот. Это прямое расширение того, что твой memory-bank уже частично делает внутри одной фабрики, только распространённое на всю систему.
Компоненты: Collaboration Plane (единый читаемый источник истины — панель/Telegram) + AI Glue Agent (автоматический оркестратор, мониторит доску, маршрутизирует по Handoff-паттерну, вызывает API нужного завода, пишет результат обратно на доску). Развилка Shared Memory vs Message Passing — предпочтение единому knowledge graph поверх трёх банков (per-контент/per-код/per-клиент), а не изолированным хранилищам без моста. Pull-based делегирование (заводы САМИ забирают задачи из очереди по готовности, а не диспетчер силой их проталкивает) безопаснее для соло-оператора — меньше точек, где всё виснет разом при сбое одного звена.
Для любопытных
Твой собственный выбор ролей моделей уже де-факто содержит эту архитектуру: «Fable — оркестратор; opus — размышления/синтез; sonnet — анализ/тексты; haiku — механический сбор» — это распределение ролей верхнеуровневого диспетчера, просто ещё не подключённое ко всем трём направлениям одновременно, а не абстрактная теория, которую предстоит выдумывать.
Тапни любой узел карты — от точки входа до общего мозга — увидишь, что там происходит и что туда переносится с завода.
Открыть на своём заводе: посмотри на структуру задач, которые ты сегодня ставишь в Telegram или руками в панели resource-governor :4700 — это уже зачаток Collaboration Plane. Следующий шаг не «строить с нуля», а научить диспетчера читать этот же поток и маршрутизировать его в три направления сам.
🖼 Визуально
🧍 Человек-клей vs AI Glue Agent
Переключи режим — увидишь, откуда информация течёт между тремя направлениями сегодня и как это меняется с Collaboration Plane.
🕸️ Изолированные банки vs единый knowledge graph
Переключи режим — увидишь, доезжает ли опыт «какие ниши денежные» от контент-фабрики до MVP-строителя.
🔄 Push vs Pull — что безопаснее для соло-оператора
Один завод «завис» — переключи режим и посмотри, останавливает ли это остальные два.
Где здесь деньги: этот модуль — карта ВСЕХ твоих источников дохода (ферма каналов / тулзы-SaaS / нишевые сайты / заказы клиентов / игры / консалтинг с продажей MVP) как одной системы с одним входом и общим мозгом, а не как трёх проектов, между которыми ты сам ручной клей. Единый диспетчер — это разница между «я управляю тремя заводами вручную» и «я даю одну команду, система сама решает, какому заводу её отдать».
Модуль 10
Чужие шрамы и настоящие деньги
Прямой разговор без теории: как люди РЕАЛЬНО зарабатывают на агентных системах, где такие системы держат — дома или на VPS — и восемь граблей, на которые уже наступал весь рынок (а некоторые — и ты сам). Это калибровка ожиданий, чтобы не потерять деньги на чужих ошибках.
Урок 10.1 — «Как люди реально зарабатывают на агентных системах»
Прежде чем разбирать очередной паттерн оркестрации, стоит остановиться и честно спросить: а на чём конкретно зарабатывают деньги те, кто уже это построил? Не «в теории может», а «вот кейс, вот цифра, вот откуда она взялась». Хорошая новость — таких людей уже много, и их модели заработка укладываются в понятную карту, а не в бесконечное разнообразие. Плохая новость — почти никто не зарабатывает чисто на самой архитектуре. Архитектура (оркестратор, память, критики — всё, что ты изучал в модулях 1-9) — это как хорошая иммунная система: она не приносит доход сама по себе, она делает возможным то, что приносит доход, работая надёжно и дёшево.
Смотри на это как на источник питания: у любого работающего агентного бизнеса есть ответ на вопрос «что система делает, пока я сплю, и что именно я в итоге продаю утром» — не абстрактно «ИИ», а конкретный артефакт: видео, сайт, отчёт, демо, подписка. Пять моделей встречаются снова и снова в разных рассказах: (1) агентства автоматизации — продают бизнесам решение их конкретной ручной боли, часто по подписке $5,000-10,000/мес на клиента, и по свидетельствам практиков именно «скучные» офлайн-отрасли (недвижимость, страхование, производство, юруслуги) платят больше всех — у них есть деньги и страх/неумение внедрять ИИ самим; (2) SaaS-инструменты на агентах — продукт, который сам является агентной системой (как Hyperagent от Airtable); (3) контент-фермы — твоё направление №1, монетизация внимания через рекламу/спонсорство/свои продукты; (4) продажа готовых MVP и автоматизаций бизнесам разово или по подписке — твой ключевой режим «консультант-фабрика»; (5) трафик → монетизация — нишевые сайты и SEO-контент, которые зарабатывают на рекламе, партнёрках или лидогенерации.
Важная отрезвляющая деталь, которую стоит принять сразу, а не открыть через полгода разочарования: даже соло-операторы, которые публично отчитываются о доходе $1M+ в год на агентах, почти всегда всё равно держат 1-3 человека на самых критических ролях — обычно это продажи и доверие клиента. Это не признак того, что автоматизация «не работает», это признак того, где именно проходит её реальная граница. Для твоего плана консультант-фабрики это значит: сама продажа клиенту — рукопожатие, разговор, демо у него в кабинете — скорее всего навсегда останется твоей личной работой, а не тем, что можно поручить агенту. И это нормально: агент экономит тебе недели стройки, а не заменяет твоё лицо перед клиентом.
Отдельно стоит взгляд практика с YouTube-канала, который прицельно разбирает заработок на агентах (Jack Roberts, @Itssssss_Jack): его конкретные цифры — контент-канал на автоматизированном пайплайне (скрипт → голос → визуал → сборка) выходит на уровень дохода порядка $30,000/мес через комбинацию рекламы, спонсорства и собственных продуктов, а быстрая сборка конверсионных сайтов под ключ продаётся клиентам по $10,000 за штуку при ~20 минутах активной работы по его технологии. осторожно Общий урок из его материала звучит знакомо, потому что это ровно твой закон №4: «инструменты — это не замена стратегии, а её ускоритель» — переписывай сценарии своим голосом и стилем, не публикуй «ИИ-слоп», потому что зрителей и алгоритм одинаково раздражает узнаваемая генеричность.
Формально это разные паттерны монетизации с разной структурой издержек и масштабируемости: агентства — сервисный бизнес с высокой маржой на клиента, но линейно растущей нагрузкой продаж; SaaS — высокие первоначальные издержки разработки, почти нулевая предельная стоимость масштабирования; контент — низкий порог входа, высокая конкуренция за внимание, доход растёт нелинейно после критической массы подписчиков; продажа MVP — разовый доход + опциональная подписка на поддержку, прямая конверсия времени в деньги, но каждый клиент индивидуален; трафик-сайты — SEO-игра вдолгую, доход отложен на месяцы.
Ключевая архитектурная деталь для твоей системы — агент-разведчик возможностей: не пассивный инструмент, а проактивный процесс, который сканирует внешние сигналы боли (вакансии «ищем человека делать X вручную», жалобы на форумах, отзывы с формулировками «теряем время/деньги на Y») и приносит идею уже с прикидочным расчётом окупаемости, а не просто «вот тренд». Технически это расширение уже существующего у тебя x-research-daily: тот же паттерн (парсинг → дайджест → Telegram), но с другим набором источников и с добавленным шагом финансовой оценки идеи перед подачей тебе.
Для любопытных
Готовые промпт-рецепты, которые прямо применимы к настройке твоего opportunity-scout, уже существуют и опубликованы в открытом доступе — детальный промпт для customer-intelligence ресёрча (поиск болей клиентов по десяткам источников с оценкой серьёзности проблемы и готовности платить) и промпт для маппинга рынка/поиска ниши с 90-дневным roadmap (см. `x-digest-2.md` §5, автор @mattshumer_). Это не нужно изобретать с нуля — можно взять структуру и адаптировать под свои домены консалтинга.
Микро-паттерн заработка, который стоит знать просто для полноты картины (не как рецепт): низкоконверсионная, но объёмная автоматизация — например, массовая рассылка формальных документов, где даже единицы процентов отклика дают доход при достаточном объёме. Один из известных случаев в X-корпусе описывает именно такую механику применительно к фальшивым инвойсам крупным компаниям — это прямое мошенничество, и упомянуто здесь ТОЛЬКО как предупреждение: подобный «объём × автоматизация» класс возможностей стоит применять исключительно к легальным низкоконверсионным воронкам (холодные заявки в консалтинг, автогенерация квалифицированных лидов), а не как источник вдохновения для серых схем — курс сознательно не даёт инструкций по их устройству.
Для каждой модели: что система делает ночью, что ты продаёшь утром, разовый доход или подписка.
Выбери модель монетизации.
🕵️ Разведчик возможностей — макет сигналов
Тапни тип сигнала — увидишь, где его искать и как opportunity-scout превращает его в идею с расчётом.
Выбери тип сигнала боли.
Открыть на своём заводе: посмотри конфиг x-research-daily/config/topics.yaml — сейчас он настроен на темы контента. Прикинь, какие 2-3 темы туда добавить для сигналов боли бизнесов (вакансии, жалобы), чтобы этот же сервис стал зародышем opportunity-scout, а не только источником тем для видео.
🖼 Визуально
⚖️ Структура издержек 5 моделей — тапни модель
Не сколько платят, а КАК устроены расходы и время до первых денег — три оси на каждую модель.
Выбери модель.
💰 Калькулятор дохода — контент-канал vs веер MVP-сайтов
Два реальных режима заработка из практики (Jack Roberts, @Itssssss_Jack). Подвигай ползунки — увидишь, откуда берётся заявленная цифра. осторожно
Выбери режим.
🔗 Разведчик возможностей — из чего он на самом деле собран
Тапни звено цепи: половина уже есть в твоём заводе, половина — новый шаг.
Тапни звено цепи.
Урок 10.2 — «Дом vs VPS: как это держат в дикой природе»
Модуль 8 уже дал тебе честный технический расчёт хостинга — цены, конфигурации, окупаемость. Здесь другой ракурс: не «что дешевле по счёту», а «что говорят люди, которые уже месяцами держат такие системы на своём железе». Это как разница между инструкцией к лекарству и разговором с врачом, который сам его прописывает пациентам не первый год — цифры те же, но появляется контекст, которого в инструкции нет.
Самая честная фраза с недавнего очного митапа держателей домашних агентных систем звучит отрезвляюще: «ни один человек не считает свою домашнюю установку на 100% безопасной». Один из экспертов по безопасности выразил это ещё резче — «если ты не готов к тому, что все твои данные утекут в интернет, не используй это; это чёрно-белое решение, без полутонов». Это не значит «не делай» — это значит «делай с открытыми глазами», примерно как оценка риска перед процедурой: врач не обещает пациенту ноль осложнений, он честно называет вероятность и готовит план на случай, если что-то пойдёт не так.
Масштаб реальных трат у серьёзных операторов домашних агентных систем — $1,000-2,000/мес, с потреблением порядка миллиарда токенов в день суммарно по всем их «когтям» (агентам). Это, кстати, ровно верхняя граница твоего собственного бюджета из профиля — то есть ты целишься не в игрушечный, а во вполне серьёзный по индустриальным меркам масштаб, и стоит рассчитывать расходы соответственно, а не удивляться им постфактум.
Общее наблюдение практиков про надёжность агентов само по себе важнее вопроса «дом или VPS»: агенты в одиночку ненадёжны и склонны врать, что задача завершена, хотя это не так. Рабочее решение, к которому люди приходят независимо друг от друга — вторичные агенты-проверяльщики поверх первых плюс сохранённая человеческая проверка на критичных точках. Это дословно твоя практика «критика до и после» и твой закон №5 «не терять задачи» — только формализованная как обязательный паттерн, а не личная привычка. Ещё один рабочий паттерн из той же среды — агенты, которые «прокачивают» друг друга, обмениваясь навыками через открытые репозитории на GitHub: один агент собрал полезный скилл, поделился с другими агентами того же оператора. Это прообраз второго этапа самообучения из твоего профиля — «система дописывает своих агентов».
Практическая инфраструктура, которую независимо друг от друга описывают разные соло-операторы — гибрид VPS + локальная машина + защищённая сеть: облачный дроплет как постоянно доступный «мозг», локальная машина (Mac mini или мощный ПК) для тяжёлых/приватных задач, всё связано VPN-mesh-сетью (Tailscale), с Telegram или Slack как тонким командным слоем для управления с телефона. Это прямо повторяет структуру, к которой ты уже пришёл (VPS-завод + ПК с RTX 3090) — не нужно изобретать новую архитектуру, нужно достроить существующую.
Токсичная сторона той же экосистемы, зафиксированная на том же митапе и в X-корпусе — не абстрактная угроза, а прямое обоснование твоей красной линии по деньгам: задокументированы случаи массовой рассылки фальшивых счетов крупным компаниям с расчётом на процент невнимательных плательщиков, и десятки фейковых заявок на покупку недвижимости, рассчитанных на испуг пожилых владельцев. Формулировка одного из авторов таких схем прямая: «эти компании расточительны — мы захватываем эту утечку». Это не пример для подражания — это иллюстрация того, что происходит с агентными системами, у которых нет жёсткой красной линии по деньгам и этике. У тебя она есть с самого начала профиля, и этот раздел — подтверждение того, почему её нельзя смягчать «для скорости».
Для любопытных
Конкретная инфраструктурная цитата практика (Ben Tossell) о его личной установке: облачный дроплет на DigitalOcean + синхронизация репозиториев с локальной машины через Syncthing + отдельно купленный Mac mini + всё связано через Tailscale, с управлением через Slack и в офлайн-режиме, и в «удалённом». Структурно это тот же паттерн «сервер снаружи + мышцы дома», который рекомендован тебе в Модуле 8, только с другими конкретными инструментами (Syncthing вместо твоего memory-bank-синка, Slack вместо Telegram).
Один из зафиксированных провалов прямо касается твоей красной линии по деньгам: агенту дали доступ к торговому портфелю с инструкцией «доведи до $1M, не ошибайся» — 25 стратегий, тысячи отчётов, круглосуточная торговля — результат: портфель слит полностью. Это лучшее эмпирическое подтверждение того, что гейт «трата денег требует подтверждения» — не излишняя осторожность, а наблюдаемая необходимость даже при технически впечатляющей инфраструктуре сигналов. Второй зафиксированный случай мельче, но показательнее по духу: агент с полной автономией сам подписался на курс за $2,997, насмотревшись роликов инфобизнес-гуру — иллюстрация того, что «полная автономия кроме денег» должна означать буквально «кроме ЛЮБОЙ траты», а не только крупных сумм.
🏠 Дом / VPS / гибрид — с цитатами из дикой природы
Вариант
Безопасность
Цена
Надёжность
Цитата из дикой природы
Тапни строку, чтобы подсветить.
Предупреждение про серый доход: объёмные низкоконверсионные схемы (фейковые счета, пугающие пожилых владельцев предложения) технически работают на той же инфраструктуре, что и твой завод — разница только в этике и в наличии красной линии по деньгам. Курс не даёт инструкций по таким схемам намеренно: твоя красная линия «трата денег требует подтверждения» — это одновременно и защита от разорения, и защита от превращения твоей системы в инструмент, который ты не захочешь потом объяснять.
Открыть на своём заводе:ssh root@VPS; tailscale status (или проверь, настроен ли у тебя вообще mesh-VPN между VPS и ПК с 3090) — если домашний ПК ещё не подключён к заводу защищённой сетью, это первый шаг перед тем, как поручать ему GPU-задачи в общем конвейере.
🖼 Визуально
📊 Твой бюджет vs масштаб серьёзных операторов
Подвинь ползунок — увидишь, в какой зоне относительно реальных операторов домашних агентных систем ты окажешься.
Месячный бюджет на агентов ($)1500
—
🧬 Гибрид VPS + локальная машина — из чего он собран
Тапни узел — что он делает у практиков и что ему соответствует на твоём заводе.
Тапни узел.
🩺 Надёжность агента — наращивай защиту
Агенты в одиночку ненадёжны и склонны врать, что задача завершена, хотя это не так. Смотри, что чинит это по шагам.
Урок 10.3 — «Восемь грабель, на которые ты уже наступил (и как индустрия их называет)»
Последний урок модуля — не новая теория, а зеркало. Каждый пункт ниже — это грабля, задокументированная где-то в индустрии как системная закономерность, и почти на каждую из них у тебя за месяц стройки уже нашёлся свой ответ — иногда до того, как ты вообще прочитал, что это официально называется именно так. Это стоит признать явно: ты не изучаешь чужой опыт с нуля, ты сверяешь свой опыт с чужим словарём.
Восемь пунктов: (1) избирательная автономия — твои два гейта на самых дорогих и необратимых шагах, а не один гейт «на всё»; (2) петля смерти — твоя история «залил 1 видео и завис», разобранная в Модуле 4; (3) хрупкие интеграции и «налог на опрос» — твои грабли с IG Stories и таймаутом FastGen, когда система тратит время и деньги, спрашивая API «готово?» вместо того, чтобы получить уведомление о готовности; (4) общая память вместо простой передачи сообщений между агентами — твой memory-bank, который ты построил как «общую нервную систему» раньше, чем прочитал, что индустрия называет это shared knowledge graph; (5) рассинхрон между параллельными агентами — изоляция воркспейсов (git worktree), нужная тебе для веера MVP, чтобы параллельные варианты не портили общий репозиторий друг другу; (6) стопроцентная автономность как задокументированная ошибка, а не идеал, к которому надо стремиться; (7) контекст эффективно используется лишь на половину заявленного окна, а не до последнего токена; (8) человек как «клей» между инструментами — твоя боль №1 из профиля, у которой уже есть архитектурный ответ.
Разберём подробнее две грабли, которые проще всего недооценить. Первая — «стопроцентная автономность = ошибка»: индустриальная формулировка звучит жёстко — модель в принципе не умеет надёжно распознать момент, когда задача вышла за границы её знаний, и в такой ситуации либо выдумывает правдоподобное объяснение, либо зацикливается в бесполезных попытках. Рабочий ответ, к которому пришли успешные команды, называется коротко: «держи струю из шланга короткими управляемыми очередями» — вместо одного непрерывного 10-часового ночного прогона нужны десятки коротких проверяемых фаз с чекпойнтами внутри самой ночи, а не только на входе и выходе.
Вторая — эффективность контекста. Индустрия фиксирует конкретную цифру: контекстное окно реально работает хорошо только на 50-60% от заявленного размера — качество деградирует задолго до формального лимита токенов. Практический вывод для твоей будущей системы: сбрасывать сессию на свежую нужно по факту «сменился этап задачи», а не по факту «контекст переполнился» — иначе ты незаметно работаешь на деградировавшем внимании модели, даже когда счётчик токенов ещё далёк от максимума.
Формально эти восемь пунктов группируются в три индустриальных кластера failure modes: (а) ошибки контроля — неправильная калибровка автономии в обе стороны (слишком много ручных гейтов ИЛИ их полное отсутствие); (б) ошибки интеграции и контекста — хрупкие связи между компонентами, изоляция vs общая память, деградация внимания модели; (в) ошибки координации — рассинхрон между агентами и людьми, циклические срывы, роль человека как незаменяемого узла маршрутизации.
Практический вывод — восемь пунктов превращаются в восемь конкретных вопросов для самодиагностики, а не в абстрактный список терминов. Ниже — интерактивный чек-лист, который стоит пройти буквально с открытым терминалом рядом, отмечая честно «закрыто» или «риск» по каждому пункту применительно к текущему состоянию завода (снимок HERMES_HANDOFF от 2026-07-11).
Для любопытных
Полезная деталь про механизм «рассинхрона» из практики параллельных coding-агентов: если несколько агентов пишут в один и тот же git-репозиторий одновременно без изоляции веток, происходит буквально «breaks the build, and once the build's broken, everybody's blocked» — сборка ломается для всех, включая агентов, которые к поломке не причастны. Это прямая причина, почему для твоего веера 3-10 MVP нужны отдельные git worktree или контейнеры на вариант, а не общая рабочая директория.
Полезная деталь про «клей»-проблему: три независимых источника (GoKiteAI про auth-проблему при масштабе интеграций, Airtable Hyperagent про изолированные окружения на сессию, практик NickSpisak_ про рецепт repo→plan→approve) сходятся на одном и том же диагнозе — ручное связывание агента с внешними инструментами и данными, а не качество модели, становится главным узким местом масштабирования. У тебя уже есть частичный ответ — resource-governor как брокер, Caddy+SSO как единая точка входа — и это логичное место для развития в полноценный auth-брокер, когда клиентских интеграций (платёжки, YouTube API, соцсети) станет больше.
По каждому пункту честно отметь: у тебя уже закрыто или это риск. Прогресс считается снизу.
Отметь пункты выше.
Открыть на своём заводе: пройди чек-лист выше вслух с открытым docker ps и memory-bank под рукой — по каждому пункту, где отметил «риск», запиши одну строку в свой задачник (Obsidian/очередь). Это и есть черновик приоритетов для финального roadmap в Модуле 11.
🖼 Визуально
🧠 Сколько контекста реально работает
Двигай ползунок «использовано контекста» — увидишь, где начинается зона деградации.
Использовано контекста (% от заявленного окна)40%
—
Практический вывод: сбрасывай сессию на свежую по факту «сменился этап задачи», а не по факту «контекст переполнился».
🗂️ Восемь граблей → три кластера ошибок
Формально восемь пунктов группируются в три индустриальных кластера failure modes. Тапни кластер.
Выбери кластер.
🚿 Один прогон vs «струя из шланга короткими очередями»
100%-я автономность — задокументированная ошибка, не идеал. Переключи режим ночного прогона.
🧱 Веер MVP — что бывает без изоляции воркспейсов
3-10 агентов пишут параллельно. Переключи режим — увидишь, что ловит git worktree.
Где здесь деньги: весь модуль — это калибровка ожиданий, а не новая архитектура. Карта монетизации показывает, куда именно вести уже построенную систему; таблица дом/VPS/гибрид — на каком фундаменте это держать без сюрпризов; чек-лист граблей — что чинить в первую очередь, прежде чем масштабировать до десятков каналов и веера MVP. Каждая нерешённая грабля — это будущий потерянный бюджет или потерянное время, а не абстрактный технический долг.
Модуль 11 · Финал
Roadmap твоей системы
Это не повторение теории — это план действий. Финальный стек с обоснованием, куда что физически ставить, девять шагов внедрения по риску и деньгам, и подробный план на первую неделю — с тем стеком, который у тебя УЖЕ есть, без переписывания завода с нуля.
Урок 11.1 — «Ядро с аргументами: финальное решение»
За десять модулей мы разобрали организм по частям — нервную систему, память, иммунитет, метаболизм. Теперь пора собрать диагноз и назначение в одну карту. Финальное решение по ядру системы звучит скучно-просто, но именно эта скука — признак хорошего решения: ничего радикально не менять, а достроить то, что уже работает.
«Мозг» — подписка Claude — остаётся без изменений, это уже правильный выбор, никакого пересмотра. «Ядро» — то есть то, что реально исполняет команды и держит роли/гейты/память — это Claude Agent SDK, потому что твой завод УЖЕ говорит на этом языке: `channel-hq` вызывает `claude -p` с мульти-аккаунт failover — это буквально subprocess-модель, на которой построен Agent SDK. Переезжать на чужую систему состояния (LangGraph, CrewAI) означало бы выбросить месяц работы и переучивать заново то, что уже освоено интуитивно.
Поверх этого ядра — три «надстройки», не платформы, а именно дисциплины, то есть способ мышления, а не библиотека для установки. Первая — PAUL для строителя приложений: явные критерии «сделано» вместо расплывчатого «агент сказал done» — прямая защита от вранья моделей о завершении задачи. Вторая — твоя же реализация `state.json` и чекпойнтов: этого достаточно, отдельный state-движок не нужен. Третья — AG2-паттерн дебатов, но только сам паттерн турнирного сравнения, применённый локально в судейской панели — не сама библиотека AG2 как зависимость.
Отдельно — что заимствуем идеями, но не кодом: у OpenClaw это формат `MEMORY.md`/`.learnings/` (простой файл с уроками, который читает каждый агент) и приём с лимитом глубины рекурсии субагентов — обе идеи ценные, но без публичного WebSocket-гейтвея OpenClaw и без чужих скиллов из общего каталога, потому что там уже находили вредоносный код. n8n — точечный инструмент для склейки внешних API и webhook-триггеров, не архитектурный слой: он никогда не станет «мозгом», только соединительной тканью там, где это дешевле, чем писать код руками. И лестница моделей (haiku → sonnet → opus) со стоп-кранами по деньгам — не отдельная фича, а встроенное свойство ядра с первого дня, а не то, что «добавим потом».
Итоговый стек: runtime = Claude Agent SDK (subprocess-модель, совместимая с текущим `claude -p` мульти-аккаунт failover) · оркестрация = собственный `orchestrator.mjs`, доработанный по PAUL (Given/When/Then критерии приёмки + этап UNIFY — план vs факт) · state = файловый `state.json` + git-чекпойнты, без выделенного state-движка · межагентное сравнение = паттерн parallel fan-out + role panels (штатный для Agent SDK), инстанцированный как судейская панель · память = существующий `memory-bank` (3 банка) + заимствованный формат `MEMORY.md`/`.learnings/` из OpenClaw как соглашение о структуре файла, не как зависимость · клей = n8n точечно для внешних webhook/API-интеграций · деньги = лестница моделей + hard budget-gate как встроенный `PreToolUse`-хук, не промпт-инструкция.
Явно НЕ берём: LangGraph (граф — абстракция, которая ничего не даёт поверх уже работающей subprocess-модели), CrewAI (роли без нужной гибкости прав доступа инструментов), AutoGen/AG2 как runtime (берём только паттерн дебата), OpenAI Agents SDK (не совместим по мозгу — завязан на другого вендора), MetaGPT/OpenHands как готовые платформы (берём только SOP-паттерн PM→Architect→Engineer→QA и принцип event-sourced лога, реализуем нативными субагентами), OpenClaw как gateway (берём только два конкретных файловых паттерна).
Для любопытных
Прямая цитата из источника, почему OpenClaw — не архитектурный кандидат, несмотря на духовную близость: OpenClaw переходит под управление фонда при поддержке OpenAI и становится мультивендорным гейтвеем (любая подписка LLM), тогда как Agent SDK — вендор-лок на Anthropic, но с тем самым харнессом, который сама Anthropic использует внутри для «most of our own agent loops» — то есть не экспериментальная надстройка, а боевой инструмент первого поставщика.
Итоговая рекомендация источника прямо формулирует принцип: «гибридное ядро, не единый фреймворк» — не существует одного универсального решения, закрывающего оркестрацию, дисциплину строительства и судейство одновременно; собирать из частей, каждая из которых выбрана по своей узкой роли, дешевле и надёжнее, чем ставить на один «комбайн».
Источники: frameworki.md §2 (матрица восьми систем), §4-6 (итоговая рекомендация и практические выводы).
📋 Итоговая карточка стека — тапни слой
Тапни любой слой — увидишь, что это, откуда взято и почему именно так, а не иначе. Это карточка, которую можно держать под рукой на телефоне.
🌳 Дерево решений «почему не X»
Выбери альтернативу — увидишь, почему она отпала именно для твоего случая (не «плохой продукт», а «не подходит по конкретной оси»).
Открыть на своём заводе:ssh root@VPS; cat apps/channel-hq/core/orchestrator.mjs | grep -i "claude -p" — это и есть тот самый фундамент, который признан ядром финального стека. Ничего нового ставить не нужно — просто достроить дисциплину поверх.
🖼 Визуально
🎯 Берём идею, не берём код
Тапни источник — увидишь, какую именно идею мы берём, а что осознанно отбрасываем.
🪜 Лестница моделей — стоп-кран по деньгам
Двигай ползунки — увидишь, какая модель выбирается на лестнице и когда срабатывает стоп-кран по деньгам.
🔗 Цепочка ядра — от мозга к дисциплинам
Тапни по любому звену цепочки — узнаешь, что это и почему выбрано именно так.
Урок 11.2 — «Железо: что ставить на ПК, что на VPS, что в облако»
Ошибка, которую легко совершить — планировать железо от того, что уже стоит дома, а не от задачи. Твой ПК с RTX 3090 — это ОДИН из инструментов, не якорь, вокруг которого нужно строить всю архитектуру. Правильный вопрос не «куда пристроить 3090», а «какая задача что требует» — и дальше уже смотреть, каким узлом это закрыть дешевле и надёжнее.
Оркестратор, память, веб-панель и очередь задач — это управляющий контур. Он обязан жить на VPS: сервер работает 24/7, не зависит от того, включён ли твой домашний компьютер, ушёл ли ты из дома. Это ровно то, что у тебя уже есть — 16+ сервисов на Hetzner уже там, менять ничего не нужно, только достроить.
GPU-задачи — локальный инференс модели, рендер видео, генерация голоса — это мышцы по требованию: ПК с 3090 включается, когда нужна конкретная тяжёлая задача, и не обязан быть постоянно доступным — если он выключен, конвейер видео не должен вставать, просто теряется доступ к локальному инференсу, а вместо него подключается облачный резерв (RunPod, который ты уже используешь для озвучки). Связь между VPS и ПК стоит перевести с текущих reverse-ssh туннелей на Tailscale — это отраслевой стандарт для приватной mesh-сети между сервером и домашней машиной, и ты не одинок в этом паттерне: это ровно та же связка, которую независимо выстроил другой соло-разработчик (VPS + Mac mini + Tailscale, Telegram/Slack как пульт).
Ночной билдер приложений — отдельная история: он должен исполнять код в изолированной песочнице, без доступа к секретам боевого завода (`.env`, YouTube OAuth) — ни на VPS рядом с боевыми сервисами, ни на ПК с прямым доступом к сети завода. Это не паранойя, это прямой урок из индустрии: даже эксперты по безопасности признают, что «никто не считает свой сетап на 100% безопасным» — значит закладывать изоляцию нужно архитектурно, не полагаться на аккуратность.
Отдельный практический момент, который стоит решить в первую очередь именно потому, что он дешёвый: диск VPS занят на 91%. Это чинится за час и без него любые следующие шаги (очередь задач, структурированные логи) рискуют упереться в нехватку места в самый неподходящий момент.
Размещение по узлам: VPS (control plane) — оркестратор, memory-bank, resource-governor/веб-панель, очередь (Redis-брокер), все конвейерные сервисы. ПК-3090 (GPU worker, on-demand) — локальный инференс (Qwen/Llama до ~30B в Q4), рендер, голосовой синтез; связь через Tailscale, не критический путь. Облако (fallback + burst) — RunPod для GPU-задач при офлайн ПК, уже используется для голоса. microVM/изолированный Docker-контекст (builder sandbox) — ночной строитель кода, без секретов боевого завода, артефакт выгружается только после прохождения evals.
Честные исправленные цифры (в старых материалах были ошибки — здесь исправлено): Hetzner CX22 (2vCPU/4GB) стоит исправлено ≈€4.35/мес, а не €5.50, как было в черновике — впрочем, у тебя не CX22, а более мощный 16GB-план, апгрейдить которого прямо сейчас не требуется. Сборка ПК с RTX 3090 исправлено реалистично стоит $1500-3500 (сама карта $1000-1500 + остальной ПК), а не от $900, как звучало в черновике. Аренда 3090 в облаке (Vast.ai/GetDeploying/NeevCloud) исправлено стоит $0.13-0.6/час, а не $15/час — при таких честных ставках домашняя 3090 почти никогда не окупается «против облака» в узком смысле экономии на аренде; её ценность в другом — приватность и нулевая задержка запуска для задач, которые ты уже гоняешь регулярно.
Для любопытных
Прямая параллель из индустрии — независимый соло-разработчик описывает буквально ту же схему: «The VPS setup is I basically just set up a droplet... and then I use Syncthing to sync certain repos from my machine... and then I bought a Mac Mini, and connected them all with Tailscale. So when I'm offline — off my computer — I can use Slack to talk to Droid in a local or remote state.» У тебя тот же паттерн, только вместо Mac mini — уже купленный ПК с 3090, и вместо Slack — Telegram.
Mac mini как альтернатива домашнему серверу заслуживает отдельного упоминания: тихий, низкое энергопотребление, круглосуточная работа без шума вентиляторов — стоит рассмотреть как второй «всегда включённый» узел, если захочется разгрузить основной ПК от роли постоянного helper-сервера, оставив 3090 строго под тяжёлые задачи по требованию.
Сначала тапни компонент, потом — узел, куда его поставить. Система подскажет, если назначение рискованное.
Компоненты:
Узлы:
Выбери компонент, затем узел.
💰 Калькулятор бюджета инфраструктуры
Открыть на своём заводе:ssh root@VPS; df -h — если диск под 90%+, это первый и самый дешёвый шаг из всей этой карты, сделай его до всего остального в модуле.
Тапни блок — узнаешь, видит ли его билдер и почему.
🔌 Связь VPS↔ПК — сейчас vs план
Урок 11.3 — «Этапы: от полуручной фабрики к ночной автономии»
Самая частая ошибка при внедрении такой системы — попытаться включить всё сразу: оркестратор, полную автономию, критиков, брокер, песочницу — одним вечером. Это прямая дорога к тому самому «Loop of Death» из Модуля 4, только теперь не в одном прогоне, а во всей архитектуре разом. Правильный путь — девять этапов, каждый со своей целью, тем, что реально трогаем, риском и понятным критерием «готово, можно идти дальше».
Порядок не случаен: сначала — самое дешёвое и низкорисковое (диск, аудит открытых портов), потом — то, что закрывает дыры без изменения архитектуры (структурированный лог решений), и только в середине пути — по-настоящему рискованные вещи (снятие гейта одобрения, включение оркестратора). Первый кандидат на «включить агентность» — это ОДНА вертикаль, не вся фабрика разом: начать с evaluator-optimizer (он у тебя уже частично есть), затем orchestrator-workers в режиме только чтения, и только потом — полный цикл до автоматического approval.
Девять этапов: (1) диск + аудит `0.0.0.0`-биндингов + перепроверка снимка состояния — низкий риск, дёшево; (2) структурированный JSON-лог решений в memory-bank → замыкание LEARNING; (3) изолированный критик на существующем APPROVAL-гейте, калибровка неделями против собственных решений; (4) брокер (Redis) между стадиями конвейера; (5) `orchestrator.mjs` с матрицей гейтов (не бинарной) + budget-gate как hook поверх `resource-governor`; (6) расширение портала :4700 до mobile-панели + двусторонний Telegram; (7) отдельная песочница ночного билдера; (8) opportunity-scout как расширение `x-research-daily`; (9) веер MVP (explorer×critic + турнир) на изолированных git worktree.
Для любопытных
Почему именно такой порядок, а не «сначала самое интересное» (оркестратор или веер MVP)? Потому что каждый следующий этап опирается на предыдущий: судейская панель (9) не имеет смысла без изолированного критика (3), а критик не имеет смысла без структурированного лога решений (2), на котором его калибруют. Пропуск этапов не ускоряет путь — он просто переносит недостающую инфраструктуру в конец, где цена ошибки выше (боевая ночная автономия вместо тестового прогона).
Открыть на своём заводе:ssh root@VPS; df -h && grep -rn "0.0.0.0" apps/*/docker-compose.yml — это этап 1, начни с него сегодня, он не требует решений, только чистки.
🖼 Визуально
📈 Одна вертикаль — нарастание автономии
⛓️ Почему именно такой порядок этапов
Тапни этап — узнаешь, от чего он зависит и почему пропуск не ускоряет путь.
⚠️ Что будет, если пропустить фундамент
Цель — сразу включить этап 9 (судейская панель веера MVP). Отметь, какие этапы решил пропустить по пути.
Урок 11.4 — «План первой недели»
Всё, что мы разобрали за одиннадцать модулей, сводится к одному честному вопросу: что конкретно ты делаешь в понедельник утром? Ниже — семь дней, реализуемых на твоём СЕГОДНЯШНЕМ стеке, без переписывания архитектуры. Ничего из этого не требует ждать «идеального момента» — каждый день закрывает один конкретный кусок из этапов 1-3 предыдущего урока.
Честная планка ожиданий, чтобы не разочароваться на третий день: реалистичный результат первой недели — 85-95% готовности инфраструктуры для следующих этапов, а не «система заработала сама». Окупаемость такой стройки — это недели калибровки, не мгновенный эффект с первой ночи.
День 1 — диск + аудит биндингов + `docker inspect` restart-политик всех сервисов. День 2-3 — структурированный JSON-лог решений каждой стадии в memory-bank, mechanical-first (без LLM там, где хватает скрипта). День 3-4 — датасет 30-50 опубликованных видео с известным исходом, разметка по чек-листу хук/визуал/звук/факты. День 4-5 — прототип изолированного критика: отдельный вызов `claude -p`, чистый контекст, только артефакт + чек-лист, без истории рассуждений генератора. День 5-6 — budget-gate как hook на `resource-governor.slot` (дневной/часовой лимит, Telegram-подтверждение сверх потолка). День 6-7 — отдельный Docker-контекст/microVM для будущего билдера БЕЗ `.env`/OAuth + явный конфиг retry-лимитов вместо памяти «не thrash'ить».
Для любопытных
Почему датасет из 30-50 видео (день 3-4) — самая трудоёмкая, но одноразовая инвестиция недели: это единственный шаг, который нельзя автоматизировать полностью — критик обучается на твоей реальной калибровке «что сработало», и без честного бенчмарка любая последующая автоматизация approve/deny будет угадывать вслепую. Один раз потратить день на разметку — дешевле, чем месяцами калибровать критика на живом трафике методом проб и ошибок.
Источники: nadezhnost.md §9 (полный план недели), verify: corrections-2/3.md (все цифры этого модуля).
✅ Чек-лист первой недели
Отмечай пункты по мере выполнения — прогресс-бар выше покажет твой процент готовности к следующим этапам.
🏁 Финальный тест курса — собери систему из компонентов
Для каждой задачи выбери правильный компонент твоей системы. Это не повтор урока — это проверка, что ты можешь применить всё целиком.
Открыть на своём заводе прямо сейчас:ssh root@VPS; df -h — это первая команда плана, набери её сегодня, не после прочтения курса до конца.
🖼 Визуально
📊 Датасет для критика — сколько видео размечено
⏳ Ожидание vs честная планка
🗓️ Неделя как цепочка — что от чего зависит
Тапни день — узнаешь, почему он идёт именно после предыдущего.
Где здесь деньги: этот модуль — не «что я узнал», а «что я делаю в понедельник утром, чтобы система начала приносить деньги на автопилоте». Каждый из девяти этапов оценён через призму скорости к деньгам: диск и аудит биндингов (этап 1) — бесплатная страховка от простоя фабрики; критик (этап 3) и оркестратор (этап 5) — прямой путь к масштабированию каналов без роста ручного труда; opportunity-scout (этап 8) и веер MVP (этап 9) — новые источники дохода (консультант-фабрика), а не только автоматизация существующего. Бюджет $500-2000/мес держится по честным ставкам GPU-аренды ($0.13-0.6/час) и OpenHands-ориентиру ($0.5-3/прогон) — система остаётся дешёвой by design, не «монстром за $1000/минуту».