18+
реклама
18+
Бургер менюБургер меню

Ранас Мукминов – Оркестрация ИИ-агентов. Claude Opus 4.7 (страница 24)

18

3. Коммуникация | Как агенты передают информацию | Молчаливая потеря и искажение в канале естественного языка | IV

4. Декомпозиция | Как разбить и распределить работу | Ложный параллелизм; взрыв динамической работы | V

5. Координация | Как согласовать параллельные действия | Гонки, тупики, livelock | VI

6. Состояние | Где живёт информация, как согласована | Отравление общего состояния; потери при handoff | VII

7. Надёжность | Что при отказе части, как ограничить | Каскад отказов; оркестратор как SPOF | X

8. Наблюдаемость | Видно ли, что и почему делает система | Слепые зоны на стыках агентов | XI

9. Безопасность | Как защититься от компрометации части | Латеральное распространение; транзитивность доверия | XII

10. Человек | Где человек, что нельзя делегировать | Иллюзия контроля при усталости оператора | XIII

Отдельно стоят части, которые не привязаны к одному уровню, а проходят сквозь несколько. Часть VIII (параллелизм и масштабирование) — это пересечение декомпозиции, координации и состояния под углом масштаба: что ломается, когда воркеров становится много. Часть IX (эмерджентность и качество роя) — пересечение ролей, координации и надёжности под углом коллективного результата: лучше ли рой одного агента и когда. Часть XIV (эксплуатация, экономика, будущее) — взгляд на всю систему целиком из production: деплой, unit-экономика, SLO, организация. Эти части не вводят новых уровней, а смотрят на уже введённые с практических ракурсов.

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

Режим проектирования — сверху вниз по уровням. Начиная новый рой, инженер проходит уровни в порядке зависимостей: сначала топология (какая форма системы отвечает структуре задачи), затем роли (какие специализации нужны и где границы), затем коммуникация (какие каналы и гарантии), и так до низа. На каждом уровне принимается явное решение, и принятое решение фиксирует контекст для нижних. Сквозные уровни — наблюдаемость, безопасность, человек — держатся в уме на всём проходе: при каждом решении задаётся вопрос «как это наблюдать, как это защитить, где здесь человек». Части II–XIII служат справочником для каждого шага.

Режим диагностики — снизу вверх от симптома к уровню. Когда рой ведёт себя неправильно, симптом сначала локализуется по уровню. Потеря данных между агентами — коммуникация или состояние. Два противоречивых изменения — координация. Бесконечный цикл без прогресса — координация (livelock) или надёжность. Каскадное падение — надёжность плюс топология. Невозможность понять причину — наблюдаемость. Утечка или неожиданное действие — безопасность. Назвав уровень, инженер открывает соответствующую часть и работает с конкретным классом отказов, а не с аморфным «рой сломался». Главы про failure modes в каждой части (например, главы 30, 45, 53, 67, 74, 80) — это каталоги симптомов по уровням.

Режим ревью — проверка полноты по уровням. Готовый или унаследованный рой проверяется прохождением по всем десяти уровням с вопросом «принято ли здесь осознанное решение или оно сложилось по умолчанию». Уровень, на котором решение неявное, — кандидат на проблему. Чаще всего такими оказываются состояние (никто не думал, где оно живёт), безопасность (границы доверия не проведены) и человек (точки вмешательства не предусмотрены). Приложение B даёт чек-листы для такого ревью по уровням.

Наконец, модель уровней — это терминологическая дисциплина книги. Каждый последующий приём, паттерн или failure mode будет привязан к одному из десяти уровней явно, фразой «это вопрос уровня X». Если по ходу чтения какой-то приём кажется изолированным трюком, почти всегда он сводится к одному из уровней — и тогда становятся понятны его место, его цена и его отказы. Именно для этого вводится модель: чтобы за россыпью частных техник читатель видел десять устойчивых предметов инженерии, а не сто разрозненных рецептов.

— Мультиагентная система раскладывается на десять уровней — топология, роли, коммуникация, декомпозиция, координация, состояние, надёжность, наблюдаемость, безопасность, человек, — каждый из которых отвечает на свой вопрос и имеет собственный набор failure modes. Это карта, по которой организована вся книга.

— Уровни — не стек реализации и не фазы проекта, а ортогональные срезы одной системы. Один артефакт участвует в нескольких уровнях сразу; правильная метафора — проекции объёмного тела, а не слоёный пирог.

— Перечень уровней даёт три вещи, которых не даёт плоский список тем: полноту (что нельзя пропустить), порядок (нисходящие зависимости проектирования) и локализацию (на каком уровне зародился сбой).

— Три верхних уровня (топология, роли, коммуникация) задают статическую структуру и труднее всего меняются. Два средних (декомпозиция, координация) — динамику работы и несут основную тяжесть оркестрации. Уровень состояния — фундамент, определяющий цену координации и достижимость надёжности.

— Три нижних уровня (надёжность, наблюдаемость, безопасность) и десятый (человек) — сквозные: их нельзя прикрутить в конце, они должны быть заложены в решения верхних уровней. Безопасность сцеплена со всеми; человек масштабируется хуже всех и часто становится узким местом.

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

Глава 7. Антипаттерны оркестрации

Предыдущие главы части I вводили понятие оркестрации, критерий её оправданности и природу

координационного налога. Эта глава замыкает часть с противоположной стороны: она каталогизирует

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

Антипаттерн здесь — не «плохой код» и не неудачный промпт отдельного агента. Это решение об

архитектуре системы, которое выглядит разумным на старте, проходит демонстрацию и систематически

отказывает при первом нетипичном входе, при росте числа агентов или под нагрузкой.

Антипаттерны рассматриваются как класс, потому что они воспроизводятся. Команда, впервые строящая

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

неквалифицированности, а потому что одиночный агент прощает то, что рой не прощает. Привычки,

выработанные на одном агенте, перенесённые в многоагентную систему без поправки, и есть основной

источник этих ошибок. Поэтому глава организована не «по тяжести», а по уровням сквозной модели

книги — топология, роли, коммуникация, декомпозиция, координация, состояние, надёжность,

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

главам, где соответствующий уровень разбирается строго.

Для каждого антипаттерна указываются три вещи: механизм (почему так делают и почему это

кажется правильным), failure mode (как именно и при каких условиях это отказывает) и

противоядие (минимальное изменение архитектуры, снимающее проблему, а не маскирующее её). Это

не призыв избегать оркестрации. Это перечень мест, где стоимость оркестрации внезапно

обнуляет её выгоду.

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

антипаттерн этой главы — это перенос интуиции из одного из трёх ложных представлений.

Первое ложное представление: рой — это агент, умноженный на N. Из него растут антипаттерны

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

и не закладывает координацию как отдельную статью расходов. Второе: агенты надёжны, как функции.

Из него растут антипаттерны коммуникации и координации: команда соединяет агентов так, будто каждый

вернёт корректный, детерминированный, своевременный результат, и не строит защиту от потерянного,

искажённого или правдоподобно-ложного ответа. Третье: состояние — это удобство, а не риск. Из

него растут антипаттерны состояния и памяти: общее изменяемое пространство добавляют, потому что

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

Все три представления верны для одного агента и ложны для системы агентов. Это и есть причина, по

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

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

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

Стоит также отделить антипаттерн от обоснованного компромисса. Многое из перечисленного ниже

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

начинается там, где решение принято по умолчанию, без оценки его стоимости, и переносится в режим,

для которого оно не предназначалось. Граница между «упрощением» и «антипаттерном» — это наличие

явного решения с понятным failure mode.

Топология — это форма связей между агентами (см. часть II). Ошибки этого уровня самые дорогие,

потому что меняют форму системы позже всего труднее всего.

Механизм. Задача, которую один агент решает последовательно и корректно, разбивается на