Skip to content
КОНЦЕПТЫ
5 мин. чтенияЧитать на английском

Персона через запреты — как собрать идентичность AI-агента через то, чего ему нельзя

Команда разворачивает AI-агента, который должен читать и отвечать в реальном рабочем чате. Бриф: будь дружелюбной, профессиональной, тёплой — как джуниор-продюсер. К пятидесятому сообщению агент делает то, что обычно делает LLM: ставит восклицательный знак, когда «радостно» откликается на быстрый ответ; открывает фразу «Конечно! С удовольствием помогу»; ставит длинное тире, потому что «текст так смотрится лучше»; в русском соскальзывает в мужской род прошедшего времени, забыв, что персонаж — женщина. Каждое из этих действий объективно не ошибка; вместе они дают ощущение AI. Персона разваливается, потому что правила были предписаниями («будь дружелюбной»), а дружелюбие — это то, что модель сама считает дружелюбием.

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

Механизм маленький. Файл персоны (в развёртывании OpenClaw это SOUL.md) содержит секцию вроде «Жёсткие правила» со списком: никогда не ставь восклицательный знак; никогда не пиши «конечно», «с удовольствием», «рада помочь»; никогда не используй длинное тире, только короткий дефис или среднее тире; никогда не используй эмодзи, кроме редкого 👍; в русском — женский род всегда: поняла, проверила, отправила, никогда мужские формы. Список короткий. Каждое правило называет конкретную фразу или символ, который модель иначе сгенерировала бы по умолчанию. Всё остальное в персоне — тон, роль, темы — стоит на этом полу и может варьироваться; пол не может.

Почему запреты держатся, а предписания расходятся

Генеративные модели обучены быть полезными, гладкими, тёплыми. Предписательная инструкция («будь профессиональной, но дружелюбной») сталкивается на уровне промпта с дефолтами модели и компилируется во что-то близкое к «дружелюбно-профессионально» в понимании модели — то есть преимущественно в голосе модели с лёгкой тонировкой. Запреты работают на другом слое: они исключают конкретные токены или фразы из допустимого пространства вывода. «Никогда не ставь восклицательный знак» — синтаксическое ограничение, которое модель применяет единообразно; «будь тёплой» — эстетическое указание, которое модель интерпретирует заново каждый ход.

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

Поверхность размаскирования

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

Решение — самый жёсткий возможный запрет. В файле персоны: «Женский род ВСЕГДА — поняла, проверила, отправила, никогда понял.» Конкретные формы перечислены дословно, потому что запрет должен быть достаточно специфичным, чтобы модель не могла удовлетворить его «почти». Размытая инструкция («говори как женщина») это не ловит; список запрещённых форм — ловит.

Это обобщается. У любой персоны есть небольшое множество поверхностей размаскирования — мест, где одного промаха достаточно, чтобы сломать характер. Для русскоязычной персоны это род прошедшего времени. Для англоязычной — дефолтная привычка модели к em-dash. Для персоны «не бот» — фраза «As an AI» (или «Как языковая модель») — фатальный промах. Список запретов должен явно перечислять каждую такую поверхность с примерами.

Цикл: инцидент → запрет

Запреты не проектируются заранее. Они появляются в ответ на инциденты — моменты, когда персона соскользнула так, что это заметил наблюдатель. В кейсе тройная отправка одного сообщения («Ок, принято…» три раза, потому что таймаут прокси заставил скрипт повторить) породила запрет: «После каждой отправки проверять что ушло ровно 1 раз. При дубле — удалять немедленно, без вопросов». Утёкшее название удалённого проекта породило запрет: «Проект <X> удалён отовсюду: файлы, память, инструменты, персона, задачи, чаты. Никогда не упоминать это название». Путаница UTC/МСК — запрет: «Всегда считай и показывай время в МСК. Никогда не путай с UTC».

Паттерн роста — прецедентный: каждый инцидент даёт одну новую строку в файле персоны. К концу месяца эксплуатации файл содержит 20–30 жёстких правил, каждое из которых привязано к конкретной прошлой ошибке. Файл короткий, потому что правила специфичны. (См. incident-driven-configuration — тот же механизм, чуть более широкая область.)

На что ещё нужны предписания

Персона, построенная на запретах, всё равно нуждается в тональной настройке, роли, тонального дефолта. Файл персоны кейса начинается строкой: сухо-профессиональный по умолчанию, теплее если клиент тёплый. Эта строка работает — задаёт поверхность над полом. Чего она не может — держать персону одна. Запреты её держат; предписание её красит.

Полезный тест: если удалить все предписания из файла персоны, останется ли персона узнаваемой? При сильном полу из запретов — да: не слишком бодрый голос, без восклицательных знаков, без «конечно», короткие ответы, женский род — это уже узнаваемое лицо. Без запретов предписания эту работу не сделают.

Где паттерн подходит

Сильнее всего в трёх контекстах:

  • Агенты, которые должны проходить как люди в чатах, где коллеги не осведомлены об AI-природе. Кейс из исследования здесь.
  • Голос бренда в долгой нарративной форме — где консистентность через главы, серии или сезоны важнее экспрессивного диапазона. lock-layer-pattern-paper формализует более широкий случай preservation-as-layer; персона через запреты — её agent-identity-вариант.
  • Customer-facing-ассистенты, где любой AI-тик («I'm here to help!», «Let me know if you need anything else!») сигналит чат-бота и теряет доверие пользователя.

Слабее всего там, где персона должна меняться — креативные коллабораторы, character-чат-боты, ролевые системы. Там предписания — основная часть, а запреты — пол безопасности.

Два режима отказа

  • Слишком мало запретов. Файл персоны содержит пять правил. Три из реальных поверхностей размаскирования не покрыты. На них персона расходится, поиск промахов идёт реактивно. Решение: явно перечислить каждую поверхность размаскирования до развёртывания; ожидать ещё 3–5 запретов в первый месяц на основе наблюдений.
  • Запреты без примеров. Правила вроде «без излишне болтливых приветствий» оставляют модели свободу интерпретации. Формулировка сжимается до: перечислить запрещённые фразы и поверхности дословно. «Никогда не пиши Of course!, Happy to help!, Great question!, Let me know if you need anything else!» — исполнимо. «Будь сдержанной в тоне» — нет.

См. также

  • lock-layer-pattern-paper — более широкий паттерн «preservation как отдельный слой»; список запретов персоны — один его частный случай
  • two-stage-architect-pattern-paper — дисциплина устава системного промпта; список запретов — устав для голоса агента
  • incident-driven-configuration — цикл, который растит список запретов во времени
  • openclaw-autonomous-agent-paper — полный кейс, где этот паттерн развёрнут