Вы уже знаете, как задать простой промпт и получить от модели ответ. Но как быть, если задача сложнее? Если вам нужно не просто сгенерировать текст, а задать структуру, повторить стиль, или подключить внешнюю логику? В этом уроке вы узнаете, как использовать два важных приёма: Few-shot prompting и Tool Use.
Представьте, что вы учитесь писать письма — проще, если перед глазами есть примеры. Модель тоже "учится" от примеров. А если письмо нужно сгенерировать на основе данных или после расчётов — модель может использовать внешние инструменты (от Python до API).
❓ Что вы узнаете в рамках статьи
- Что такое few-shot prompting и зачем нужны примеры
- Как использовать шаблоны и демонстрации в промптах
- Что такое tool use и как он расширяет возможности модели
- Как подключать внешние действия: код, API, калькулятор
- Как писать agnostic-промпты (независимые от модели и инструмента)
📓 Ключевые термины
- Few-shot Prompt - Промпт, содержащий 1-3 примера правильного ввода/вывода
- Tool Use - Использование внешних инструментов (например, Python, API, калькулятор)
- Agnostic Prompt - Промпт, независимый от конкретной модели или интерфейса
- Function calling - Механизм в API, позволяющий LLM вызывать заданные функции
🔹 Few-shot prompting: учим на примерах
В обычной ситуации вы просто формулируете задание и надеетесь, что модель поймёт, что и как нужно сделать. Но большие языковые модели — не маги. Они действуют по вероятности, на основе похожих паттернов. А значит, чем яснее вы покажете формат, тем точнее будет результат.
Few-shot prompting — это способ дать модели 1–3 хороших примера, прежде чем попросить сгенерировать новый. Это как показать образец, чтобы было понятно, в каком стиле и структуре писать.
📌 Пример из практики
Представим, что вы хотите, чтобы модель переводила фразы с русского на английский.
Если просто написать:
Переведи: «Мы готовим обед»
Модель может справиться — а может и не угадать нужное время, стиль, или начнёт объяснять перевод, вместо того чтобы просто его дать.
А если использовать few-shot:
User: Переведи: "Я иду в школу"
Bot: I am going to school.
User: Переведи: "Она читает книгу"
Bot: She is reading a book.
User: Переведи: "Мы готовим обед"
Bot:
Теперь у неё есть контекст и структура. Она видит, каков формат, какие времена используются, как строятся ответы — и с высокой вероятностью продолжит в том же духе.
📎 Аналогия: ученик по образцу
Это как если вы даёте школьнику домашнее задание по математике. В одном случае — просто задачу. В другом — две похожих решённых задачи и ещё одну — на самостоятельное выполнение.
Без примеров:
«Реши: 3 × (2 + 5)»
С примерами:
1. 2 × (1 + 4) = 10
2. 5 × (3 + 2) = 25
3. 3 × (2 + 5) = ?
Во втором случае ученик быстрее поймёт логику — и решит правильно.
🛠 Где это особенно полезно
Few-shot prompting работает отлично:
- при генерации однородных структур, как email, уведомления, посты;
- при переводе — особенно между разными стилями (формальный ↔ разговорный);
- при анализе данных — например, извлечении сущностей, классификации, составлении резюме;
- при создании кода — если нужно следовать шаблону (например, React-компонент или SQL-запрос с пояснением);
- при заполнении анкет, генерации сценариев, карточек, форм.
💡 Что важно помнить
Few-shot — это не просто показать пару примеров. Нужно:
- Сделать их максимально похожими по стилю на ожидаемый результат;
- Выбрать репрезентативные (лучшие) кейсы;
- Убедиться, что структура понятна и логично продолжается.
📎 Аналогия: вы не просто даёте человеку шаблон резюме, а даёте пример классного резюме, максимально близкого по профилю. Тогда он и своё составит лучше.
🔹 Tool Use: сначала подумай, потом сделай
Обычно языковые модели дают ответы "из головы" — то есть на основе накопленных знаний. Но что, если нужно посчитать, обратиться к базе, сделать запрос в API или выполнить код? Тут на помощь приходит подход Tool Use — использование внешних инструментов вместе с reasoning.
🧠 Что это такое
Tool Use — это когда модель сначала размышляет, а затем делает действие: вызывает функцию, делает API-запрос, выполняет Python-вычисление или обращается к справочнику. После этого она анализирует результат и формулирует окончательный ответ.
📎 Аналогия: Вы спрашиваете ассистента:
«А сколько это в евро?» Он не называет цифру наугад, а сначала открывает сайт с курсом, считает в калькуляторе — и потом говорит вам результат.
📌 Примеры
Простой reasoning (только размышления):
Вопрос: Сколько секунд в 3 часах?
Модель:
- 1 час = 3600 секунд
- 3 часа = 3 * 3600 = 10 800
Ответ: 10 800 секунд
Здесь модель сама сделала расчёт. Но если задача сложнее — лучше использовать Tool.
С reasoning + tool:
Reason: Нужно сделать расчёт
Act: run_python("3 * 3600") → 10800
Answer: 10 800 секунд
Теперь у нас есть объяснение, реальный вызов функции и надёжный результат.
🧪 Где это применимо
Tool Use особенно полезен:
- когда нужна точность (финансы, время, расстояние);
- когда данные могут меняться (например, курс валют или погода);
- при взаимодействии с реальным миром: API, базы данных, сервисы;
- при выполнении кода — например, в Python или SQL.
📎 Аналогия: Это как если бы у вас был аналитик, который не просто высказывает мнение, а ещё и делает расчёты в Excel, проверяет данные или запрашивает нужную информацию в CRM.
🔧 Что используется под капотом
Всё зависит от платформы. Например:
- в ChatGPT — встроенные Tools (например, Python-обработчик или Browse);
- в LangChain — цепочки действий с вызовами внешних функций;
- в Prompt Engineering UI — возможность прописывать action-подсказки, которые триггерят вызовы.
💡 Зачем это нужно
Tool Use соединяет гибкость LLM и надёжность инструментов:
- Модель не фантазирует, а проверяет данные
- Вы можете отследить каждый шаг: reasoning → action → результат
- Легче находить и исправлять ошибки
📎 Аналогия: Это как если бы модель сначала подумала, потом “пошла посчитала”, а потом вернулась с результатом — объяснив всё по дороге.
🔹 Агностические промпты: пишем независимо от модели
Когда вы создаёте промпт для одной конкретной модели — например, только для ChatGPT — вы можете позволить себе обращаться напрямую: “Ты — ChatGPT, ответь как эксперт”. Но в реальной работе, особенно если вы хотите использовать один и тот же шаблон в разных системах (Gemini, Claude, Mistral, LLaMA и т.д.), важно писать агностично — то есть независимо от конкретной реализации.
🧠 Что такое agnostic-промпт
Агностический (agnostic) промпт — это универсальный запрос, не зависящий от названия модели, интерфейса или специфики платформы. Он фокусируется на задаче, а не на контексте, в котором она выполняется.
📎 Аналогия: Представьте, что вы просите человека нарезать яблоко. Агностично — это “Пожалуйста, нарежь яблоко дольками”. Неагностично — это “Возьми нож на кухне третьей полки слева, встань у раковины, повернись к плите и начни резать”. Второй вариант привязан к контексту, первый — понятен в любом доме.
📌 Как писать агностично
Вот несколько рекомендаций, чтобы ваш промпт работал в разных LLM:
1. Не упоминайте модель
❌ Плохо:
Ты — ChatGPT. Ответь как эксперт в маркетинге.
✅ Лучше:
Дай краткий экспертный совет по маркетингу для B2C-продукта.
2. Избегайте ссылок на интерфейс
❌ Плохо:
Нажми кнопку “продолжить” и сгенерируй следующее сообщение.
✅ Лучше:
Продолжи сообщение в том же стиле, начиная с фразы...
3. Ставьте задачу напрямую
❌ Плохо:
Ты работаешь в Google Sheets, покажи формулу...
✅ Лучше:
Построй формулу для вычисления среднего чека по каждому каналу продаж.
🧪 Где это особенно важно
Агностические промпты особенно нужны:
- 🛠 В системах, где одна задача отправляется в разные LLM
- 🧩 При создании шаблонов, ботов или UI-ассистентов
- 🔁 При переносе сценариев между платформами (например, из Notion AI в ChatGPT)
- 📦 В no-code/low-code решениях, где модели могут быть заменяемыми
💡 Почему это выгодно
Когда вы пишете промпт агностично:
- Вы не привязаны к конкретному провайдеру
- Ваши сценарии легче масштабировать
- Вы снижаете технический долг: не нужно переделывать под новую модель
- Ваш промпт проще интерпретируется: его фокус — задача, а не среда
📎 Аналогия: Вы не говорите “заварите Lipton в этой конкретной кружке”, а говорите “заварите чёрный чай” — и это работает и в кафе, и дома, и в офисе.
❌ Наиболее частые ошибки
- Слишком мало примеров → модель не улавливает формат
- Примеры противоречат инструкции
- Модель "галлюцинирует" действия, если tool use не задан
- Смешение стилей и форматов в одном промпте
- Указания на UI, которых нет в целевой среде
🤔 Частые вопросы
Нужно ли всегда давать примеры? Нет. Но при сложном формате — это значительно повышает точность.
Можно ли использовать tool use без кода? Да, можно имитировать: "вообрази, что ты запустил..." — модель всё равно строит reasoning.
Как сделать tool use в ChatGPT? Включить Code Interpreter или использовать function calling в API.
✅ Итоги
Сегодня вы познакомились с двумя мощными подходами:
- Few-shot prompting — помогает модели "понять по примерам"
- Tool Use — даёт модели доступ к вычислениям, базам и API
Они расширяют обычное взаимодействие с LLM, делая генерацию более точной, объяснимой и контролируемой. Вы сможете использовать эти подходы в собственных промптах, шаблонах, пайплайнах — и сделать свои решения гораздо гибче.