Головна / Статті / Промпти, агенти й наступний щабель драбини абстракцій

Промпти, агенти й наступний щабель драбини абстракцій

Машинний код поступився мовам високого рівня, а ШІ додає шар намірів. Розбираємося, як промпти та агенти змінюють роботу інженерів і які навички й далі мають вагу.

1096 слів

Раз на кілька десятиліть програмування піднімається на щабель вище. Спершу був голий машинний код: двійкові інструкції, які процесор виконує безпосередньо. Асемблер зробив ці інструкції читабельними. Потім C++, Java, Python і JavaScript дали змогу описувати логіку, взагалі не думаючи про залізо. ШІ схожий на наступний щабель, і йому варто дати назву: шар намірів. Тут ви звичайною мовою кажете, чого хочете, а система перетворює це на код, з'єднує довкола нього всі частини й дедалі частіше бере на себе й супутню роботу. Завдання розробника зміщується від набирання коду до формулювання наміру.

Драбина абстракцій на прикладі однієї вимоги

Візьмімо просту задачу: прочитати замовлення клієнтів і скласти їхню суму. На найнижчому рівні це означає жонглювати регістрами, адресами пам'яті та інструкціями процесора. У мові високого рівня все стискається до одного рядка:

total = sum(order.amount for order in orders)

У цьому рядку нічого не сказано про те, як виділяється пам'ять чи як процесор виконує додавання. Усе це беруть на себе мова та її середовище виконання. У цьому й суть абстракції: ви описуєте, що хочете отримати, і пропускаєте більшу частину того, як. ШІ просуває ту саму ідею ще на крок.

Описувати результат, а не код

Уявіть, що ви просите агента для програмування зробити дашборд замовлень клієнтів: зберігання в PostgreSQL, бекенд на Python, автентифікація користувачів, REST-ендпоінти, тести й документація. Справжні знання програмування вам, можливо, ще знадобляться. Але ви вже не створюєте вручну кожен файл, клас, ендпоінт, запит і тест. Ви описуєте результат, а ШІ пропонує реалізацію.

Це справді інший спосіб працювати. Ви оперуєте намірами, обмеженнями, архітектурою та результатами. Тому промптинг і важливий, і тому він більше, ніж балачки з ботом. Добрий промпт чітко передає вимоги, дає контекст, задає обмеження, визначає очікуваний результат, враховує граничні випадки й перевіряє підсумок. Зверніть увагу, наскільки це схоже на розробку ПЗ.

Агенти йдуть далі

Промпти — лише початок. Серйозніший зсув приносить агентний ШІ. У традиційній програмі ви прописуєте кожен крок:

Get customer data
→ Validate data
→ Calculate risk
→ Store result
→ Send notification

Усе задано явно. Натомість агент може отримати мету на кшталт такої: переглянути ці заявки клієнтів, позначити ті, що потребують додаткової перевірки, оновити CRM і сповістити потрібну команду. Він сам обирає послідовність дій, користується підключеними інструментами, вивчає дані, ухвалює рішення в заданих межах і видає результат.

Тож змінюються й питання, які ставить собі інженер. Раніше це було «як закодувати кожен крок». Тепер — чого має досягти агент, якими інструментами він може користуватися, які правила його обмежують і як ви переконаєтеся, що він поводився правильно. Це значно вищий рівень абстракції.

Знову драбиною, тепер із функцією рахунків

Візьмімо щось більше — модуль рахунків. На найнижчому рівні ви мислите майже на рівні заліза, де важать пам'ять, регістри й інструкції. У мові високого рівня ви пишете:

def calculate_invoice(items):
    return sum(item.price * item.quantity for item in items)

Мова ховає всю механіку. На рівні намірів ви скажете приблизно так: збери модуль рахунків, який рахує податки, застосовує клієнтські знижки, перевіряє залишки на складі, зберігає рахунок, формує PDF і відкриває API, за наявними стандартами команди й з автотестами. Значну частину реалізації ШІ може зробити сам. Ваша робота піднімається на рівень вище: від написання окремих інструкцій до опису того, як має поводитися система.

Програмування від цього не зникає. Радше навпаки. Вам і далі треба розумітися на архітектурі, базах даних, API, безпеці, тестуванні, продуктивності, налагодженні та самому бізнесі. Змінюється інше: більше деталей реалізації можна делегувати.

Це справді новий рівень програмування?

Тут варто бути обережним. Формально промптинг не є новим мовним рівнем, як машинний код чи мови високого рівня. Промпт не замінює компілятор, мову чи архітектуру. Але концептуально відбувається щось справжнє. Мови абстрагують залізо, фреймворки абстрагують складність програмування, моделі можуть абстрагувати частини реалізації, а агенти — цілі ланцюжки дій.

Цю прогресію можна уявити так: машинні інструкції, потім асемблер, потім мови високого рівня, потім розробка за допомогою ШІ, потім агентні системи. Що далі, то більше ви виражаєте намір, а не реалізацію. У цьому й справжнє значення змін.

Інструментів стає більше

Усе це не означає, що час кидати вчити Python, Java чи JavaScript. Основи лишаються цінними, а може, стануть ще важливішими: хтось же має переглядати й перевіряти те, що видає ШІ. Але самого лише традиційного програмування може виявитися замало. Інженерам майбутнього, найімовірніше, доведеться розумітися на таких речах:

  • Основи програмування
  • Промпт-інжиніринг і контекст-інжиніринг
  • Що моделі ШІ вміють, а чого ні
  • Виклик інструментів і API
  • RAG і системи знань
  • Агентні воркфлоу
  • Оцінювання й тестування результатів ШІ
  • Безпека та врядування
  • Системи з людиною в контурі

Перевагу матимуть ті, хто поєднує розробку ПЗ, розуміння того, як міркує ШІ, і знання бізнесу.

Більше інженерії, менше набирання

Не варто сприймати це як «менше програмування». Очікуйте більше інженерії й менше набирання коду. Той, хто раніше годинами писав шаблонний код, витратить цей час на формулювання вимог, проєктування архітектури, задання обмежень, оцінку рішень від ШІ та покращення поведінки системи.

Змінюється й питання на співбесіді. Замість «чи вмієте ви написати ось цей шматок коду» воно звучить як «чи вмієте ви домогтися, щоб ШІ-система надійно побудувала й підтримувала рішення». Це зовсім інша навичка.

Десятиліттями ми намагалися зробити мови програмування зручнішими для людей. ШІ, можливо, наступний крок, що наближає розробку ПЗ до простого викладу того, чого ви хочете. Інженерів завтрашнього дня, можливо, оцінюватимуть не так за обсягом написаного коду, як за тим, наскільки добре вони планують, формулюють задачі, координують і перевіряють роботу розумних систем. Код нікуди не подівся. Просто ви, можливо, працюєте на рівень вище за нього.