Где на самом деле проходит потолок
Возьмите любую систему, которая должна работать полгода, а не десять минут. Модель отвечает в ней за один шаг: понять, предложить, сформулировать. Всё остальное лежит вне модели: кто с кем связан, кто что помнит, кому разрешено действовать, чем оплачена работа, как принято общее решение и что будет при сбое.
Проекты упираются именно сюда. Если у модели нет границ полномочий, её ошибку уже не отменить. Без лимитов она тратит деньги, которых никто не считал. А когда решения не записываются, никто не сможет объяснить, почему система поступила так.
Три свойства, без которых среда не живёт
Локальность решений
Центральный планировщик проще всего организует многих участников, и он же самый хрупкий. Он становится узким местом по пропускной способности, единой точкой отказа и единственным, кто держит контекст. Живая среда устроена наоборот. Каждый участник решает сам, исходя из своей цели и того, что видит, а среда даёт возможность встретиться и договориться.
Доказуемость
Любое поведение системы должно восстанавливаться из записей: что участник знал в момент решения, что предложил, с чем согласился, что изменилось в результате. Без этого систему нельзя ни улучшать, ни отвечать за её действия. Значит, ей нельзя доверить ничего существенного.
Обратимость
Среда должна заранее рассчитывать на ошибку: связь можно расторгнуть, объединение участников развернуть обратно, действие откатить, автономию отозвать. Если любое решение необратимо, система не может дёшево учиться на своих ошибках и за каждую платит полную цену.
Два примитива вместо архитектуры сервисов
Обычная многоагентная система начинается с ролей: планировщик, исполнитель, критик. На схеме роли удобны, в работе мешают: они фиксируют структуру раньше, чем стало понятно, какая структура нужна задаче.
Мы строим иначе, и в основе два примитива. Первый: участник как ограниченный локальный мир. У него своя цель, состояние, способности, потребности, бюджет и граница, через которую наружу выходит только согласованная часть состояния. Второй: связь между участниками как самостоятельный долгоживущий объект с собственным состоянием, правами сторон, историей изменений и сроком жизни.
Из этих двух примитивов топология складывается сама. Участники находят друг друга, договариваются, работают, укрепляют полезные связи и отпускают бесполезные. Граф связей здесь и есть работающая система, а не схема в документации.
Чем это отличается от мультиагентной сборки
Разница в том, что считается первичным. В типичной мультиагентной сборке первичен сценарий: кто кому передаёт задачу. В среде первичны участник и связь. Сценарий из них следует и может измениться, пока система работает.
- Связь не создаётся приказом. Обе стороны должны её принять, и любая может пересмотреть условия.
- Работа стоит ресурсов, и один ресурс нельзя потратить дважды. Активность ограничивает сама среда, без инструкций в промпте.
- Общие решения принимаются процедурой согласия, без слепого доверия главному узлу.
- Устойчивая группа участников может свернуться в одного участника, видимого снаружи, и развернуться обратно, когда ослабнет.
Что уже работает, а что остаётся гипотезой
Слой среды у нас реализован и открыт. Это рантайм, в котором участники находят друг друга, договариваются, синхронизируют границы, платят за ресурсы, приходят к общему решению и рекурсивно организуются в группы. Его можно скачать, запустить и проверить, ссылка в конце статьи.
Открытым остаётся главный вопрос: какие законы среды приводят к устойчивому полезному поведению популяции, а какие к вырождению. Ответить на него могут только эксперименты. Первое сравнение уже есть, и его результат отрицательный: граф связей выигрыша не дал (97,21 % успешно выполненных задач против 97,24 % без графа, 16 агентов, пять сидов, то есть начальных значений генератора случайности; знак разницы менялся от сида к сиду). Задачи в том сравнении были одноагентные, поэтому гипотеза не проверена ни в одну сторону. Сводка лежит в открытом репозитории.
Отдельно оговорим границу. У нас есть и другие исследовательские линии: библиотека численных вычислений и нейронное ядро. Их код тоже открыт, но это отдельные темы, и в серии они появляются только на уровне назначения и наблюдаемых свойств.
Из чего состоит серия
- Участник как ограниченный локальный мир: что у него внутри и почему граница важнее доступа.
- Связь как объект первого класса: переговоры, права сторон, ревизии, угасание.
- Живой граф: топология как следствие работы.
- Согласие без центра: как группа принимает общее решение, если никому нельзя верить на слово.
- Экономика: почему автономии нужен бюджет и что меняется, когда мышление стоит денег.
- Фрактальная организация: как устойчивая группа становится одним участником и как разворачивается обратно.
- Доказуемость: воспроизводимые прогоны, свидетельства и почему они важнее демонстрации.
Каждая часть опирается на работающий код и на то, что мы видели, запуская его. Обзоров чужих работ здесь нет. Где данных нет, так и пишем.