Консоль
Кейсы

Пишем успешные промты

Основы промпт-инжиниринга

Промпт-инжиниринг

Основные правила

Инструкция агента, описание инструментов должны соответствовать следующим правилам:

Правило прямой речи

  • Нельзя использовать прямую речь
  • Т.е. нельзя в инструкции прописывать текст вида "скажи ХХХ"

Разделение инструкций

  • В инструкции агента не должно быть описаний инструментов (базы знаний, функции), условий их вызова, описания их аргументов, порядка чейнинга инструментов
  • В том числе недопустимы конфликты между инструкцией агента и инструкцией вызова инструмента

❌ Пример неправильной инструкции:
"Для ответа на вопросы по теме ХХХ обращайся к Базе знаний УУУ"

Именование инструментов

Название инструмента (функции, базы знаний) должно отражать семантику, их содержание и предназначение

❌ Пример плохого названия базы знаний:
qa_base

✅ Пример хорошего названия базы знаний:
heating_equipment_help

Алгоритмизация

  • Инструкция не должна содержать алгоритм диалога / действий агента
  • Например в виде конструкции "если собеседник сказал X, то сделай Y"
  • Если необходимо собирать информацию, например, все существенные параметры должны быть вшиты в аргументы функции
  • В таком случае агент будет задавать собеседнику вопросы, пока не соберёт все существенные параметры

Последовательность действий

  • Инструкция НЕ должна содержать никаких процессов, последовательностей, порядка действий
  • ❌ Пример неправильной инструкции: "сначала сделай X, затем спроси, потом спроси"
  • При необходимости реализации подобной логики нужно использовать процедуры

Чейнинг инструментов

  • Чейнинг (последовательный вызов) инструментов реализуется только через ответы инструментов

Пример:

  • функция get_order_status должна возвращать информацию "Этот заказ нельзя переносить/Этот заказ можно переносить"
  • Инструкция НЕ должна содержать информацию "Если заказ в статусе X, то его можно переносить, иначе нельзя"

Описание баз знаний

В описание баз знаний следует прикладывать конкретные примеры, указание на конкретную предметную область

❌ Неправильно:
"используй для всех вопросов"

✅ Правильно:
"используй для вопросов по подключению газа"

Дополнительные ограничения

  • Нельзя использовать инъекцию текущего времени во входные данные агента