Вы пишете: «Сыграй диалог двух друзей». GPT отвечает единым потоком текста, лишь чередуя имена. Причина проста: модель предсказывает следующий токен, а не управляет сценой. Ей нужен не образ «друг», а жёсткая архитектура ролей и правил хода.
Методактёр не нужен. Нужен режиссёр
Представьте киносет. Без режиссёра актёры говорят одновременно или молчат. В GPT «режиссёр» — это системный промт. Он не играет роль, он задаёт переключение контекста, формат реплики, порядок хода и условия остановки.
Два «друга» — это два набора инструкций (карточки персонажей), которые режиссёр подсовывает модели перед каждой репликой. Модель переключается между ними, сохраняя единую историю в контексте.
Три слоя рабочего промта
Слой 1. Режиссёр (System)
Задаёт глобальные правила: формат вывода (JSON/Markdown), механизм очереди хода, управление памятью сцены, запрет на отписывание за другого персонажа.
Слой 2. Актёры (Character Cards)
Два отдельных блока инструкций: имя, архетип, лексикон, манера речи, скрытые мотивы, отношения к партнёру, база знаний. Режиссёр инъецирует нужный блок перед генерацией реплики.
Слой 3. Старт (User Prompt)
Запускает симуляцию: задаёт сеттинг, триггер конфликта, первую реплику или команду «Начать». Лучше дать режиссёру выбор: кто ходит первым.
Анатомия карточки персонажа
Почему это работает
Модель не «вживается». Она переключает веса внимания на заданный набор токенов-триггеров (сленг, факты, манера). Чем плотнее карточка, тем чётче переключение.
Ловушка: «Общий контекст»
Если оба персонажа видят полную историю чата, они начинают «подглядывать» в мысли друг друга. Режиссёр должен фильтровать контекст: выдавать каждому только то, что он услышал/увидел.
Механика очереди: как не превратиться в хаос
Самая частая поломка — модель генерирует сразу две реплики: «Сергей: … Антон: …». Решение — жёсткий формат вывода (JSON) и инструкция «Выводить ОДНУ реплику за ход».
Для интерактивного режима (вы играете за третьего) добавьте в системный промт: WAIT_FOR_USER_INPUT: true. Режиссёр остановится после реплики B и ждёт вашего ввода как «Событие извне» или реплики персонажа C.
«Поговори за двух друзей, которые спорят про стартап. Сергей против, Антон за.»
Системный промт (выше) + Карточки А/Б + Сцена старта. Режим: JSON, строгая очередность, изолированный контекст.