Головна / Статті

Запит, Контекст, Механізм, Цикл: Чотири шари, що лежать в основі AI-агента

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

Видавець: REACTAPP.TOP7 хв читання1650 слів

Джерела: Prompt, Context, Harness, Loop: An Agent’s Anatomy

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

Перший рівень: запит

Одиницею роботи тут є один вхідний даний. Модель нічого не пам’ятає з періоду до виклику, тому запит має містити все необхідне: роль, контекст, інструкції, приклади та формат результату — усе це має бути об’єднано в одне повідомлення. Коли результати не виправдовують очікувань, справа полягає у визначенні того, який елемент не спрацював, а не у переписуванні всього з нуля.

Інструментарій є досить різноманітним:

  • Запити типу „zero-shot“ формулюються без прикладів, сподіваючись, що модель зрозуміє їх.
  • Запити типу „few-shot“ надають два-три приклади вхідних та вихідних даних, і модель шукає відповідні шаблони серед них.
  • Метод „Chain-of-thought“ змушує модель спочатку міркувати крок за кроком, що може суттєво допомогти при розв’язанні математичних, логічних та багатокрокових задач.
  • Запити з визначенням ролі, наприклад „ви — старший редактор“ чи „ви — скептичний рецензент“, змінюють тон та рівень деталізації відповіді.
  • Мета-інструкції та самоконсистентність ґрунтуються на цих принципах для складніших завдань.
  • Усе це зводиться до ясних інструкцій, схожих на зрозумілий електронний лист, і вони відповідають на одне конкретне запитання: які слова слід використати зараз для цього запиту? Ретельно написана інструкція для підсумку дослідження може дати чіткий результат із зрозумілою структурою без зайвого тексту.

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

    Чому б просто не продовжувати створювати кращі запити? Тому що інженерія запитів була створена для одноразових завдань: запитати, отримати відповідь, все готово. Як тільки метою стає процес, який виконується кількома кроками, пам’ятає події, використовує інструменти або працює без необхідності, щоб людина вводила кожну інструкцію, вправний речення більше не є вузьким місцем. Вузьким місцем стає все навколо нього. Значення запитів не зникає. Вони просто більше не є єдиним фактором у всій справі.

    Другий рівень: контекст

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

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

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

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

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

    Третій рівень: кріплення

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

    • Збір: зібрати все необхідне.
    • Дія: запустити модель, викликати інструменти чи підагентів.
    • Перевірка: перевірити результат за допомогою тестів чи оцінювача.

    У разі збою весь цикл повторюється з оновленим контекстом. Саме ця різниця відрізняє виклик API від запуску агента.

    Корисна формула: агент = модель + пристрій кріплення. Усе, що оточує модель, вважається пристроєм кріплення – це код, конфігурація та логіка виконання. Це включає інструменти, які можна викликати, пам’ять, яку можна читати та записувати, обмеження на дозволені дії, механізм координації, який вибирає наступний крок, та стан, який зберігається після завершення сеансу.

    Саме це слово підходить. Кінь є потужним, але без пристрою кріплення він не може працювати в полі, адже ремені та вуздечка спрямовують його первинну силу у корисну роботу. Замінімо кіння на модель: вона має інтелект, але без інструментів, пам’яті, обмежень та механізмів координації цей інтелект не має куди рухатися.

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

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

    Четвертий рівень: цикл

    Модель з інструментами та пам’яттю здається вершиною. Що ще може знадобитися агенту? Пульс. Інженерія циклів — це найновіший рівень, який ще формується під час його створення.

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

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

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

    Що може піти не так? Ланцюг, який діє без нагляду, також може повторювати ту саму помилку ще швидше, і деякий час ніхто цього не помічає. Тому ретельні розробки вбудовують у ланцюг механізм оцінки: контрольну точку, іноді другу модель, яка виступає у ролі судді, яка оцінює результат за певними критеріями. Лише після проходження цих критеріїв ланцюг може вважати завдання виконаним. Як тільки за кожним кроком більше ніхто не стежить, перевірка перестає бути необов’язковою та стає частиною завдань ланцюга.

    Усі чотири разом

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

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