Ранас Мукминов – Оркестрация ИИ-агентов. Claude Opus 4.7 (страница 47)
— Contract-net — канонический протокол: объявление с критерием пригодности, добровольные информативные ставки, присуждение через контракт, рекурсивность. Он хорошо ложится на агентов, потому что eligibility и ставка естественно текстовы, а рекурсия совпадает с делегированием субагентам.
— Цена в рое агентов — прокси (токены, релевантность контекста, загрузка, уверенность), а не деньги. Опора на заявленную уверенность без верификации ведёт к проклятию победителя: рой систематически выбирает самого самоуверенного, а не самого пригодного.
— Специфические режимы отказа рынка — неоткалиброванные ставки, вырождение конкуренции у однородных исполнителей, монополизация и голодание, несостоявшийся аукцион, неисполненный контракт и превышение накладными расходами выгоды от торгов. Каждый требует явной защиты, а не считается крайним случаем.
— Однораундовые закрытые аукционы предпочтительнее итеративных и комбинаторных: каждый раунд для агента — инференс, и изощрённость механизма редко окупается. Репутация лечит проклятие победителя, но добавляет долгоживущее состояние и оправдана лишь в долгоживущих роях с повторяющимися задачами.
— Рынок уместен при гетерогенных, дорогих, крупнозернистых задачах с децентрализованным знанием о пригодности и при наличии верификации или калибровки. При однородных воркерах, мелких задачах или доступной центральной оценке он проигрывает директивному назначению и чаще встречается как компонент гибрида, чем как самостоятельная топология.
Глава 13. Сети равноправных агентов (peer-to-peer)
Предыдущие топологии этой части так или иначе опирались на привилегированный узел. Оркестратор с воркерами (см. главу 8) держит центр, который раздаёт работу и сводит результаты. Иерархия (см. главу 9) — это дерево привилегий, где каждый родитель управляет детьми. Конвейер (см. главу 10) задаёт фиксированный порядок стадий. Даже blackboard (см. главу 11) и рынок (см. главу 12), при всей их децентрализованности в части принятия решений, обычно опираются на общий ресурс — доску или брокера, — который остаётся единой точкой. Сеть равноправных агентов отказывается и от этого. В ней нет узла, чья роль отличалась бы от роли остальных: каждый агент одновременно и инициатор, и исполнитель, и маршрутизатор чужих сообщений, и хранитель части общего состояния.
Этот отказ от центра — не стилистический выбор, а ответ на одно конкретное требование: в системе не должно быть узла, потеря которого фатальна. Там, где это требование реально, peer-to-peer оправдан. Но он не бесплатен, и цена его специфична. Централизованная топология решает три задачи неявно, самим фактом наличия центра. Первая — обнаружение: воркер знает, к кому обращаться, потому что у него есть адрес оркестратора. Вторая — маршрутизация: сообщение идёт через центр, и центр знает, кому его переадресовать. Третья — доверие: воркер доверяет оркестратору, потому что оркестратор — корень авторитета, и проверять его не нужно. Убрав центр, мы убираем и эти три бесплатных решения. Каждое из них приходится восстанавливать как отдельный распределённый протокол, работающий без привилегированного узла.
Глава разбирает peer-to-peer как топологию: её архитектуру, три восстанавливаемых протокола (обнаружение, маршрутизацию, доверие), фундаментальную трудность согласования без центра и режимы отказа. Центральный вывод, как и в соседних главах, формулируется заранее: полностью децентрализованная топология оправдана редко — только когда требование «нет допустимой единой точки отказа» реально и подтверждено, а команда владеет распределённым консенсусом и наблюдаемостью настолько, чтобы платить квадратичный налог согласования и принять принципиально худшую отлаживаемость. В большинстве задач оркестрации это требование не выполняется, и централизованная или гибридная топология проще, дешевле и надёжнее.
Сеть равноправных агентов — это топология, в которой все узлы имеют одинаковую роль относительно протокола координации. «Одинаковая роль» не означает «одинаковые возможности»: агенты могут различаться специализацией, инструментами и правами (см. главу 16). Равноправие здесь — структурное свойство: ни один узел не является обязательным посредником, корнем авторитета или единственным держателем истины. Любой узел можно убрать, и оставшиеся продолжат координироваться — возможно, хуже, но не остановившись из-за потери именно этого узла.
Отсюда два следствия, которые отличают peer-to-peer от всех предыдущих топологий. Первое: связи горизонтальны. Агенты обращаются друг к другу напрямую, а не через хаб (см. главу 8 о звездообразной топологии). Граф взаимодействия — это граф «многие-ко-многим», а не дерево и не звезда. Второе: согласование происходит между равными. Когда двум агентам нужно прийти к общему решению — кто возьмёт задачу, чьё значение состояния истинно, — нет арбитра, к которому можно апеллировать. Решение должно возникнуть из переговоров или консенсуса самих участников (см. главу 39 о консенсусе и голосовании).
Термин «децентрализация» размыт, и его легко применить к системам, которые на деле централизованы по существенной оси. Полезно явно отделить peer-to-peer от похожих, но иных конфигураций.
Это не blackboard. Доска (см. главу 11) децентрализует принятие решений — агенты сами выбирают, за что взяться, — но централизует состояние: есть одно общее пространство, через которое всё проходит. Это пространство и есть единая точка: его отказ останавливает систему, его компрометация отравляет всех (см. главу 53). Peer-to-peer не имеет такого общего пространства; состояние распределено по узлам.
Это не рынок с брокером. Брокерская рыночная модель (см. главу 12) тоже опирается на общий узел — маркетплейс, ведущий реестр и маршрутизирующий объявления. Брокер — единая точка отказа со всеми вытекающими (см. главу 75). Peer-to-peer-вариант рынка возможен, но в нём объявления распространяются без брокера, что и делает его peer-to-peer; присутствие брокера переводит систему в иную топологию.
Это не «оркестратор, которого мы не нарисовали». Частый самообман — объявить систему децентрализованной, тогда как все агенты на деле зависят от одного общего ресурса: одной базы, одной очереди, одного сервиса имён. Этот ресурс — необъявленный центр и необъявленный SPOF (см. главу 3 о скрытой централизации). Система, в которой есть такой ресурс, не является peer-to-peer, как бы она ни называлась; она централизована по той оси, на которой лежит общий ресурс, и защиту этой оси нужно проектировать, а не отрицать.
Важно, что децентрализация — не бинарный признак, а степень, и она применяется по нескольким независимым осям (см. главу 3). Можно децентрализовать принятие решений, оставив централизованным состояние; можно децентрализовать состояние, оставив централизованной координацию. Чистый peer-to-peer — это децентрализация по всем существенным осям сразу: нет ни центра решений, ни центра состояния, ни центра коммуникации.
На практике полная децентрализация по всем осям встречается редко, потому что она максимизирует цену и минимизирует управляемость. Гораздо чаще системы децентрализованы частично: например, исполнение распределено между равноправными узлами, но поверх лежит централизованное наблюдение, дающее человеку единую точку обзора и вмешательства (см. главу 94). Такая частичная децентрализация — это уже гибрид (см. главу 14), и большинство «peer-to-peer-систем» в продакшене на деле гибридны. Чистый peer-to-peer стоит изучать как предельный случай: он обнажает трудности, которые в гибридах смягчены, но не исчезают.
Централизованная топология даёт обнаружение, маршрутизацию и доверие как побочный продукт наличия центра. Peer-to-peer обязан восстановить каждую функцию явным протоколом. Эти три протокола — несущая конструкция любой равноправной сети, и проектирование peer-to-peer сводится в первую очередь к их проектированию.
В централизованной системе обнаружение тривиально: всем известен адрес центра, и через него виден остальной состав. В peer-to-peer такого адреса нет. Агент, входящий в сеть, должен как-то узнать, кто ещё в ней есть и кто на что способен, не обращаясь к привилегированному узлу.
Полностью бессерверного обнаружения «с нуля» не бывает — новый узел должен с чего-то начать. Это проблема начальной точки (bootstrap): входящему агенту дают список из нескольких уже известных участников, через которых он входит в сеть. Этот список — минимальная неустранимая зависимость; важно, что это не единая точка, а несколько взаимозаменяемых точек входа, и отказ любой из них не фатален, пока жива хотя бы одна.
Дальнейшее обнаружение строится одним из двух способов. Первый — реестр, распределённый по узлам: каждый узел хранит часть карты сети, и запрос «кто умеет X» маршрутизируется по этой распределённой структуре (см. ниже о распределённых хеш-таблицах). Второй — эпидемическое распространение (gossip): узел периодически обменивается с несколькими случайными соседями сведениями о том, кого он знает, и со временем знание о составе сети расходится по всем участникам, как слух. Gossip не даёт мгновенной и полной картины — узел знает о составе сети с задержкой и неполно, — но он устойчив: нет узла, чей отказ остановил бы распространение, и сеть автоматически узнаёт о появлении и исчезновении участников.