Ранас Мукминов – Оркестрация ИИ-агентов. Claude Opus 4.7 (страница 43)
Есть и обратная сторона недетерминизма узлов, которую стоит зафиксировать честно: тот же агент, чья применимость нечётка, способен распознать на доске нетривиальную ситуацию, для которой формальный предикат написать трудно. Детерминированный источник знания активируется только по предикату, который инженер сумел формализовать заранее; агент-на-модели может уловить релевантность по смыслу содержимого доски, а не по жёсткой схеме. Это и есть та гибкость, ради которой ИИ-узлы вообще ставят в blackboard. Инженерный компромисс — не отказываться от неё полностью, а разделять: грубый формальный фильтр применимости отсекает заведомо нерелевантные источники дёшево, а окончательное содержательное решение о вкладе остаётся за моделью. Так контроль не платит вызовом модели за каждую проверку применимости и при этом сохраняет способность узла действовать по смыслу.
Практический вывод: blackboard для ИИ-агентов почти никогда не бывает чистым. Жизнеспособные конструкции — это blackboard с формализованным контролем, ограниченным числом писателей на участок, обязательной проверкой вкладов и явной политикой жизненного цикла записей. То есть значительная часть исходной гибкости паттерна на практике приносится в жертву надёжности, и это закономерный размен, а не недоработка реализации.
Чтобы поместить паттерн в общую карту (см. главу 15), полезно сопоставить его с топологиями соседних глав по осям связанности, детерминизма и того, где живёт координация.
Свойство | Оркестратор/воркеры (гл. 8) | Конвейер (гл. 10) | Blackboard (гл. 11)
Связанность исполнителей | через оркестратора | соседи по цепочке | только через схему доски
Кто задаёт порядок | оркестратор явно | позиция в конвейере | состояние доски через контроль
Где живёт координация | в оркестраторе | в топологии цепочки | в общем состоянии и контроле
Детерминизм порядка | высокий | высокий | низкий
Добавление исполнителя | правка оркестратора | вставка стадии | подключение источника без правок
Главный риск | оркестратор как SPOF | узкое место стадии | гонки и отравление общего состояния
Наблюдаемость пути | хорошая | отличная | трудная
Из сопоставления видно, что blackboard — не «лучше» и не «хуже» соседей, а другой размен. Он покупает развязку и эволюционируемость ценой переноса всей координации в общее изменяемое состояние и потери детерминизма порядка. Там, где порядок известен, этот размен невыгоден — конвейер строго лучше. Там, где порядок неизвестен и состав агентов изменчив, blackboard может оказаться единственной топологией, которая вообще решает задачу без переусложнённого оркестратора, пытающегося предусмотреть все ветвления заранее.
На практике чистый blackboard редок; чаще он входит в гибрид (см. главу 14) как локальная конструкция для подзадачи с неизвестным порядком, встроенная в более регулярную внешнюю топологию. Например, fan-out порождает несколько независимых рабочих областей, и внутри каждой команда источников знания сводит свою часть на локальной доске, а внешний fan-in собирает доски в общий результат. Такая композиция локализует риски доски в границах подзадачи и не распространяет общее изменяемое состояние на весь рой.
— Blackboard — паттерн косвенной координации: агенты не обмениваются адресными сообщениями, а читают и пишут общее структурированное пространство, хранящее постепенно дополняемое частичное решение. Его ценность — разрыв прямой связанности между исполнителями и способность решать задачи без заранее известного порядка шагов.
— Доска совмещает роль канала координации и хранилища состояния. Из-за этого совмещения вопросы согласованности, гонок за ресурсы и отравления общей памяти для blackboard не периферийны, а центральны: на общем изменяемом состоянии стоит вся топология.
— Контроль — это скрытый оркестратор доски. Тезис «у blackboard нет оркестратора» обманчив; качество контроля определяет, сойдётся ли система, а сериализация доступа к доске образует последовательную долю и узкое место по закону Амдала.
— Уместность узка: неизвестный заранее порядок шагов, разнородный оппортунистический вклад, инкрементальное решение, изменчивый состав агентов. При фиксированном порядке конвейер строго лучше; брать доску «ради архитектурности» — антипаттерн.
— Failure modes blackboard зарождаются в общем состоянии и потому глобальны: гонки записи и потеря вкладов, livelock взаимного переписывания, отравление доски с каскадом ошибок, неограниченный рост, скрытая связанность через схему, непрозрачность недетерминированного исполнения.
— Природа ИИ-узлов обостряет паттерн: чтение доски стоит токенов и ограничено контекстом, применимость источника нечёткая, а правдоподобный, но неверный вклад проходит проверку формальной корректности и отравляет общее основание. Жизнеспособный blackboard для агентов — это доска с формализованным контролем, единственным писателем на участок, обязательной верификацией вкладов и политикой жизненного цикла записей.
— В реальных системах чистый blackboard редок; чаще это локальная конструкция внутри гибридной топологии, где общее изменяемое состояние ограничено рамками одной подзадачи, а внешний контур остаётся регулярным и трассируемым.
Глава 12. Рыночные и аукционные модели
Предыдущие топологии распределяли работу директивно. В паттерне «оркестратор и воркеры» (см. главу 8) распределяет центральный узел: он знает воркеров, оценивает их пригодность и назначает подзадачу. В конвейере (см. главу 10) маршрут задан стадиями. В blackboard (см. главу 11) исполнители сами выбирают, за что взяться, но без явного механизма согласования цены и обязательства. Рыночная модель отвечает на другой вопрос: что делать, когда оркестратор не способен оценить, какой исполнитель справится с подзадачей лучше или дешевле, потому что эта оценка доступна только самим исполнителям.
В рыночной топологии задача не назначается, а выставляется. Узел-инициатор объявляет работу; потенциальные исполнители оценивают её относительно собственного состояния, контекста и возможностей и делают ставку; инициатор выбирает ставку и заключает контракт. Распределение работы становится результатом локальных решений многих узлов, а не одного централизованного расчёта. Это сдвигает знание о пригодности туда, где оно реально находится, — к исполнителю, — ценой нового протокольного слоя: объявления, ставки, присуждения, контракта и его исполнения.
Глава разбирает рыночные и аукционные модели как топологию: их архитектуру, канонический протокол contract-net, режимы отказа, условия применимости и границы. Центральный вывод формулируется заранее, потому что он определяет всё остальное: торги оправданы как механизм распределения только тогда, когда децентрализованное знание о стоимости исполнения превышает по ценности дополнительный координационный налог на проведение аукциона. В большинстве задач оркестрации это условие не выполняется, и директивное назначение проще и надёжнее.
Любое распределение работы требует ответа на вопрос: какой исполнитель должен взять эту подзадачу. Чтобы ответить, нужен критерий стоимости — сколько будет стоить исполнение для данного исполнителя, насколько он пригоден, какова вероятность успеха. В директивных топологиях этот критерий вычисляет оркестратор. Он держит модель воркеров: их роли, текущую загрузку, специализацию, и на её основе назначает.
Рыночная модель возникает там, где эта модель воркеров у оркестратора неполна или принципиально недоступна. Знание о стоимости исполнения распределено: только сам исполнитель знает, что уже лежит в его контексте, какие инструменты ему доступны прямо сейчас, насколько он близок к данным, насколько он перегружен. Оркестратор может это знание агрегировать, но в динамичной системе оно устаревает быстрее, чем собирается. Рынок переносит решение туда, где знание актуально: каждый исполнитель сам оценивает свою стоимость и заявляет её ставкой.
Это классическая мотивация рыночных механизмов из теории распределённых систем и экономики: цена как способ агрегировать рассеянное знание, которое невозможно собрать в один расчёт. В рое агентов это знание имеет конкретную природу — оно о контексте. Агент, в чьём окне уже находятся релевантные документы, исполнит подзадачу дешевле и точнее, чем агент, которому пришлось бы загружать их заново. Оркестратор может не знать содержимое окон всех воркеров; сам воркер — знает.
Сдвиг оценки к исполнителю не бесплатен. Он добавляет раунды коммуникации, требует, чтобы исполнители умели честно оценивать себя, и вводит новые режимы отказа. Поэтому он оправдан не всегда, а при сочетании условий.
Первое — гетерогенность исполнителей. Если все воркеры идентичны и взаимозаменяемы, торги бессмысленны: любая ставка равна любой другой, и аукцион вырождается в дорогой способ выбрать случайного. Рынок полезен, когда исполнители различаются специализацией, текущим контекстом или доступом к ресурсам настолько, что выбор реально влияет на исход.
Второе — приватность или дороговизна знания о пригодности. Если оркестратор может дёшево узнать всё необходимое о воркерах, ему незачем устраивать торги — проще назначить. Рынок оправдан, когда сбор этого знания в центр дороже, чем распределённая оценка на местах, либо когда воркеры — это автономные подсистемы, не раскрывающие своё состояние централизованному планировщику.