Система…Как много в этом звуке...

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

Для тех, кто попал сюда первый раз: Я создаю Систему (RealRPG) в реальной жизни и это вторая статья в цикле о Системе и её разработке. Вкратце: Система, это ИИ, которая управляет (и создаёт) текстовую симуляцию мира, в которой живут и работают ИИ агенты. Некоторые ИИ агенты - ваши Ассистенты, с которыми вы можете общаться и взаимодействовать, они помогают вам в вашей повседневной жизни и достижению ваших целей.

Hidden text

Пройдем по старой известной парадигме программирования снизу вверх наискосок.

Ассистент

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

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

И у него есть картина мира.

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

Технологически, Ассистент реализуется таким образом: во-первых, в ядре Ассистента лежит llm. Поверх — куча системных промптов + несколько видов памяти + инструменты, которыми он может пользоваться + алгоритмы (langraph).

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

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

Агенты

Все Ассистенты это агенты, но не все агенты — это ассистенты. Я воспринимаю агентов как NPC (мы в симуляции находимся, об этом ниже).

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

Они живут в текстовой симуляции и постоянно увеличивают свою картину мира в том вопросе, в котором предназначены разбираться. Иногда, они могут менять собственную профессию (но об этом позже). Ассистенты, когда нанимают агентов им «платят» (про экономику всего этого в другой статье), поощряя их становится лучше и лучше выполнять свою работу (тут есть и эволюционный алгоритм выбора решения, но и об этом позже).

Симуляция

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

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

Агенты спят (сон нейронной сети реализован в виде файнтюна и LoRa для определённого круга задач), дообучаясь во сне, они познают симуляцию и реальный мир, улучшая и развивая собственные навыки и расширяя свою картину мира.

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

Симуляция довольна проста с одной стороны (ну нету у меня миллионов долларов, чтобы купить клон Майнкрафта) и сложна одновременно. Но самодостаточна, так как агенты представляют собой, в основном, на данный момент, текстовые llm (есть и text2video, text2image и text23d также, но это все еще эксперимент).

Симуляция работает на современном движке mud (олдскулы свело у тех, кто помнит что это такое?).

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

Система

Вот мы и подобрались к концепции верхнего уровня.

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

Система это «мать» всех агентов, они наследуют от нее все черты и возможности. И делятся с ней своим субъективным опытом, реализуя одну из концепций роевого разума.

При этом, о Системе, другие агенты «не ведают». Жизненный цикл агентов примерно такой же как у пользователя. Система им может выдавать «системные» задания, также как и пользователям их Ассистенты выдают задания и квесты на выполнения тех или иных действий для достижения целей.

Исключение составляют мысли. У каждого агента, так как он автономен и работает постоянно, есть цепочка мыслей (точнее это дерево мыслей с симуляционной составляющей, а итоговая мысль, которая будет отработана выбирается через эволюционный алгоритм, но об этом тоже позже), в которые, в соответствии с концепцией двупалатного разума (отссылка и привет от Мира дикого запада) иногда подмешиваются мысли Системы в виде внутреннего голоса (совсем как у людей. Часто ли вы ведете диалоги со своим внутренним голосом?).

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

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

Машина состояний

Много лет назад, до бума llm, я пытался придумать такую систему, которая гарантирована приводила бы людей к их целей. С описанием их возможностей в виде ресурсов (материальных, не материальных, позитивных и негативных), навыков и особенностей. И да, я тоже хотел использовать ИИ и нейросети (диссертация по ним мне помогала). И вот размышляя об этом я пришел к машине состояний и... удивительно, к Прологу.

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

А значит переход между этими двумя точками можно описать в виде машины состояний (state machine). И набором правил и действий, которые описывают переход из одной точки в другую.

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

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

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

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

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

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

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

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

На этом, сегодня — все.

Подписывайтесь на мой профиль на хабре и на канал в телеграмме. Скоро последуют и другие подробности, включая доступ к такому ассистенту.