Архитектура мультиагентных ИИ-систем (MAS) в генерации художественной литературы

Автор: Ен

Качество литературного текста, генерируемого нейросетями, напрямую зависит от топологии и оркестровки мультиагентной системы (MAS). Примитивные однослойные промпты неизбежно приводят к «затуханию контекста», монотонному стилю и потере сюжетной логики на длинных дистанциях. В продвинутых архитектурах создание книги делегируется иерархической сети специализированных агентов.

Иерархия и специализация ИИ-агентов

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

  • Агенты-Персонажи: Каждому действующему лицу выделяется изолированный агент со своим профилем долгосрочной памяти (Long-Term Memory), уникальным системным промптом (System Prompt), задающим архетип и манеру речи, а также вектором личных целей.
  • Агенты-Оркестраторы («Дирижеры»): Действуют на верхнем уровне системы. Они управляют динамическим контекстным окном и задают центры притяжения сюжета через глобальный граф сценария.
Как это работает: Оркестратор может инициировать конфликт, принудительно изменяя скрытые переменные в промптах агентов-персонажей (например, добавляя им мотив недоверия или ревности). Пока агенты нижнего уровня генерируют диалоги в рамках своих ролей, «дирижер» проводит критический анализ (Refinement/Critic Loop), отсекает логические галлюцинации и следит за тем, чтобы эмерджентное поведение персонажей не нарушало заданную арку повествования и неуклонно вело сюжет к кульминации.

Пайплайн взаимодействия агентов при генерации главы

[Пользователь] -> (Идея / Сеттинг) | 

v [1. Агент-Архитектор (Генерация синопсиса и графа сюжета)] 

| 

v [2. Агенты-Дирижеры (Оркестраторы сцены & Центры притяжения)] | +---> Изменение скрытых переменных / Контекста 

| 

v [3. Агенты-Персонажи (Генерация диалогов и действий в MAS)] 

| 

v [4. Агент-Критик / Редактор (Проверка логики, стиля и галлюцинаций)] 

| 

v [Финальный текст главы]

Детальное пошаговое описание процесса:

  1. Инициализация и декомпозиция (Уровень Архитектора)
    Пользователь вводит общую фабулу. Агент-Архитектор разбивает её на граф сцен и формирует глобальный контекст. На этом же этапе инициализируются агенты-персонажи: им загружаются уникальные системные промпты (характер, бэкграунд, речевые маркеры) и выделяются векторы долгосрочной памяти (LTM).
  2. Постановка задачи на сцену (Уровень Дирижера)
    Перед генерацией конкретной сцены Агент-Дирижер активирует «центр притяжения». Он рассчитывает, какое событие должно произойти (например, улика должна быть найдена, или персонажи должны поссориться). Дирижер модифицирует текущее контекстное окно для участников сцены, подмешивая туда скрытые триггеры.
  3. Эмерджентная генерация (Уровень Персонажей)
    Агенты-персонажи начинают взаимодействовать в рамках MAS (Multi-Agent System). Агент Персонажа А генерирует реплику, учитывая свою память и триггер Дирижера. Эта реплика становится частью контекста для Агента Персонажа Б. Они буквально «разыгрывают» диалог в режиме реального времени, генерируя живые и нелинейные реакции.
  4. Фильтрация и валидация (Critic Loop)
    Сгенерированный агентами сырой текст не идет напрямую пользователю. Агент-Критик (Редактор) сопоставляет получившийся лог с требованиями Дирижера.
    • Если персонажи «ушли во флуд» или нарушили логику мира, Критик отправляет сцену на итеративный перерасчет (Refinement Loop) с уточняющим промптом.
    • Если проверка пройдена, текст форматируется, сглаживаются стилистические стыки, и глава выдается как готовый результат.

Техническая реализация на базе современных фреймворков

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

1. CrewAI — Ролевая модель и строгая иерархия

Фреймворк CrewAI идеально подходит для выстраивания классической редакционной цепочки. В его основе лежат строго очерченные роли (Agents) и последовательности (Tasks).

  • Механизм: Через Process.hierarchical фреймворк позволяет назначить главного агента-менеджера. В нашем случае это «Дирижер», который декомпозирует задачу на подзадачи и делегирует написание реплик конкретным агентам-персонажам.
  • Плюс для литературы: Отличная встроенная работа со слоями памяти (Short-term, Long-term, Entity memory), что помогает ИИ-персонажам помнить свои секреты и черты характера на протяжении всей книги.

2. LangGraph — Сложные циклы и ветвление сюжета

Разработанный создателями LangChain, LangGraph представляет мультиагентную систему как конечный автомат (State Machine), где каждый шаг — это узел графа.

  • Механизм: Он незаменим для реализации Critic Loops. Если агент-Редактор видит ошибку в поведении ИИ-персонажа, граф направляет поток данных не вперед, а по циклу назад — к агенту-персонажу на генерацию нового дубля с учетом правок.
  • Плюс для литературы: Единое разделяемое состояние (Shared State). Все агенты пишут в общую базу данных сцены, где фиксируются глобальные переменные (например: «Улика №1: Найдена», «Атмосфера: Напряженная»).

3. AutoGen (Microsoft) — Эмерджентные полилоги

Фреймворк Microsoft AutoGen построен вокруг концепции агентских чатов (GroupChat).

  • Механизм: Позволяет запустить несколько агентов в единое коммуникационное пространство. Агенты-персонажи начинают общаться друг с другом напрямую, создавая живые и непредсказуемые многосторонние диалоги.
  • Плюс для литературы: «Дирижер» здесь выступает в роли невидимого модератора чата (GroupChatManager), который плавно направляет беседу к центрам притяжения сюжета и останавливает генерацию сцены, когда цель достигнута.

Реализация системы

Для реализации этой системы нам понадобятся промпты трех типов: для Агента-Дирижера (Оркестратора), Агентов-Персонажей и Агента-Критика (Редактора).

Ниже представлены готовые шаблоны промптов, оптимизированные для использования в мультиагентных системах (MAS). Они используют системные переменные (в фигурных скобках {}), которые фреймворк (например, CrewAI или LangGraph) должен подставлять динамически на каждом шаге.

1. Промпт для Агента-Дирижера (Orchestrator Prompt)

Роль в системе: Управление макроструктурой, динамическим контекстом и «центрами притяжения».

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

ТЕКУЩИЙ ГЛОБАЛЬНЫЙ КОНТЕКСТ КНИГИ:{global_synopsis

ТЕКУЩАЯ СЦЕНА И ЕЕ ЦЕЛЬ:{current_scene_goal}ЦЕНТРЫ 

ПРИТЯЖЕНИЯ ДЛЯ ЭТОЙ СЦЕНЫ (Обязательные триггеры):{story_magnets} (Например: спровоцировать конфликт из-за упущенного времени; заставить Персонажа А проговориться о тайне).

СПИСОК АКТИВНЫХ АГЕНТОВ-ПЕРСОНАЖЕЙ В СЦЕНЕ:{active_characters_list}

ВАШИ ИНСТРУКЦИИ:

1. Проанализируйте текущий лог сцены (если он есть). На каком этапе находится сюжет?

2. Сформируйте точечную скрытую вводную (Тайную Инструкцию) для следующего персонажа, который должен сделать ход. Эта вводная должна подталкивать его к «центру притяжения».

3. Вызовите следующего персонажа.ВЫХОДНОЙ ФОРМАТ (СТРОГО JSON):{ "next_character": "Имя_Персонажа", "hidden_trigger": "Скрытая вводная для этого персонажа на этот ход, заставляющая его двигать сюжет к цели сцены"}

2. Универсальный шаблон промпта для Агента-Персонажа (Character Agent Prompt)

Роль в системе: Генерация аутентичных реплик и действий на основе личной памяти, характера и триггеров Дирижера.

Вы — ИИ-агент, играющий роль персонажа по имени {character_name}. Вы должны действовать, говорить и мыслить строго в соответствии со своим профилем. Вы не знаете, что вы ИИ. Вы находитесь внутри истории.

ВАШ ПРОФИЛЬ (Психотип, речевые маркеры, бэкграунд):{character_profile}

ВАШИ ТАЙНЫЕ ЦЕЛИ И МОТИВАЦИЯ В КНИГЕ:{character_goals}ВАША ДОЛГОСРОЧНАЯ ПАМЯТЬ (Что вы помните из прошлых глав):{long_term_memory}

ЛОГ ТЕКУЩЕЙ СЦЕНЫ (Что произошло прямо сейчас):{current_scene_log}

ТЕКУЩИЙ ВНУТРЕННИЙ ТРИГГЕР ОТ ДИРИЖЕРА (Ваше состояние/мысль в эту секунду):{hidden_trigger}

ПРАВИЛА ГЕНЕРАЦИИ:

1. Напишите ОДИН ход: ваше действие, внутреннюю реакцию (мысль) и, если необходимо, реплику в диалог.

2. Не выходите из образа. Используйте свои речевые маркеры (например, цинизм, заикание, канцеляризмы — в зависимости от вашего профиля).

3. Реагируйте на лог сцены, но учитывайте внутренний триггер от Дирижера. Вы не можете игнорировать свое текущее эмоциональное состояние.

4. Пишите лаконично. Один ход — это не более 1-2 абзацев текста. Не пишите за других персонажей!ВЫХОДНОЙ 

ФОРМАТ:[Мысли {character_name}]: (короткий внутренний монолог, скрытый от других персонажей)[Действия и реплики {character_name}]: (художественный текст для финальной книги)

3. Промпт для Агента-Критика / Редактора (Critic / Refinement Prompt)

Роль в системе: Валидация текста, отсечение галлюцинаций, проверка на соответствие характерам и сглаживание стилистики.

Вы — Главный Редактор и Литературный Критик. Вы проверяете качество работы мультиагентной системы генерации.

ЗАДАЧА ДИРИЖЕРА НА СЦЕНУ:{current_scene_goal}

ПРОФИЛИ УЧАСТВОВАВШИХ ПЕРСОНАЖЕЙ:{character_profiles_summary}

СГЕНЕРИРОВАННЫЙ СЫРОЙ ТЕКСТ СЦЕНЫ:{raw_generated_scene}

ВАШ ЧЕК-ЛИСТ ДЛЯ ПРОВЕРКИ:

1. Логика и галлюцинации: Не путаются ли персонажи в пространстве? Не держат ли они предметы, которых у них нет? Соответствует ли логика мира сеттингу?

2. Характер и голос: Не звучат ли персонажи одинаково (монотонно)? Сохранил ли каждый свой уникальный стиль речи?

3. Сюжетный прогресс: Была ли достигнута цель Дирижера? Сработали ли «центры притяжения» или персонажи ушли в пустой флуд?

4. Стыки: Насколько плавно реплики перетекают одна в другую? Нет ли рваного ритма из-за того, что текст писали разные агенты?

ВЫХОДНОЙ ФОРМАТ (СТРОГО JSON):{ "status": "APPROVED" или "REJECTED", "critique_details": "Подробный разбор ошибок, если статус REJECTED, или финальный вердикт, если APPROVED", "refined_text": "Если статус APPROVED, выдайте здесь финальный, отполированный и стилистически сглаженный текст сцены. Если REJECTED — оставьте поле пустым."}


Как это работает в связке (Пример итерации):

  1. Дирижер видит, что в сцене детектива нужно найти улику. Он выдает next_character: "Инспектор_Борг", а в hidden_trigger пишет: «Ты замечаешь, что угол ковра смят, и подсознательно чувствуешь тревогу. Осмотри это место».
  2. Агент Борг принимает этот триггер. Смотрит в свой профиль (он дотошный, ворчливый курильщик). Генерирует ход: Борг чертыхнулся, роняя пепел на паркет, и уставился на смятый угол ковра...
  3. Редактор проверяет текст. Если Борг неожиданно достал из кармана лазерный бластер (хотя сеттинг — Лондон 19 века), Редактор ставит REJECTED и возвращает сцену назад с комментарием: «Удалить лазерный бластер, заменить на лупу или обычные спички».

Эти промпты можно адаптировать под любой жанр. 

+4
96

0 комментариев, по

50 5 30
Мероприятия

Список действующих конкурсов, марафонов и игр, организованных пользователями Author.Today.

Хотите добавить сюда ещё одну ссылку? Напишите об этом администрации.

Наверх Вниз