Глава 12

Храните prompts как код и продуктовую конфигурацию

Хороший prompt бесполезен, если живёт в чьей-то голове и правится на глаз. Production-prompt должен иметь владельца, версию, совместимую модель, dataset, release gate и rollback. Правка текста в дашборде без связи с кодом убивает воспроизводимость.

На практике это обычная структура репозитория: инструкции, схемы, примеры и evals рядом с кодом.

TypeScript
prompts/
  support/
    system.ts
    output-schema.ts
    examples.yaml
    evals/
      faq.jsonl
      refunds.jsonl
      escalation.jsonl

export const SUPPORT_PROMPT = {
  id: "support-v17",
  checkedAt: "2026-07-31",
  compatibleModels: ["pinned-provider-snapshot"],
  retrievalContract: "support-kb-v8",
  toolRegistry: "support-tools-v4",
  evalBaseline: "support-suite-2026-07-29"
};

Два свойства такой раскладки стоит держать в голове осознанно.

  • Cache-friendly. Стабильные инструкции, примеры и определения tools идут в повторяемом prefix, а переменные данные - позже. Так работает prompt caching.
  • Rollback-friendly. Версия prompt, snapshot модели и версия retrieval пишутся в trace, и старую комбинацию можно вернуть целиком.

И одна свежая деталь, которую легко пропустить.

Актуальная деталь OpenAI. На дату проверки документация сообщает: reusable prompt objects начали выводить из употребления 3 июня 2026 года, а endpoint v1/prompts запланирован к отключению 30 ноября 2026 года. Для новой разработки OpenAI рекомендует версионируемые code-managed helpers. Перед внедрением перепроверьте timeline на странице deprecations.

Ссылки