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

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

18

— Качество конвейера определяется качеством границ между стадиями, а не качеством агентов внутри них; проверяемая схема плюс детерминированный валидатор на границе — самая дешёвая защита от семантического дрейфа.

— Семантический дрейф — главный failure mode конвейера: каждая стадия интерпретирует и правдоподобно достраивает вход, искажения накапливаются мультипликативно, и финальный артефакт может отвечать на задачу, которую никто не ставил; защита — протаскивать исходную постановку через все стадии и сверять итог с ней.

— Ошибка ранней стадии не отфильтровывается, а наследуется всеми последующими и обрастает корректной с виду надстройкой; ранние стадии несут непропорциональный вес, поэтому проверки ставят ближе к источнику ошибки.

— Пропускная способность конвейера равна пропускной способности узкого места; у агентов узкое место предсказывается объёмом выхода стадии, а не её кажущейся сложностью, и часто лежит на разделяемом ресурсе, а не внутри стадии.

— Надёжность линейного конвейера — это произведение надёжностей стадий; защита — тайм-ауты, идемпотентные повторы и checkpoint на границах, последний напрямую экономит оплаченную токенами работу при сбое.

— Конвейер оправдан при потоке фазируемых задач с проверяемыми границами и вреден для единственной, сильносвязанной или требующей глобального взгляда задачи, где один агент или иная топология проще и точнее.

Глава 11. Blackboard и общая доска

Предыдущие три главы описывали топологии, в которых поток работы задан явно. Оркестратор и воркеры (см. главу 8) распределяют задачи сверху вниз и собирают результаты обратно. Иерархия (см. главу 9) делегирует вглубь по дереву. Конвейер (см. главу 10) передаёт артефакт от стадии к стадии в фиксированном порядке. Во всех трёх случаях агент знает, кому он отправляет результат и от кого получает вход: связи между исполнителями зашиты в топологию.

Blackboard устроен иначе. Это паттерн косвенной координации: агенты не обмениваются сообщениями напрямую и не знают друг о друге, а взаимодействуют через общее пространство — доску, — на которую каждый может писать и с которой каждый может читать. Доска хранит частичное, постепенно дополняемое решение задачи. Агент наблюдает за состоянием доски, и когда видит, что на ней появились данные, к которым применима его компетенция, он берёт их, обрабатывает и кладёт обратно свой вклад. Никто не вызывает агента поимённо; агент сам решает, что текущее состояние доски — повод для его работы.

Этот паттерн пришёл из систем искусственного интеллекта 1970-х годов, где разнородные источники знания совместно решали задачу, для которой не было заранее известного порядка шагов: распознавание речи, интерпретация сигналов, планирование. Метафора — группа специалистов у общей доски: каждый смотрит на то, что уже написано, и когда может добавить что-то по своей части, выходит и дописывает. Порядок выходов не задан заранее и определяется тем, что на доске уже есть.

Для оркестрации ИИ-агентов blackboard ценен ровно тем же свойством: он разрывает прямую связанность между исполнителями. Агенты не зависят от существования, адресов и контрактов друг друга — они зависят только от схемы доски. Это даёт гибкость: добавление нового агента не требует переписывания тех, кто уже есть. Но та же косвенность — источник всех рисков паттерна. Координация никуда не девается; она вся переезжает в общее изменяемое состояние, а общее изменяемое состояние — это, как показывает теория распределённых систем, самый трудный для надёжности класс конструкций. Эта глава разбирает архитектуру blackboard, условия его уместности и его failure modes, которые отличаются от отказов адресных топологий именно потому, что отказывает здесь общее состояние, а не канал между двумя узлами.

Канонический blackboard состоит из трёх частей, и разделение между ними — не формальность, а условие управляемости паттерна.

Доска (blackboard) — общее пространство, хранящее текущее состояние решения. Это не свалка произвольных данных, а структурированное хранилище с явной схемой: набор типов записей, их поля, допустимые состояния. Доска обычно организована по уровням абстракции — от сырого входа к промежуточным гипотезам и далее к фрагментам итогового решения. В терминах этой книги доска — один из носителей состояния мультиагентной системы (общую тему состояния разбирает часть VII; здесь рассматривается только конфигурация, в которой состояние и есть основной канал координации).

Источники знания (knowledge sources) — агенты-специалисты. Каждый умеет узнавать на доске ситуацию, к которой применим, и преобразовывать её: брать одни записи и порождать другие. Источник знания не знает о других источниках; он знает только схему доски и собственную компетенцию. Это и есть слабая связанность: контракт агента (см. главу 18) формулируется как «при таком состоянии доски произвожу такое изменение», а не «получаю от агента X, отдаю агенту Y».

Контроль (control) — механизм, решающий, какой источник знания и когда активируется. Это критический и часто недооценённый компонент. Без него blackboard вырождается либо в непрерывное холостое сканирование всеми агентами всей доски, либо в неуправляемые гонки за право записи. Контроль может быть простым (опрос по таймеру, очередь готовых к запуску источников) или сложным (приоритизация по тому, какой вклад вероятнее всего продвинет решение). Важно зафиксировать: контроль — это и есть оркестратор данной топологии, просто перенесённый с маршрутизации сообщений на управление доступом к общему состоянию. Иллюзия «у blackboard нет оркестратора» обманчива; оркестратор есть, он называется контролем, и от его качества зависит, сойдётся ли система.

Базовый цикл blackboard повторяется до достижения завершающего условия:

1. Контроль осматривает доску и определяет, какие источники знания

стали применимы (их предусловие выполнено текущим состоянием).

2. Контроль выбирает один или несколько источников для активации.

3. Выбранные источники читают релевантную часть доски.

4. Источники производят вклад: новые записи или обновление существующих.

5. Вклад фиксируется на доске.

6. Проверяется завершающее условие: решение готово, тупик, исчерпан бюджет.

Если нет — переход к шагу 1.

Принципиальное отличие от конвейера — в шагах 1 и 2. В конвейере следующий исполнитель предопределён позицией в цепочке. В blackboard следующий исполнитель выбирается динамически, исходя из того, что сейчас на доске. Поэтому blackboard способен решать задачи без заранее известного плана: порядок шагов выводится из данных, а не задаётся топологией. Это его главная архитектурная ценность и одновременно главный источник недетерминизма.

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

Иллюстративная схема доски для задачи интерпретации, где порядок шагов заранее неизвестен, могла бы выглядеть так (формат условный):

уровень РЕШЕНИЕ: {итог; собирается из подтверждённых фрагментов}

уровень ГИПОТЕЗЫ: {кандидат, оценка уверенности, опора на записи ниже}

уровень ФРАГМЕНТЫ: {частичные находки, помеченные источником-автором}

уровень ВХОД: {исходные данные, неизменяемые}

Источник-генератор читает уровень ВХОД и кладёт ФРАГМЕНТЫ. Источник-комбинатор читает ФРАГМЕНТЫ и поднимает их в ГИПОТЕЗЫ. Источник-критик оценивает ГИПОТЕЗЫ и либо повышает их до РЕШЕНИЯ, либо отклоняет. Никто из них не знает о существовании других; все они знают только, на каком уровне читать и на какой писать. Эта стратификация — не украшение, а инструмент управления связанностью: она задаёт, какой источник имеет право писать на какой уровень, и тем самым заранее разводит писателей, снижая риск гонок (к этому я вернусь в разделе об отказах).

Уровень ВХОД помечен как неизменяемый намеренно. Запись, которую никто не переписывает, не участвует в гонках и не отравляется задним числом; чем больше доски удаётся сделать «append-only» (только дополнение, без правки задним числом), тем меньше у неё классов отказов. Это общий приём: неизменяемость — самый дешёвый способ убрать целый набор проблем согласованности, и blackboard выигрывает каждый раз, когда часть доски удаётся объявить неизменяемой.

Тонкость, определяющая всё дальнейшее: в адресных топологиях канал коммуникации и хранилище состояния — разные сущности. Сообщение между агентами эфемерно, оно доставлено и забыто; состояние, если нужно, хранится отдельно. В blackboard эти две роли слиты: доска одновременно и канал координации, и хранилище состояния. Агент координируется с другими не тем, что шлёт им сообщение, а тем, что меняет общее состояние, которое они потом прочитают.

Это слияние и порождает специфику паттерна. Все вопросы согласованности общего состояния (см. главу 49), гонок за ресурсы (см. главу 41) и отравления общей памяти (см. главу 53) для blackboard не периферийны, а центральны, потому что без доски здесь нет вообще никакой координации. Где конвейер можно построить на надёжной очереди сообщений и не иметь общего изменяемого состояния вовсе, blackboard на общем изменяемом состоянии стоит весь.