Архитектура метаинтеллектаМетаинтеллект · Агенты · Границы

Агент как ограниченный локальный мир

В большинстве систем агент устроен как функция с промптом. Такой агент не может отказаться от работы, закончиться или исчерпать ресурс. Между тем именно ограниченность делает участника пригодным для среды, где никто не управляет всеми.

Архитектура метаинтеллекта · часть 2 из 6

Что не так с «агентом как функцией»

Агент-функция принимает вход и возвращает выход. Вместо собственной цели у него чужая задача, вместо состояния переданный контекст, а ограничения держатся на надежде, что вызывающий не попросит лишнего. Пока агент один, это работает. Когда их десятки и им нужно уживаться месяцами, отсутствие внутренней структуры порождает все проблемы сразу.

Полезное сравнение: агент-функция относится к участнику среды примерно как процедура к процессу в операционной системе. Процедура выполняется и исчезает. У процесса есть память, права, квоты и жизненный цикл, и его можно остановить извне.

Из чего состоит участник

В нашем рантайме участник устроен как ограниченный локальный мир. Каждая его часть нужна потому, что без неё ломается конкретный сценарий. Ради полноты модели здесь ничего не добавлено:

Граница вместо доступа

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

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

Локальные решения

Участник сам оценивает, с кем ему полезно связаться. Он сравнивает свои потребности с чужими способностями, учитывает взаимность, близость целей, стоимость общения и свободную ёмкость. Среда может показать ему кандидатов, но назначить связь не может: предложение должны принять обе стороны.

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

Жизненный цикл: рождение, сон, уход

Участник может клонироваться, разделиться на нескольких, слиться с другим, заснуть, когда работы нет, попасть в карантин при нарушении инвариантов и уйти в отставку. Для среды всё это обычные операции, аварийными они не считаются.

Что даёт ограниченность

Ограниченный участник предсказуемо ведёт себя в неприятных ситуациях, а в продакшене платят именно за это:

  1. Он может отказаться, потому что у него есть собственная цель и уже взятые обязательства.
  2. Его бюджет проверяет среда, а не совесть модели. При жёстком потолке он не потратит больше выделенного. Чем опасен мягкий лимит, разобрано в части про экономику.
  3. Он не унесёт чужие данные: за его границей их нет.
  4. Его можно остановить, усыпить или изолировать, не останавливая остальных.
  5. По его происхождению и связям восстанавливается история: откуда взялось поведение и с кем оно согласовано.

Чего это стоит

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

Смысл появляется там, где участников много, живут они долго и должны переживать ошибки друг друга. Тогда ограниченность перестаёт быть накладным расходом и становится способом сохранить систему управляемой.

Код и артефакты

Серия «Архитектура метаинтеллекта»

  1. Метаинтеллект: почему потолок системы задаёт среда вокруг модели
  2. Агент как ограниченный локальный мир
  3. Связь как объект первого класса: отношение с состоянием и историей
  4. Живой граф: топология как следствие работы
  5. Согласие без центра: как решать вместе, не доверяя никому на слово
  6. Экономика агентов: почему автономии нужен бюджет

Частые вопросы

Чем такой участник отличается от микросервиса?

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

Зачем участнику собственный бюджет?

Чтобы ограничение активности было физическим, а не декларативным. Пока «не делай лишнего» живёт в инструкции, его нарушают. Когда ресурс списывается при каждом действии и заканчивается, поведение ограничивает сама среда.

Не проще ли дать всем общий контекст?

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

Чем мы помогаем по этой теме

Читать дальше

Следить за серией

Если вы строите похожую среду или хотите обсудить исследование вместе с нами, напишите через форму на главной.

Написать на hello@xteam.pro