Ролевой промптинг: это когда вы говорите модели, кем быть, прежде чем сказать, что делать: «Ты терпеливый репетитор по математике», «Представь, что ты нанимающий менеджер на вакансию junior-разработчика». Роль меняет то, для кого написан ответ, какими словами он написан, насколько глубоко он идёт и на что обращает внимание. Знаний, которых у модели нет, роль не даёт: это способ направить ответ, а не способ добавить факты.
Что меняет роль
Роль: компактный способ задать сразу несколько вещей:
- Аудиторию и словарь. Репетитор для новичков объясняет термины и пользуется аналогиями; старший инженер, который пишет для коллег, обходится без того и другого.
- Планку. Строгий редактор отметит предложение, которое доброжелательный читатель пропустил бы. Роль решает, что считать проблемой.
- Фокус. Ревьюер по безопасности и ревьюер по производительности читают одну и ту же функцию и замечают разное.
- Поведение. Интервьюер задаёт вопросы и ждёт; репетитору можно велеть давать подсказки вместо ответов.
Переключайте три вкладки ниже. Задача в каждой одинаковая; меняется только роль.
API (программный интерфейс приложения): это набор правил, который позволяет одной программе общаться с другой. Он определяет, какие запросы можно отправлять, как их отправлять и что придёт в ответ. Например, приложение погоды через API погодного сервиса получает прогноз. API позволяют разработчикам пользоваться функциями и данными других систем, не зная, как эти системы устроены внутри.
«Ты эксперт» почти не сдвинуло ответ: форма осталась такой же шаблонной, добавился жаргон, потому что «эксперт» ничего не говорит о том, кто читает. Конкретная роль изменила словарь, пример и точку опоры, потому что назвала аудиторию и то, что эта аудитория уже знает.
Чего роль не меняет
Роль не может добавить знания. «Ты юрист по налогам мирового уровня» не даст модели налоговых правил этого года, если она их никогда не видела, а уверенная персона может сделать неверный ответ более авторитетным на вид, а не менее. Не рассчитывайте, что метка эксперта повысит точность. Если важна правильность, дайте модели нужные факты или документы и попросите её говорить, когда она не уверена; промпты, которые в этом помогают, собраны на странице галлюцинации ИИ.
То же касается реальных людей. «Ответь так, как ответил бы известный программист» даст подражание публичному стилю этого человека. Модель не знает его личных мнений, поэтому всё, что она скажет его голосом о новом вопросе, выдумано.
Пишите конкретные роли
Полезная роль обычно называет четыре вещи: работу, аудиторию, цель и планку. Сравните:
- «Ты автор» превращается в «Ты редактор технического блога и вычёркиваешь любое предложение, которое не помогает новичку пройти по шагам».
- «Ты программист» превращается в «Ты старший Python-разработчик и проверяешь pull request младшего коллеги. Сначала укажи на баги, потом на читаемость и объясни каждый пункт, чтобы он мог на этом научиться». Полные промпты для ревью есть на странице промпты для код-ревью.
- «Представь, что ты учитель» превращается в «Представь, что ты учитель химии и готовишь 15-летнего ученика к экзамену. Задавай мне вопросы вместо того, чтобы давать ответы, и давай подсказку, когда я ошибаюсь».
Роль: одна из частей промпта, а не весь промпт. Она работает вместе с ясной задачей, контекстом, который модель не угадает, и формой нужного ответа; остальные части разобраны в руководстве по написанию промптов. Если роль и задача тянут в разные стороны, например «строгий ревьюер», которого просят «успокоить автора», ответ пытается сделать и то и другое и часто не справляется ни с чем.
Промпты «Act as» для тренировки
Форма «Act as» («Представь, что ты») стала популярной благодаря общедоступным коллекциям промптов, где модель играет интервьюера, собеседника для практики языка или даже терминал Linux. Ролевая игра полезна для всего, что хочется отрепетировать: собеседования, трудного разговора, выступления, нового языка.
Ролевая игра, которая работает, отличается от той, что разваливается, правилами. Скажите роли, что делать в каждой реплике, когда ждать вас и когда остановиться. Без этого модель может провести всю сессию в одном ответе: пять вопросов сразу или вопрос, за которым сразу идёт образец ответа.
Отлично, начнём. Первый вопрос будет на основы.
Вопрос 1: чем в JavaScript отличаются let, const и var?
Не торопитесь и отвечайте так, как ответили бы на настоящем собеседовании.
Поменяйте должность и тему, чтобы отрепетировать своё собеседование. Строка «жди моего ответа» удерживает модель на одном вопросе за реплику, а «после пяти вопросов остановись» даёт сессии конец и итог.
Куда ставить роль
Роль, которая нужна в каждом ответе, место в системном промпте: в поле system в API или в пользовательских инструкциях и инструкциях проекта в чат-приложениях. Там она действует на весь диалог, и её не нужно повторять. Для разового запроса ставьте роль в первое предложение сообщения, перед задачей.
import anthropic
client = anthropic.Anthropic()
MODEL = "your-model-id" # e.g. from your provider's model list
message = client.messages.create(
model=MODEL,
max_tokens=500,
system="You are a patient programming tutor for adults in their first month of coding. Give hints before full solutions.",
messages=[{"role": "user", "content": "Why does my loop print the last item twice?"}],
)
print(message.content[0].text)
Роли работают и посреди диалога. Когда модель набросала черновик, просьба «теперь представь, что ты скептичный рецензент черновика выше, и перечисли три его самых слабых места» часто вскрывает проблемы, которые первый проход сгладил, потому что новая роль меняет то, что модель ищет.
Часто задаваемые вопросы
Что такое ролевой промптинг?
Ролевой промптинг: это когда вы говорите модели, кем быть, прежде чем сказать, что делать, например «Ты терпеливый репетитор по математике для 12-летних» или «Представь, что ты проводишь собеседование на должность junior-разработчика». Роль определяет аудиторию ответа, словарь, глубину и фокус, а в диалоге может менять поведение модели, например чтобы она задавала вопросы, а не отвечала на них.
Если сказать ИИ, что он эксперт, он станет точнее?
Не рассчитывайте на это. Метка вроде «Ты эксперт мирового уровня» не даёт модели знаний, которых у неё нет, и может сделать неверный ответ более уверенным на вид. Чтобы повысить точность, дайте модели нужные факты или источники, попросите говорить, когда она не уверена, и проверяйте результат.
Куда ставить роль?
Роль, которая должна действовать весь диалог, кладите в системный промпт: в поле system в API или в пользовательские инструкции и инструкции проекта в чат-приложениях. Для разового запроса ставьте её в первое предложение сообщения, перед задачей.
Что такое промпты «Act as»?
Это промпты, которые начинаются с «Act as» («Представь, что ты» или «Действуй как») и дают модели роль: интервьюера, собеседника для практики языка, терминала Linux, гида. Популярными их сделали общедоступные коллекции промптов. Лучше всего они работают, когда ещё и говорят, что роль должна делать в каждой реплике и когда остановиться.
Каким должен быть хороший ролевой промпт?
Конкретным. Назовите работу, аудиторию, цель и планку: «старший Python-разработчик, который проверяет pull request младшего коллеги, сначала баги, потом читаемость» даёт модели гораздо больше, чем «эксперт». Остальную часть промпта пишите как обычно: задача, контекст и формат.