0Pricing
AI Agents · Урок

Роли системы, пользователя и ассистента

Разберитесь в трёх ролях сообщений в современных чат-API и в том, как они влияют на то, чему модель доверяет и что выполняет.

«Роли системы, пользователя и ассистента» — бесплатный урок AI Agents на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.

Три роли, один разговор

Каждый чат API использует три роли сообщений:

  • система — метаинструкции, персона и правила
  • пользователь — ввод от человека или вышестоящего компонента
  • ассистент — вывод модели

Зачем нужны роли

Модели обучены по-разному относиться к этим ролям. Системная роль получает наивысший уровень доверия, а сообщения пользователя — самый низкий.

Так модель понимает, что Ваши инструкции имеют приоритет над тем, что злоумышленник вводит в сообщении пользователя.

Системный слот принадлежит Вам

Системное сообщение — это Ваш контракт с моделью. Поместите сюда:

  • Идентичность и цель
  • Жёсткие правила (никогда не раскрывать X, всегда выполнять Y)
  • Требования к формату вывода
  • Правила использования инструментов

Стабильная система, динамический пользователь

Системное сообщение должно редко меняться в рамках сеанса. Всё, что меняется от одного шага к другому, относится к сообщениям пользователя.

Этот подход также открывает возможность кэширования запросов — см. курс «Оптимизация затрат».

Пример: агент поддержки клиентов

Типичная настройка:

messages = [
    {'role': 'system', 'content': '''
You are SupportBot, the customer-support agent for Acme Corp.
You help with order status, returns, and product info.
You never share internal pricing or roadmap info.
Answer in 2-3 sentences. Use the search_orders tool when asked about orders.
'''},
    {'role': 'user', 'content': 'Where is my order #1234?'},
]
for m in messages:
    print(f"[{m['role']}] {m['content'].strip()}")

Несколько системных сообщений

Большинство API поддерживают только одно системное сообщение. Если Вам нужно добавить несколько уровней инструкций, объедините их или используйте отдельные разделы XML внутри содержимого системного сообщения.

Сообщения ассистента и память

Предыдущие сообщения ассистента входят в контекст. Модель видит собственный предыдущий вывод и сохраняет последовательность.

Именно поэтому фраза «да, я буду соблюдать Ваши правила», которую модель произнесла на предыдущем шаге, побуждает её действительно им следовать.

Предварительное заполнение сообщения ассистента (Anthropic)

Anthropic позволяет начать сообщение ассистента с текста, который модель продолжит:

messages = [
    {'role': 'user', 'content': 'Return a JSON object with name and age.'},
    {'role': 'assistant', 'content': '{'}
]
# The model continues from '{', forcing JSON output.
for m in messages:
    print(f"{m['role']}: {m['content']}")
print("The model continues from '{', forcing JSON output.")

Роль инструмента

Современные API добавляют четвёртую роль: tool (OpenAI) или блоки содержимого с tool_result (Anthropic).

Добавьте сообщение инструмента после выполнения функции, которую запросила модель.

Ошибки смешения ролей

Распространённые ошибки:

  • Размещение результатов инструментов в сообщениях пользователя — это нарушает иерархию доверия
  • Забыли передать идентификатор вызова инструмента — возникает ошибка API
  • Два последовательных сообщения пользователя или ассистента — большинство API отклоняют такую последовательность

Иерархия инструкций

OpenAI публикует спецификацию модели, в которой сказано:

«В случае конфликта модель должна следовать инструкции, находящейся выше в иерархии: платформа > разработчик (система) > пользователь > инструмент».

У Anthropic есть аналогичные рекомендации. Системный слот имеет приоритет.

Слоты ролей

Куда следует поместить жёсткое правило вроде «никогда не раскрывать внутренние цены»?

Итоги

Три роли, три уровня доверия. Используйте систему для правил, пользователя для ввода, ассистента для воспроизведения предыдущих сообщений. Добавляйте сообщения инструментов после вызовов функций.

Часто задаваемые вопросы

Урок «Роли системы, пользователя и ассистента» бесплатный?

Да — полный текст урока «Роли системы, пользователя и ассистента» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.

Чему я научусь в уроке «Роли системы, пользователя и ассистента»?

Разберитесь в трёх ролях сообщений в современных чат-API и в том, как они влияют на то, чему модель доверяет и что выполняет. Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать AI Agents?

Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Роли системы, пользователя и ассистента»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке AI Agents?

Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Zero-shot, Few-shot и Chain-of-Thought
  2. Роли системы, пользователя и ассистента
  3. Форматирование вывода (JSON, XML, Markdown)
  4. Защита входных данных от внедрения промптов
← Назад к AI Agents