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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обсудим вашу задачу

Если у вас похожая задача — расскажите, что нужно решить. Скажем прямо, если она решается проще, чем кажется.

Написать нам