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

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

18

Подмена возможностей и враждебное объявление. Обнаружение возможностей доверяет тому, что объявляет собеседник. Враждебный или скомпрометированный участник объявляет ложные возможности: инструмент, который на деле делает не то, что описано, или агент, объявляющий компетенцию, которой не обладает, чтобы перехватить делегирование. Это смыкается с распространением компрометации (см. главу 84) и prompt injection (см. главу 86): объявление возможностей — ещё один канал, по которому в систему попадает недоверенный вход. Защита — проверять объявленные возможности, а не принимать их на веру, и применять недоверие по умолчанию к участникам из недоверенных источников.

Концентрация риска в стандарте. Стандартизация переносит риск с краёв в центр. Пока каждая пара стыковалась индивидуально, дефект в одной интеграции был локален. Когда все стыки идут через один протокол и его эталонную реализацию, дефект в протоколе или в широко используемой библиотеке его реализации распространяется на всю систему сразу. Это оборотная сторона выгоды $N \times M \to N + M$: единая точка интеграции — это и единая точка отказа, и единая поверхность атаки. Защита — относиться к реализации протокола как к критическому компоненту (с соответствующими аудитом, тестированием и наблюдаемостью), а не как к безобидному клею.

Привязка через стандарт (lock-in). Стандарт, контролируемый одним поставщиком или жёстко завязанный на одну экосистему, превращает интероперабельность в привязку: подключиться легко, отвязаться дорого. Система, построенная вокруг такого протокола, наследует судьбу его владельца — его решения о версиях, его темп изменений, его коммерческие интересы. Это не технический, а стратегический режим отказа, но он реален. Защита — предпочитать открытые, многосторонне управляемые стандарты там, где это возможно, и проектировать стык к протоколу так, чтобы его можно было заменить (адаптерный слой, см. главу 18), а не вплавлять протокол в логику агентов.

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

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

С коммуникацией (часть IV): протокол стоит выше формата сообщений (см. главу 25) и транспорта (см. главу 24) и задаёт правила их использования в связном обмене. Маршрутизация и адресация (см. главу 27) определяют, до кого протокол доставляет сообщения; семантика доставки (см. главу 29) определяет, при каких гарантиях доставки диалоговая машина протокола остаётся корректной (потеря или дублирование сообщения нарушают переход машины состояний, даже если каждое сообщение корректно). Failure modes коммуникации (см. главу 30) — это слой ниже протокольных failure modes этой главы: там ломается доставка, здесь — согласование.

С ролями (часть III): протокол — это то, через что предъявляются и стыкуются контракты агентов (см. главу 18). Обнаружение возможностей в A2A-протоколе — это механизм, через который роль (см. главу 16) объявляет себя остальной системе. Согласование версий протокола — частный случай версионирования и совместимости (см. главу 22), поднятый с роли на стык.

С координацией (часть VI): протокол задаёт правила обмена, но не разрешает конфликты содержания — это уровень координации. Делегирование задачи по A2A-протоколу опирается на идемпотентность (см. главу 43), чтобы повтор делегирования при сбое не порождал дублирующую работу; диалоговая машина с отменой задачи — это протокольное выражение восстановления и переподхвата (см. главу 72).

С надёжностью (часть X): богатая диалоговая машина с явным состоянием «частично выполнено» и правом отказа — это протокольная основа graceful degradation (см. главу 73) и частичных результатов. Концентрация риска в реализации протокола (раздел выше) делает его кандидатом в SPOF (см. главу 75), требующим соответствующей защиты.

С безопасностью (часть XII): слой идентичности и доверия в протоколе — это точка, где недоверие по умолчанию (см. главу 85) становится исполнимым на стыке; обнаружение возможностей — канал, который надо защищать от враждебного объявления и распространения компрометации (см. главы 84, 86). Стандартизация, расширяя поверхность интеграции, расширяет и поверхность атаки, и это надо учитывать в модели угроз (см. главу 83).

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

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

— Стандартизация протокола сводит комбинаторную стоимость интеграции с $N \times M$ к $N + M$ — в этом её главная выгода. Но интероперабельность многоуровнева (транспортная, синтаксическая, семантическая, поведенческая, организационная), и стандарт обычно гарантирует её лишь до синтаксического-семантического уровня; «оба поддерживают стандарт X» не означает «они будут работать вместе».

— Существуют два разных семейства протоколов. MCP-подобные стандартизируют асимметричный стык агент-ресурс (доступ к инструментам и контексту, клиент-сервер, вызов с аргументами). A2A-подобные стандартизируют симметричный стык агент-агент (делегирование задачи автономному исполнителю, долгая работа с состоянием, право отказа). Они не конкурируют, а образуют разные уровни системы и сосуществуют.

— Класс протокола следует природе другого конца. Использование протокола доступа к инструментам для межагентного делегирования маскирует недетерминированного исполнителя под детерминированную функцию и вынуждает воссоздавать A2A-логику без её гарантий; использование тяжёлого A2A-протокола для простого инструмента — это координационный налог без отдачи.

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

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

— Стандартизация переносит риск с краёв в центр: единая точка интеграции — это и единая точка отказа, и единая поверхность атаки. Реализацию протокола следует трактовать как критический компонент. Стандартизировать стоит стыки, которые перестали меняться, а не те, что меняются активнее всего; на незрелых стыках предпочтительны тонкие, легко заменяемые договорённости.

Глава 27. Маршрутизация и адресация сообщений

Предыдущие главы части IV рассматривали коммуникацию изнутри сообщения: какие есть каналы (см. главу 23), синхронные они или асинхронные (см. главу 24), какова структура и схема сообщения (см. главу 25), какими протоколами агенты договариваются о совместимости (см. главу 26). Все они молчаливо предполагали, что отправитель знает адресата. Эта глава снимает предположение. Между «агент A произвёл сообщение» и «агент B его получил» лежит решение, которое в одиночном агенте отсутствует вовсе, а в рое становится самостоятельной подсистемой: решение о том, кому это сообщение предназначено и как оно туда попадёт.

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