Основы

Промпт-инжиниринг для разработчиков

Промпт-инжиниринг для разработчиков: пишите промпты для кода, дающие корректные изменения, и относитесь к промптам в продакшене как к коду — с версиями, тестами и ревью.

  • Автор: Vijayraj Palanisamy
  • Обновлено
  • 3 мин чтения

Перевод английского оригинала. Код, промпты и вывод моделей оставлены на английском.

Разработчики встречаются с промптами в двух местах: когда просят ИИ-ассистента изменить код и когда пишут промпты, которые поставляются внутри приложения. Навыки пересекаются, но сбои выглядят по-разному. Это руководство охватывает оба случая.

Часть 1. Промпты для ИИ-ассистентов по программированию

Пишите спецификацию, а не пожелание

Ассистенту по программированию, получившему одну фразу, приходится самому выводить объём работы, ограничения и смысл слова «готово». Дайте ему то же, что вы написали бы в хорошей заявке.

fix login issue and make google login work and don't break anything
## Objective
Fix the login failure and make Google login work.

## Constraints
- Do not change the existing email and password flow.
- Keep the public API of AuthService unchanged.

## Edge cases
- Expired or revoked OAuth tokens.
- A Google account whose email already exists as a password account.

## Testing
- Add unit tests for the token exchange and the account-linking path.

## Acceptance criteria
- Existing auth tests pass. New tests cover both edge cases.

## Expected output
A summary of the cause, then the changed files as diffs.

Второй промпт пишется на минуту дольше и экономит один круг «я имел в виду не это». Расширение PromptFlowEngine для VS Code создаёт такую структуру по однострочной задаче и нужным файлам.

Давайте нужный код, а не весь код

Контекстные окна велики, но внимание не безгранично. Включайте файлы, которых касается изменение, интерфейсы, которые оно должно соблюдать, и один пример соглашений проекта. Не включайте сгенерированные файлы, lock-файлы и посторонние модули.

Говорите, что менять нельзя

Ассистенты оптимизируют под запрос. Если важны обратная совместимость, публичный интерфейс или производительность, скажите об этом. «Ничего не ломай» — не ограничение, которое модель может проверить; «оставь схему ответа GET /orders без изменений» — может.

Просите план для крупных изменений

Для всего, что больше небольшой правки, сначала попросите план, проверьте его, а затем попросите реализацию. Это цепочка промптов, применённая к коду, и она выявляет неверный подход до того, как написана хоть одна строка.

Проверяйте то, что вернулось

Прочитайте diff. Запустите тесты. Для больших изменений напишите промпт для ревью, который передаёт модели исходную задачу и изменённые файлы, и попросите перечислить, где изменение не соответствует критериям приёмки.

Часть 2. Промпты внутри вашего приложения

Храните промпты под контролем версий

Промпт — часть поведения вашей программы. Храните его в файле, проверяйте изменения в pull request и помечайте версии тегами. См. управление промптами и версионирование.

Используйте шаблоны с переменными в разделителях

Никогда не склеивайте пользовательский ввод с инструкциями. Используйте именованные переменные и оборачивайте каждую в теги.

PROMPT = """Classify the support ticket in the tags as billing, bug, or other.
Return only the label.

<ticket>
{ticket}
</ticket>"""

Требуйте структурированный вывод и проверяйте его

Если ваш код разбирает ответ, запрашивайте JSON по схеме, используйте функцию структурированного вывода у провайдера, где она есть, и проверяйте результат перед использованием. См. промпты для структурированного вывода.

Планируйте бюджет токенов

Знайте, сколько токенов занимает ваш фиксированный промпт, ведь вы платите за него при каждом вызове. Считайте настоящим токенизатором модели, а не оценкой по символам. См. оптимизацию токенов.

Тестируйте промпты в CI

Статические проверки ловят регрессии, для которых модель не нужна: удалённый формат вывода, продублированный раздел, число токенов сверх бюджета, закоммиченный ключ API. Проверка промптов в CI запускает их в каждом pull request.

- run: promptflow check "prompts/**/*.md" --min-score 70 --max-tokens 1500

Считайте вывод модели недоверенным

Вывод может быть неверным, и им может управлять текст, внедрённый во ввод. Не передавайте его в оболочку, SQL-запрос или HTML-страницу без той же проверки, что и пользовательский ввод. См. безопасность промптов.

Вызов движка из кода

Те же проверки доступны по HTTP без ключа, что удобно для быстрого интеграционного теста или внутреннего инструмента:

curl -s https://promptflowengine.com/api/v1/analyze \
  -H 'content-type: application/json' \
  -d '{"prompt":"Write something about our product."}'

Эндпоинты см. в HTTP API, а подключить его к агенту для программирования можно через MCP.

Применить на практике

Попробуйте: расширение для vs code

Оптимизация промптов PromptFlowEngine прямо в вашем процессе разработки. Бесплатно, детерминированно и без аккаунта.

Связанные инструменты PromptFlowEngine

Ещё по теме «основы»

Все руководства по промпт-инжинирингу