Промпт-патерни — Chain-of-Thought, Tree of Thoughts, ReAct, Self-Consistency, Role Prompting — стали майже обов'язковим словником AI-білдера. Курси, репозиторії та блоги просувають їх як universal best practice. Але є проблема: ніхто майже не говорить про те, коли ці патерни реально шкодять.

Справа не в тому, що патерни погані. Вони ефективні в конкретному контексті. Проблема починається тоді, коли розробник застосовує структуровані техніки по інерції — просто тому, що «так правильно». Результат: дорожчі токени, вповільнені відповіді і — парадокс — гірша якість виходу.

Ця стаття — не про те, як використовувати патерни. Це про те, коли варто відкласти їх убік.

Що таке промпт-патерни і звідки ця проблема

Промпт-патерни — це структуровані шаблони взаємодії з LLM, що покращують якість відповіді для певного класу задач. Chain-of-Thought змушує модель «думати вголос». ReAct поєднує міркування з діями. Self-Consistency запускає кілька паралельних генерацій і вибирає найбільш узгоджений результат.

Більшість із них розроблені під академічні бенчмарки або дуже специфічні виробничі задачі. Але в AI-спільноті вони перетворились на щось схоже на карго-культ: «хочеш кращого результату — додай CoT». Це не завжди так, і розрив між теорією та практикою тут особливо відчутний.

Коли промпт-патерни стають зайвим overhead

1. Прості, однозначні задачі

Якщо потрібно витягнути дату з тексту, перекласти речення або згенерувати slug для заголовку — жодного Chain-of-Thought не потрібно. Модель і так впорається з першої спроби. Додаткова структура лише збільшує кількість токенів і уповільнює відповідь без жодної користі.

Правило: якщо задача вирішується коректно у 95%+ випадків із прямим запитом — патерн не потрібен.

2. Коли latency критична

Self-Consistency і Tree of Thoughts за визначенням генерують кілька відповідей паралельно або послідовно. У realtime-продуктах — чат-боти, live-автозаповнення, голосові інтерфейси — це неприйнятно. Затримка у 3–5 секунд замість 0.8 секунди — це не «краща якість», це зруйнований UX.

3. Задачі з чітким детермінованим виходом

Коли відповідь або правильна, або ні — патерни, що заохочують «роздуми», можуть навпаки збільшити варіабельність. Якщо Claude або GPT-4o мають вибрати правильну відповідь на точний фактичний запит — додавання «think step by step» іноді дає гірший результат: модель починає переконувати саму себе в неправильному напрямку.

4. Коли базова модель недостатньо потужна

Це контрінтуїтивно, але правда: на компактних моделях — Llama 3.1 8B, Mistral 7B, Haiku-клас — деякі патерни не дають того самого ефекту, що на великих. Chain-of-Thought може ввести модель у петлю або породити hallucinated reasoning. Якщо модель не має достатньої потужності для метапізнання — краще давати прямі, чіткі інструкції без додаткових шарів абстракції.

5. Коли промпт вже оптимізований і протестований

У production-системах є спокуса «покращити» промпт, додавши новий патерн після чергової статті. Але якщо у вас є baseline з evals — не змінюйте нічого без A/B тесту. Патерн, що збільшує якість на синтетичному бенчмарку, може знизити точність у вашому конкретному use-case. Evals вирішують — не інтуїція.

Практичні сигнали, що ви переускладнюєте промпти

Є кілька чітких ознак, що ви зловжили патернами:

Якщо хоча б два з цих пунктів стосуються вас — час провести ревізію промпт-стеку. Починайте з найпростішого: приберіть патерн і перевірте, чи погіршився результат. Найчастіше — ні.

Висновок AiiN

Промпт-патерни — це інструменти, а не правила. Chain-of-Thought чудово працює для математичних міркувань і багатокрокових логічних задач. ReAct незамінний для агентних систем із зовнішніми інструментами. Self-Consistency виправдана, коли точність важливіша за швидкість відповіді.

Але найкращий промпт-інженер — не той, хто знає всі патерни. Той, хто знає, коли їх не застосовувати.

Перед додаванням будь-якого патерну запитайте себе: ця задача дійсно вимагає додаткової структури, чи я роблю це за звичкою? Часто найелегантніший промпт — це просте, пряме запитання без жодних шаблонів. Мінімалізм у промптингу — це не лінь, це зрілість.