Основы агентов: LLM-агент с нуля — модель + инструменты + цикл
Аналитический документ для курса Лучиана. Тема: что такое LLM-агент, tool use, чем агент отличается от чат-бота, анатомия одного агента.
1. Зачем вообще формальное определение
В индустрии царит терминологическая инфляция: DevRev отмечает, что из тысяч продуктов, называющих себя «AI-агент», архитектурно агентными по строгим критериям являются лишь около 130 (fundamentals-agents.md). Anthropic в собственном блоге признаётся, что писала программную статью «Building Effective Agents» именно потому, что «мы заходим на встречи с клиентами, и все называют одну и ту же вещь разными терминами» (Barry, applied AI team, транскрипт LP5OCa20Zpg.txt). Для Лучиана это не абстрактная лингвистика: он уже построил систему из 16+ докер-сервисов, где есть код, который называется orchestrator.mjs, но выключен, есть память (memory-bank), есть циклы генерации с ретраями — вопрос в том, что из этого уже «агент», а что — просто последовательный скрипт (workflow), который выглядит умным, потому что вызывает LLM несколько раз подряд.
Официальное определение Anthropic: «AI-агент — это система, где LLM динамически направляет свои собственные процессы и использование инструментов, сохраняя контроль над тем, как выполняет задачи». Ключевое слово — «динамически». Модель сама решает, сколько шагов сделать и в каком порядке, а не идёт по зашитому в код маршруту.
2. Три уровня использования LLM (не два)
Anthropic различает не «агент vs. workflow», а три слоя, и путаница обычно возникает из-за того, что люди перепрыгивают через средний:
- Augmented LLM — модель с доступом к поиску/памяти/одному инструменту, но без цикла. Это, например, единичный вызов
claude -pв стадииstage_visual_rulesфабрики Лучиана — модель один раз пишет режиссуру для чанка сцен и не возвращается к этому решению. - Workflow — код заранее фиксирует последовательность LLM-вызовов, каждый со своим узким промптом; между ними — программные «врата» (gate) для проверки. Это ровно то, чем сейчас является конвейер ⓪→⑨ на заводе Лучиана:
stage_script → stage_script_qc → stage_voice → stage_visual_rules → stage_prompts → stage_images → stage_timeline → stage_render → stage_capcut— жёсткая, предсказуемая цепочка с известным числом шагов, обёрнутая двумя человеческими гейтами (EDIT_PENDING,APPROVAL_PENDING). Это НЕ агент в строгом смысле — это отлично спроектированный workflow, и в этом нет ничего плохого: Anthropic прямо пишет, что workflows предпочтительны, когда задача хорошо определена и повторяема, потому что дают предсказуемость и низкую стоимость ошибки. - Agent — LLM сама решает, сколько раз пройти цикл, какие инструменты вызвать и когда остановиться. Пример из его же экосистемы —
cracker(Щелкунчик): сервис реверс-инжинирит референс-видео с «трёхзначным QC-вердиктом, win-demotion, exploration 20%» — это уже ближе к настоящему агентному циклу с самокоррекцией, а не к линейному конвейеру.
Практический вывод для его цели №1 (строитель приложений: план→код→критика→тест→визуальная проверка→доработка ночью) — это по определению агент, а не workflow, потому что заранее неизвестно, сколько итераций критики потребуется до прохождения тестов. Именно здесь нужен настоящий agentic loop, а не жёсткая цепочка стадий как в photo/omni-генераторах.
3. Anatomy of the loop: из чего состоит один ход агента
ReAct-фреймворк (Reasoning + Acting), на который прямо или косвенно опирается большинство систем, формализует итерацию как Thought → Action → Observation → Thought → .... Лилиан Вэнг (Lilian Weng) в классическом посте про автономных агентов подчёркивает необходимость самокритики: «агент может заниматься самокритикой и самоанализом своих прошлых действий, учиться на ошибках и совершенствоваться». Один проход этого кольца называют turn (ход). На каждом ходу агент:
- анализирует текущее состояние (что уже сделано, что вернули инструменты);
- выбирает один или несколько инструментов;
- получает результат выполнения (observation);
- решает: закончена задача или нужен ещё ход.
Формально полный agent loop раскладывается на 6 этапов: инициализация → рассуждение и планирование → выбор инструментов → получение обратной связи из окружения → оценка прогресса → итерация/завершение.
Критически важная деталь, которую часто упускают: обратная связь должна приходить из окружения, а не быть самовнушением модели. Anthropic на вопрос «что дальше в ограничивающих факторах coding-агентов» отвечает прямо: «модель может конвергировать к правильному ответу, только если получает сигнал каждый раз, когда проходит цикл» (тесты проходят/не проходят); «без механизма обратной связи вы не добавляете сигнал — вы просто добавляете шум» (Eric, LP5OCa20Zpg.txt). Это прямо касается фабрики Лучиана: стадия ⑨ LEARNING сейчас холостая — метрики с YouTube не текут обратно в memory-bank автоматически, оркестратор выключен. Формально это значит, что даже там, где есть цикл (например, петля обучения thumbnail-studio R1/R2), система не замкнута до полноценного агентного самообучения — обратная связь из реального окружения (просмотры, retention) не долетает до следующего хода.
4. Tool use / function calling: как модель превращается в «работника»
Function calling (tool calling) — механизм, которым LLM запрашивает выполнение конкретной функции вместо генерации свободного текста. Именно это превращает LLM из генератора текста в «функционального цифрового работника». Стандартный 5-шаговый цикл:
- приложение отправляет запрос модели вместе с JSON-схемами доступных инструментов;
- модель анализирует задачу и генерирует вызов инструмента с параметрами;
- приложение выполняет функцию на своей стороне (не модель!);
- результат возвращается модели;
- модель либо даёт финальный ответ, либо вызывает следующий инструмент.
Anthropic формулирует пять принципов дизайна хороших инструментов (fundamentals-agents.md): стратегический выбор (не оборачивать каждый API-эндпоинт, консолидировать связанные операции), чёткие namespace-префиксы, «информация с высоким сигналом» вместо криптичных UUID, оптимизация по токенам (пагинация, фильтрация, обрезка по умолчанию), и подробные описания — «пишите так, будто объясняете новому члену команды». Один из инженеров Anthropic честно признаётся: «люди тратят кучу сил на красивые промпты, а инструменты, которые дают модели, — голые, без документации, с параметрами названными A и B... инженер бы не смог работать с такой функцией — как вы ждёте, что Клод сможет?» (LP5OCa20Zpg.txt). Это прямое замечание к архитектуре завода: если Лучиан хочет строить настоящих агентов поверх channel-hq/resource-governor, каждый внутренний API этих сервисов должен документироваться как публичный tool-контракт для модели, а не просто как REST-эндпоинт для людей.
Второй слой — «tool calling 2.0», о котором говорится в разборе новых возможностей Anthropic (3wglqgskzjQ.txt): классический tool calling требует, чтобы модель регенерировала все промежуточные параметры сама (например, чтобы прочитать 10 писем, она должна 10 раз вызвать read_email и каждый раз пропустить результат через себя) — это дорого по токенам и недетерминированно. Новый подход — позволить агенту писать код, который сам оркестрирует несколько вызовов инструментов (Anthropic Skills / «code execution as the universal interface»). Это прямо резонирует с болью Лучиана из его профиля: раздувание контекста до ~1M токенов на многошаговых задачах. Механический код (grep, скрипты, цикл for email in emails) не требует, чтобы LLM «видела» каждый промежуточный результат — LLM пишет программу один раз, программа выполняется детерминированно. Его собственное правило «скрипт вместо ИИ где можно» — это, по сути, независимо выведенная версия того же принципа, который Anthropic формализовала как架构ный сдвиг индустрии.
5. Skills vs Agents: важный поворот 2026 года
В докладе Anthropic «Don't Build Agents, Build Skills Instead» (CEvIs9y1uog.txt) звучит тезис, прямо применимый к практике Лучиана: «агенты сегодня во многом похожи на Махеша — блестящие, но без экспертизы» (в противопоставление Барри — опытному налоговому специалисту). Agent skills определяются как «организованные коллекции файлов, упаковывающие композируемое процедурное знание для агентов» — по сути, просто папки с инструкциями, которые можно версионировать в git. Ключевая мысль доклада: «код — это не просто один из юзкейсов, а универсальный интерфейс к цифровому миру»; core scaffolding агента может быть таким же тонким, как bash + файловая система, а вся специализация переносится в skills. Это буквально формализует правило Лучиана «повторил дважды → оформи скиллом» — Anthropic превратила именно эту эвристику в официальную архитектуру. Практический вывод: строитель приложений и контент-фабрика Лучиана не должны обрастать десятками узкоспециализированных «агентов» — один универсальный код-агент (в духе Claude Code) + библиотека скиллов (faceless-script-skill, capcut-marker-builder и т.п., которые уже частично существуют в его экосистеме навыков) масштабируется дешевле и предсказуемее, чем зоопарк агентов.
6. Агент vs. чат-бот — не про «умнее», а про архитектуру ответственности
Разница не в интеллекте модели, а в контракте с окружением:
| Критерий | Чат-бот | Агент |
|---|---|---|
| Режим | реактивный, ждёт ввода | проактивный, работает автономно |
| Решения | по сценарию/правилам | по цепочке рассуждений с учётом обратной связи |
| Действие | советует | выполняет (пишет файл, публикует видео, тратит бюджет) |
| Память | с нуля в каждом диалоге | персистентная история между сессиями |
| Resolution rate | 10-20% (чат-боты/чистый RAG) | 40-80%+ (истинные агенты) |
Фраза-формула из материалов: «Chatbots respond. AI agents resolve» — чат-бот отвечает, агент решает проблему. Applied к заводу: channel-forge, который превращает нишу в 5 углов и profile.json — это уже не чат-бот (он действует: пишет файлы, вызывает следующий сервис), но пока и не полный агент, потому что число шагов фиксировано кодом, а не решается моделью на лету.
7. Типичные ошибки — и где Лучиан от них уже защищён, а где нет
- «Bazooka на муху» — строить агента там, где хватило бы workflow. Anthropic прямо предупреждает: «люди пытаются притащить агентов к любой проблеме, даже когда гораздо более простая система сработала бы» (
LP5OCa20Zpg.txt). Его текущий выбор — workflow-конвейер для генерации видео с двумя гейтами — архитектурно правильный: задача повторяема, стоимость ошибки высокая (публичный аплоад), значит нужна предсказуемость, а не автономность модели на каждом шаге. - Consumer-агенты переоценены — пример из интервью: полностью автоматическое бронирование отпуска почти так же трудозатратно описать агенту (все предпочтения), как сделать самому, а цена ошибки высока и верифицировать сложно (
LP5OCa20Zpg.txt, Eric: «for a lot of consumer tasks it's almost as much work to fully specify preferences as to just do it yourself»). Урок для «разведчика возможностей» (opportunity scout) — не пытаться сразу дать ему право тратить деньги; сначала предложения с расчётом, человек решает. - Нет верифицируемого сигнала → нет сходимости. Coding-агенты работают лучше других именно потому, что тесты проходят/не проходят — детерминированный сигнал. У Лучиана этот принцип уже частично реализован (QC-гейты в стадии ④, деterministic + семантический QC для обложек), но стадия ⑨ (learning) без реальных метрик — это как раз пример «цикла без сигнала», который выглядит как обучение, но им не является.
- Голые инструменты без документации — если он хочет открыть внутренние API
channel-hq/memory-bank/resource-governorдля будущего оркестратора-агента, они должны получить нормальные tool-схемы (имя, описание, параметры со смыслом) — иначе агент будет галлюцинировать вызовы, как предсказывает материал про частые ошибки инструментов. - Игнорирование стоимости ошибки при выборе автономности. Sweet spot для агента: «задача ценная и сложная, но стоимость ошибки/мониторинга относительно низкая» (Eric). Публикация на YouTube — задача с высокой стоимостью ошибки (репутация канала, демонетизация), поэтому человеческий гейт
APPROVAL_PENDINGлогичен и должен остаться даже при переходе к «полной ночной автономии» — «красная линия» тратить деньги без подтверждения — частный случай этого общего принципа, его стоит явно распространить и на публичные необратимые действия.
8. Пять паттернов оркестрации Anthropic — применительно к заводу
Помимо чистого «агента», Anthropic описывает пять промежуточных паттернов, которые часто путают с полноценными агентами, но по факту являются структурированными workflow с элементами делегирования. Разбор каждого на живом материале завода Лучиана полезен именно потому, что показывает: в его инфраструктуре УЖЕ реализованы почти все эти паттерны, просто без общего названия — курс должен дать ему словарь для того, что он построил интуитивно.
- Prompt Chaining (цепочка подсказок). Последовательность LLM-вызовов, где вывод одного — вход другого, с программными «вратами» между ними. Ровно так устроен под-конвейер генератора:
stage_script → stage_script_qc → stage_voice → stage_visual_rules → stage_prompts → stage_images → stage_timeline → stage_render. Каждая стадия — отдельный узкий промпт,stage_script_qc— программные врата (детерминистическая проверка перед тем, как тратить деньги на голос и изображения). - Routing (маршрутизация). Классификация входа и направление в специализированный процесс. У Лучиана это, по сути, выбор между
photo-video-generator(стиллы+Ken Burns) иomni-video-generator(клипы) иremotion-video-generator(React-анимация) в зависимости от формата/канала — классическая маршрутизация, только решение сейчас принимает человек/конфиг канала, а не сам агент на основе анализа темы. - Parallelization (параллелизация). Разбиение работы на независимые параллельные LLM-вызовы. Его собственное правило «запусти N = все параллельно, не по очереди» (
POST /api/projects/batch) — это ручная реализация паттерна sectioning: N тем параллельно проходят одинаковый пайплайн, аresource-governorиграет роль честного брокера пулов (FastGen/render/brain/voice), не давая параллелизму захлебнуться — по сути, это уже элемент оркестрации ресурсов, который в классических агентных системах называют admission control. - Orchestrator-Workers (оркестратор-рабочие). Центральный LLM динамически разбивает задачу и раздаёт воркерам, синтезируя результат — именно так задуман (но выключен)
channel-hq/core/orchestrator.mjs: центральный узел должен вести проект черезQUEUED → GENERATING → HANDOFF → APPROVAL → UPLOADING, делегируя фактическую работу генераторам-«воркерам». Показательно, что этот паттерн у него уже спроектирован в коде, но не включён — это готовый плацдарм для превращения фабрики в настоящую агентную систему, а не повод строить всё с нуля. - Evaluator-Optimizer (оценивающий-оптимизирующий). Один LLM генерирует, второй — независимо критикует и даёт обратную связь, цикл повторяется до прохождения критерия. Это буквально петля
thumbnail-studio: StyleBank QC + Haiku vision QC для обложек, «эхо-камера обучения устранена, судья QC смягчён» (шов от 2026-07-07), и аналогичная петля раскадровки для канала «Молния» (Nano Banana + Haiku vision QC перед veo). Это — самый зрелый агентный примитив на заводе: реальный evaluator, отдельный от генератора, с независимым контекстом (принцип «verifier pattern» из материалов про autonomous coding — независимый агент получает только артефакт и требования, без контекста генератора, что предотвращает систематические ошибки, которые генератор и ревьюер повторяют одинаково при слитном контексте).
Вывод: у Лучиана уже есть работающие экземпляры четырёх из пяти паттернов Anthropic. Не хватает главного — настоящего Agent (шестой, самый сложный паттерн из их классификации): цикла, где число шагов и выбор инструментов решает сама модель, а не заранее зашитый в код маршрут. Это ровно то, что нужно для цели №1 (строитель приложений) и для будущего «мозгового» оркестратора, который должен САМ решать, сколько раз прогнать критику, а не идти по фиксированным восьми стадиям.
9. Анатомия одного агента — компонент за компонентом, на примере его завода
Раскладывая единичного агента на части (а не на весь конвейер), выделяются пять слоёв, которые стоит проектировать по отдельности, потому что у каждого свой набор ошибок:
- Восприятие (Perception). Что агент видит на входе хода: результат последнего инструмента, текущее состояние проекта, релевантные фрагменты памяти. Ошибка — присылать агенту «всё подряд» (весь лог завода) вместо отфильтрованного, релевантного среза; это прямой путь к раздуванию контекста, о котором Лучиан уже писал в своих требованиях к системе.
- Принятие решений (Decision-Making). Собственно LLM как «мозг» — здесь работает его лестница моделей (haiku на механику, sonnet на код, opus на архитектуру): не каждый ход агента должен идти через самую дорогую модель, большинство рутинных решений («вызвать инструмент X с параметром Y») — задача для дешёвой модели.
- Действие (Action). Вызов инструмента — реальное изменение состояния мира (записать файл, дёрнуть API
channel-hq, потратить GPU-слот черезresource-governor). Здесь принцип «read автоматически, write требует валидацию, delete требует одобрение человека» (из материалов о guardrails) — прямое обоснование того, почемуAPPROVAL_PENDINGпередUPLOADINGдолжен остаться даже в автономном режиме: аплоад на YouTube — необратимое публичное действие, а не «write» внутри своей БД. - Память. Короткая (контекст хода — то, что агент реально видит прямо сейчас) и долгая (персистентное хранилище между ходами и сессиями). У Лучиана долгая память — это буквально
memory-bankс тремя банками (global/per-channel/per-generator) плюсlog.jsonl. Важно понимать: LLM не «помнит» в буквальном смысле — каждый вызов ей заново пересказывают нужный кусок истории; поэтому качество долгой памяти определяется не объёмом файла, а тем, насколько точно система выбирает, что именно «пересказать» агенту на этом ходу (это и есть RAG-слой поверхmemory-bank, которого пока нет — банки читаются, но нет семантического retrieval). - Обратная связь (Feedback Loop). Замыкает цикл: агент должен получать сигнал из реального окружения (прошёл тест / не прошёл, набрал просмотры / нет), а не из собственной уверенности. Это самое слабое место текущего завода — стадия ⑨ LEARNING работает вхолостую именно потому, что этот слой физически отключён (оркестратор выключен, метрики с YouTube не долетают до
memory-bankавтоматически).
10. Function Tools vs Custom Tools — деталь, которая экономит деньги
В материалах проводится различие, которое на практике редко объясняют, а оно прямо влияет на надёжность и стоимость: Function Tools используют строгие JSON-схемы (чёткие типы параметров) — они надёжнее для модели, потому что пространство возможных вызовов ограничено и предсказуемо; Custom Tools принимают свободный текстовый ввод и полезны там, где заранее нельзя описать структуру (например, произвольный bash-скрипт или SQL-запрос). Для завода это означает конкретный архитектурный выбор: там, где действие детерминировано и повторяемо (создать проект, одобрить пакет, запросить слот у resource-governor) — обязательно Function Tool со строгой схемой, а не «опиши словами что сделать». Там же, где агенту нужно исследовать неизвестную территорию (ресёрч ниши, анализ конкурента, произвольный код для строителя приложений) — уместен Custom Tool в духе «выполнить код». Смешивать эти два режима в одном инструменте — типичная причина, по которой агент то работает надёжно, то начинает «фантазировать» параметры.
11. Пример одного полного хода на конкретной задаче — трассировка
Чтобы анатомия не осталась абстракцией, полезно проследить один ход гипотетического agentic-оркестратора поверх завода на конкретной задаче: «канал Х теряет просмотры на shorts, разберись и предложи фикс».
- Инициализация. Оркестратор получает задачу от Лучиана (или от cron-триггера мониторинга метрик). Это единственный человеческий ввод — дальше цикл автономен.
- Рассуждение. Модель (уровень sonnet, задача аналитическая, не архитектурная) решает: сначала нужно посмотреть свежие метрики канала, потом — сравнить с историческими нормами в
memory-bank. - Выбор инструмента №1. Вызов Function Tool
get_channel_metrics(channel_id, period)— строгая схема, детерминированный ответ. - Observation. Получены цифры: retention упал на 15% на первых 3 секундах.
- Рассуждение (ход 2). Модель формулирует гипотезу — проблема в хуке/первых кадрах, а не в теме. Решает свериться с
_STYLE_PLAYBOOK.mdи последними изменениямиstage_visual_rules. - Выбор инструмента №2. Custom Tool — чтение файлов через bash/grep (mechanical-first, без LLM-аудита, по правилу Лучиана).
- Оценка прогресса. Модель находит: неделю назад менялся
style_targetв профиле канала — вероятная причина. - Действие с последствиями. Здесь агент упирается в guardrail: изменение
style_target— этоwrite, требующее валидации, а не мгновенного отката. Агент готовит патч и уходит вEDIT_PENDING-эквивалент вместо того, чтобы применить его сам. - Завершение хода. Отчёт человеку с диагнозом, гипотезой, предлагаемым патчем и оценкой уверенности — а не молчаливое действие.
Этот пример показывает главное отличие настоящего агента от текущего workflow завода: число ходов (2 инструмента, 2 раунда рассуждения) заранее не было известно — оно определилось по ходу расследования. Если бы это был workflow, число шагов и их порядок были бы зашиты в коде заранее, и система не смогла бы адаптироваться, если бы, например, метрики оказались в порядке и проблема была бы не в хуке, а в тайминге публикации.
12. Дополнительные типичные ошибки (расширенный список)
Помимо описанных в разделе 7, материалы выделяют ещё несколько системных ловушек, актуальных именно на этапе перехода Лучиана от workflow-завода к агентной системе:
- Ограничения контекстного окна недооценивают, пока не становится поздно. Даже растущие окна (200K+ токенов) не решают проблему для длинных многодневных сессий — решение не «дать модели больше контекста», а спроектировать эффективное управление памятью (что уже заложено в его требовании к контекстной изоляции субагентов).
- Долгосрочное планирование — слабое место любого агента. Модели «теряются» в промежуточных целях на многошаговых задачах; противоядие — явное разбиение на подцели с промежуточной верификацией, а не один гигантский промпт «сделай всё».
- Ненадёжность естественного языка как интерфейса. Модель может ошибиться в форматировании вызова инструмента; решение — структурированные JSON-схемы вместо парсинга свободного текста везде, где действие детерминировано (см. раздел 11).
- Стоимость растёт нелинейно с числом ходов. Каждый ход агента — отдельный вызов LLM; на многошаговых задачах затраты быстро складываются. При точности 95% на шаг, 10-шаговая задача имеет только ~60% шанс полного успеха (0.95^10 ≈ 0.60) — это математическое, а не оптимистичное следствие, и оно означает, что чем длиннее агентная цепочка, тем важнее промежуточная верификация, а не «доверие модели до конца».
- Путаница уровня автономии с уровнем интеллекта модели. Более умная модель не отменяет необходимость гейтов — вопрос не «достаточно ли умён Claude», а «какова цена ошибки в этом конкретном действии». Именно поэтому даже в целевой системе с «полной ночной автономией» деньги и необратимые публичные действия остаются под гейтом — это архитектурное решение, а не временный костыль до появления более умной модели.
13. Практические выводы для системы Лучиана
- orchestrator.mjs стоит включать не как есть, а переосмыслить: текущий линейный
QUEUED → GENERATING → EDIT → HANDOFF → APPROVAL → READY → UPLOADING → DONE— это workflow, а не агент. Для строителя приложений (цель №1) нужен отдельный, настоящий agent loop поверх Claude Agent SDK/Claude Code: план → код → запуск тестов → критика (feedback из реального окружения, не из воображения модели) → фикс → повтор, с условием остановки «тесты зелёные» или «N попыток исчерпано». - Opportunity scout — классический agent, не workflow: заранее неизвестно, сколько источников проверить и какие инструменты понадобятся (X-research, NexLev/vidIQ, поиск ниш) — это открытая задача, где агент сам решает следующий шаг, что соответствует определению Anthropic.
- Токеномика и tool calling 2.0 — один и тот же принцип: его правило «скрипт вместо LLM» стоит распространить на дизайн будущих инструментов оркестратора — разрешить агенту писать код-скрипты для батч-операций (обход списков файлов/писем/видео) вместо пошагового tool-calling, это прямо снижает раздувание контекста, о котором он предупреждал.
- Skills как единица переиспользования — вместо роя специализированных агентов на каждый канал/нишу строить один универсальный код-агент + растущую библиотеку версионируемых skills (в git, как он уже делает интуитивно правилом «повторил дважды → скилл»).
- Гейты — это guardrails агента, а не костыль workflow: при переходе к ночной автономии сохранить принцип «действие с необратимыми последствиями/тратой денег требует подтверждения», распространив логику текущих
EDIT_PENDING/APPROVAL_PENDINGна новые зоны (публикация без пересмотра, любые платные API-вызовы сверх лимита). - Evaluator-Optimizer уже доказал себя на заводе (thumbnail-studio, cracker) — тиражировать паттерн, а не изобретать заново. Для строителя приложений «критика» из его целевого пайплайна (план→код→критика→тест→визуальная проверка→доработка) должна быть построена как отдельный агент-верификатор с independent context (получает только артефакт и требования, не видит рассуждений генератора) — ровно так, как устроен verifier pattern в успешных coding-агентах (Devin, OpenHands) и как уже работает StyleBank QC + Haiku vision QC для обложек. Смешивать роли «пишу код» и «проверяю код» в одном контексте одной модели — известная причина систематических слепых пятен.
- Лестница моделей = лестница уровней хода, а не только уровней задачи. Внутри одного agent loop разные ходы имеют разную цену ошибки: выбор инструмента и парсинг результата — механическая работа для haiku; финальное решение «одобрить патч / откатить style_target» — для sonnet или opus. Явное присвоение модели каждому ЭТАПУ хода (не только каждой задаче целиком) — способ снизить стоимость без потери надёжности на критичных развилках.
- Память нуждается в retrieval-слое, а не только в записи.
memory-bankсейчас хранит данные (profile.json, log.jsonl), но перед тем как строить настоящего агента-оркестратора поверх завода, стоит добавить семантический поиск по этим банкам (даже простой — по ключевым словам/тегам), иначе на каждом ходу агенту придётся либо читать всё целиком (раздувание контекста), либо действовать вслепую без релевантной истории. - Первый кандидат на «включить агентность» — не весь оркестратор сразу, а одна вертикаль. Правильный порядок внедрения по риску/ценности: сначала evaluator-optimizer уже работает → добавить orchestrator-workers (включить
orchestrator.mjsв режиме read-only рекомендаций, без автозаливки) → только потом дать ему право проходить полный цикл доAPPROVAL_PENDINGсамостоятельно. Прыгать сразу к «агент решает всё и публикует ночью» — классическая ошибка «bazooka на муху», о которой предупреждает Anthropic, применённая в обратную сторону (слишком быстрая эскалация автономии без промежуточных шагов проверки).
14. Резюме
Ключевая рамка для курса и для архитектурных решений Лучиана: агент — это не более умная модель и не больше инструментов, это система с замкнутым циклом (ход → инструмент → наблюдение → оценка → следующий ход), где число шагов заранее не известно и определяется самой моделью. Всё остальное — workflow, augmented LLM или чат-бот — вопрос не хуже, просто другой контракт с окружением, с другой ценой ошибки и другой предсказуемостью. Завод Лучиана уже реализует четыре из пяти промежуточных паттернов Anthropic (prompt chaining, routing, parallelization, evaluator-optimizer) на уровне отдельных сервисов; не хватает шестого — настоящего замкнутого агентного цикла с самостоятельным выбором числа шагов, работающего поверх уже готового orchestrator.mjs. Путь к целям года (строитель приложений, контент-фабрика на десятках каналов, консультант-фабрика MVP) лежит не через добавление ещё одного сервиса, а через включение недостающего слоя обратной связи (стадия ⑨ LEARNING) и превращение оркестратора из линейного workflow в настоящий agent loop — при сохранении гейтов там, где цена ошибки высока.
Источники (внутри mas-research)
web/fundamentals-agents.md— сводный конспект по Anthropic/Weng/OpenAI/DevRevtranscripts/LP5OCa20Zpg.txt— интервью с исследователями Anthropic, авторами «Building Effective Agents»transcripts/CEvIs9y1uog.txt— доклад Anthropic «Don't Build Agents, Build Skills Instead»transcripts/3wglqgskzjQ.txt— разбор изменений в tool calling / code executiontranscripts/uCKhOmth2ms.txt— интервью Sierra о простоте продакшн-агентов/home/claude/hermes-handoff/_HERMES_HANDOFF/02-factory-overview.md,lucian-profile.md— контекст завода Лучиана