Ранас Мукминов – Оркестрация ИИ-агентов. Claude Opus 4.7 (страница 62)
Права обычно стабильнее — инфраструктурные ограничения реже меняются в пределах одной сессии, — но и они бывают временными: токен с истекающим сроком, лимит частоты, восстанавливающийся со временем, право, выдаваемое на время удержания распределённой блокировки (см. главу 41). Временные права — самый надёжный способ сузить эффект роли: право, существующее ровно столько, сколько идёт конкретная операция, не может быть использовано вне её. Но временные права требуют механизма выдачи и отзыва, который сам становится частью системы и сам может отказать, оставив право выданным дольше нужного.
Практический вывод: тройка — это не три постоянных параметра роли, а три процесса, разворачивающихся в течение сессии. Согласованность нужно поддерживать не только в момент проектирования, но и в каждый момент исполнения — и слабым звеном может оказаться не сам слой, а механизм его изменения во времени.
В одиночном агенте границы роли — это вопрос корректности и безопасности одного процесса. В мультиагентной системе граница роли становится ещё и границей доверия между узлами. Когда агент A передаёт результат агенту B (см. главу 47 о handoff), B принимает этот результат в рамках доверия, заданного ролью A. Если роль A имела узкие, жёстко принуждённые границы, B может доверять её выводу сильнее; если границы A были мягкими, вывод A — это в лучшем случае правдоподобная гипотеза, которую B обязан проверять заново.
Отсюда важное системное следствие: жёсткость границ роли определяет, где в системе можно не перепроверять. Рой, где все границы мягкие, вынужден перепроверять всё на каждом стыке, иначе ошибка или компрометация одного узла распространяется свободно (см. главу 84 о латеральном движении). Жёсткие границы создают точки, в которых распространение остановлено механизмом, а не доверием. Проектирование ролей — это в том числе проектирование карты доверия роя: какие выводы каких ролей принимаются без перепроверки, а какие нет, и почему.
Оркестратор (см. главу 8) — тоже роль, и к нему применима та же тройка, но с поправкой на его положение. Промпт оркестратора задаёт логику декомпозиции и сборки; его инструменты — это, как правило, право порождать и адресовать других агентов; его права — самые широкие в системе, потому что он управляет остальными. Именно поэтому оркестратор — главная цель компрометации (см. главу 87) и главный SPOF (см. главу 75): его границы по необходимости шире всех, а значит, слабое звено в его тройке обходится дороже всего. К роли оркестратора принцип согласованности применяется строже, чем к любой другой: его широкие права обязаны быть скомпенсированы узким, выверенным промптом и минимальным, не универсальным набором инструментов, иначе вся карта доверия роя держится на одной мягкой границе.
Тройка «промпт — инструменты — права» описывает роль изнутри: чем агент является и что он может. Контракт роли (см. главу 18) описывает её снаружи: что она принимает на вход, что обязана отдать на выход, какие инварианты сохраняет. Эти два взгляда дополнительны и должны быть согласованы между собой. Контракт задаёт, что роль должна делать; тройка задаёт, чем она это делает и какими границами ограничена. Права, не выводимые из контракта, — лишние (спящий риск). Обязанности контракта, не обеспеченные инструментами, — невыполнимы (имитация выполнения). Глава 18 разворачивает контрактную сторону; здесь достаточно зафиксировать, что тройка без контракта — это механизм без спецификации, а контракт без тройки — спецификация без механизма принуждения.
Соберём отказы, специфичные для роли как тройки, в явный список — в духе сквозного принципа книги.
— Мягкая граница на инварианте. Критическое ограничение возложено на промпт. Держится до первого отклонения — ошибки рассуждения, неоднозначности, инъекции. Лечится переносом инварианта на жёсткий механизм или прокси-границу.
— Слабое звено. Усилен один слой при оставшемся проницаемым другом. Тщательный промпт при широких правах не добавляет безопасности. Лечится поиском и подъёмом слабого звена, а не улучшением сильного.
— Лишние права (спящий отказ). Права шире контракта. Молчат на штатном входе, срабатывают на нештатном, не ловятся обычными тестами. Лечатся сведением прав к минимуму контракта и проверкой на нештатных входах.
— Универсальный инструмент. Инструмент с широким репертуаром (выполнение команд, произвольный сетевой запрос), выданный «для удобства», молча расширяет роль до почти неограниченной. Лечится заменой на узкоспециализированные инструменты с предсказуемым репертуаром.
— Имитация выполнения. Промпт поручает то, для чего нет инструмента; агент генерирует правдоподобный отчёт о несовершённом действии. Опасно в конвейере, где выдуманный результат принимается за настоящий. Лечится согласованием промпта с инструментами и проверкой результата на стыке (см. главу 18).
— Композиционный репертуар. Безобидные по отдельности инструменты в комбинации дают опасное действие (чтение плюс эгресс — эксфильтрация). Список инструментов недооценивает фактический репертуар. Лечится анализом замыкания комбинаций, а не отдельных инструментов, и жёсткими границами на эффект (эгресс-политики).
— Дрейф согласованности. Промпт, инструменты и права меняются независимо разными людьми и принадлежат разным жизненным циклам; со временем расходятся. Лечится единым описанием роли из трёх слоёв и обязательной сверкой при изменении любого слоя (см. главу 22).
— Слишком узкие права. Права уже контракта; агент спотыкается об отказы, причину которых не понимает, зацикливается или отдаёт неполный результат. Лечится подгонкой прав под фактический контракт, а не под перестраховку.
— Размывание границы контекстом. Мягкая граница из системного промпта теряет вес по мере роста контекста и вытеснения старого содержимого новым; протекает к концу длинной сессии без всякой атаки. Лечится переносом инварианта на жёсткий механизм, не зависящий от состояния контекста.
— Недоучёт динамического репертуара. Анализ роли опирается на текущий набор инструментов, тогда как оркестратор выдаёт и отзывает их по ходу сессии. Фактический репертуар — объединение всех наборов за сессию. Лечится анализом по объединению и аккуратным механизмом выдачи/отзыва временных инструментов и прав.
— Роль агента — не название, а тройка независимых рычагов: промпт (намерение), инструменты (репертуар действий), права (эффект). Они действуют на разных слоях и не взаимозаменяемы.
— Рычаги различаются жёсткостью принуждения: промпт даёт мягкие, вероятностные границы; права — жёсткие, гарантированные инфраструктурой; инструменты — промежуточные (отсутствие жёстко, наличие мягко до ограничения правами).
— Семантику задачи способен нести только промпт, и поэтому семантические границы жёсткими быть не могут — их аппроксимируют прокси-границами на правах и выносят на надзор.
— Граница роли держится настолько, насколько её удерживает самый слабый из задействованных механизмов; усиление сильного звена бесполезно при проницаемом слабом.
— Мягкие границы уместны для обратимого и наблюдаемого (стиль, формат, эвристики); защищать ими инварианты — категориальная ошибка.
— Рассогласование трёх рычагов даёт характерные отказы: шумные при промпте шире прав, спящие при правах шире контракта, тихую имитацию выполнения при промпте шире инструментов.
— Согласованная роль сведена к общему минимуму всех трёх слоёв под фактический контракт; «вдруг понадобится» — главный источник рассогласования.
— Жёсткость границ роли определяет карту доверия роя: где жёстко — там можно не перепроверять; где мягко — там перепроверка обязательна на каждом стыке.
Глава 17. Специализация против универсальности
Предыдущая глава определила роль как тройку «промпт, инструменты, права» — три рычага, которыми инженер очерчивает, что агенту разрешено знать, делать и менять. Эта глава отвечает на следующий вопрос: насколько узко затягивать эти рычаги. Специализация — это решение сузить роль: дать агенту меньше контекста, меньше инструментов, меньше прав, но взамен сделать его поведение в своей области более определённым. Универсальность — обратное решение: один агент с широким промптом, полным набором инструментов и правами на весь жизненный цикл задачи.
Это решение часто принимают по аналогии с организацией людей: раз у людей есть узкие специалисты и они работают лучше дилетантов, значит и агентов надо специализировать. Аналогия обманчива. У людей специализация дёшева в координации — специалисты сидят в одной комнате, разделяют общий контекст компании, помнят, кто за что отвечает, и переспрашивают друг друга бесплатно. У роя каждая граница между ролями — это handoff, то есть точка, где контекст приходится сериализовать, передать и восстановить (см. главу 47), и где он может потеряться или исказиться. Специализация в рое не бесплатна: она конвертирует сложность внутри агента в сложность между агентами. Выгода узкой роли реальна, но она оплачивается координационным налогом на стыках, и баланс этих двух величин — предмет этой главы.
Изложение идёт от архитектуры к примерам. Сначала — что именно даёт сужение роли и что оно отнимает, на уровне свойств системы, а не отдельных удачных случаев. Затем — почему универсальный агент в ряде задач строго лучше набора специалистов, и как распознать такие задачи заранее. Далее — спектр между двумя полюсами и failure modes на каждом конце. В конце — критерии выбора и переходные стратегии: специализация редко бывает бинарным решением, чаще это вопрос, где провести границы и насколько их укрепить.