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

Інтерфейс чату чи цикл агента? Як вирішити, що потрібно вашій функції ШІ

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

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

Джерела: Your AI Chatbot Can Talk — But Can It Actually Take Action?

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

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

Два системи за одним полем введення тексту

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

Друга система отримує те саме речення, але виконує зовсім іншу дію. Вона запитує актуальні дані про продукти через підключені інструменти, порівнює характеристики, перевіряє кандидатів на відповідність вашим вимогам, і якщо перша група не підходить, змінює свої критерії пошуку та пробує знову. Вікно чату залишається ідентичним. Різниця полягає у діях, які відбуваються після натискання клавіші Enter.

Ось центральне питання цього посібника: у який момент система, яка розмовляє, перетворюється на систему, яка діє?

Для чого створюється чат-бот

Чат-бот — це програмне забезпечення, основним завданням якого є ведення розмови. Інтеракція має просту структуру:

  • користувач надсилає повідомлення
  • система його обробляє
  • вона генерує або отримує відповідь та повертає керування користувачеві

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

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

Боти на основі правил та чати з використанням великих мовних моделей

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

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

Що робить систему агентом

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

Спрощена структура роботи агента виглядає так:

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

    Запит на поїздку, який обробляють двома способами

    Якщо попросити чат-бота допомогти спланувати три дні в Дубаї, він, ймовірно, створить чіткий маршрут: Бурдж-Халіфа та Dubai Mall — у перший день, Старий Дубай — у другий, Марина та сафарі в пустелі — у третій. Це корисно, але все практичне все одно залежить від вас: готелі, ціни, наявність місць, рейси, години роботи та остаточний графік.

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

    Коротко кажучи: чат-бот обговорює завдання, тоді як агент призначений для його виконання.

    Відповідь проти дії

    Якщо вам потрібна однорядкова модель мислення, використайте ці два формати:

    • чат-бот: повідомлення, потім відповідь
    • агент: завдання, потім рішення, дія, спостереження та наступна дія — цей процес повторюється до завершення

    Перший формат орієнтований на розмову; другий — на результат.

    Чому інтерфейс нічого не повідомляє

    Агент також може знаходитися за чат-вікном, і саме тому зовнішній вигляд вводить у оману. Уявіть два додатки, які обидва показують однакове привітання та обидва отримують запит „знайти останні наукові статті про агентів ШІ“.

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

    Хто керує процесом

    У типовій сесії з чат-ботом людина є керівником. Ви просите про статті з машинного навчання — отримуєте пропозиції. Прошу порівняння — отримуєте його. Прошу інформацію про обмеження — отримуєте її. Кожен перехід від однієї стадії до наступної — це рішення, яке ви приймаєте та вводите.

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

    Елементи, які перетворюють модель на агента

    Інструменти

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

    • інструмент пошуку актуальної інформації
    • інструмент бази даних для зберігання записів
    • інструмент виконання коду, наприклад Python-сандбокс, для аналізу та обчислень
    • інструмент для роботи з файлами з метою читання документів
    • інструмент календаря для перевірки розкладу
    • інструмент електронної пошти, який використовується лише за наявності відповідних дозволів
    • довільні API для взаємодії з іншим програмним забезпеченням

    Завдання моделі — визначити, який з цих інструментів потрібен на поточному етапі. Для команд, що працюють з JavaScript та TypeScript, тут використовуються такі концепції, як виклик функцій та аргументи інструментів, перевірені за схемою; приклади в обмежених агентних циклів для використання інструментів LLM у TypeScript демонструють, як це виглядає у коді.

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

    Планування та виконання

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

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

    Спостереження та цикл зворотного зв’язку

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

    Цей цикл, який часто описується як «думати, діяти, спостерігати, коригувати», і є тим, що відрізняє замкнений цикл від послідовності дій. Без спостереження система просто використовує інструменти у фіксованому порядку та сподівається на кращий результат.

    Пам’ять та стан завдання

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

    Спектр, а не перемикач

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

    1. Базовий чат-бот. Повідомлення користувача надсилається до моделі, і повертається відповідь.
    2. Чат-бот із використанням інструментів. Модель може викликати інструмент, наприклад пошук, перед тим як відповісти, але процес все одно складається з однієї запиту та однієї відповіді.
    3. Агент. Модель отримує завдання, планує дії, обирає інструмент, діє, спостерігає, знову приймає рішення та повторює цей процес, поки завдання не буде виконане.

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

    Чи робить один виклик інструменту агента?

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

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

    Агенти без будь-якого вікна чату

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

    Вибір між чат-ботом та агентом

    Є спокуса розглядати „агента“ як покращену версію „чат-бота“. Таке уявлення змушує команди перестраховуватися у розробці. Правильне запитання — що насправді потребує ваше застосунок.

    Коли чат-бот є кращим вибором

    Зазвичай достатньо прямої відповіді моделі, коли основною функцією є спілкування чи створення контенту, наприклад:

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

    Коли завдання вимагає агента

    Агент починає проявляти складність тоді, коли завдання включає кілька з наступних елементів:

    • багато взаємозалежних кроків
    • вибір між інструментами
    • взаємодія з зовнішніми системами
    • рішення, які приймаються протягом виконання
    • повторювані дії
    • перевірка результатів
    • зміна напрямку дій на основі цих результатів
    • збереження стану завдання між кроками

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

    Ціна автономії

    Більша автономія означає більше способів зазнати невдачі. Агент може обрати неправильний інструмент, неправильно інтерпретувати результат, повторювати вже виконану роботу, застрягти у циклі, збільшити витрати на API, працювати набагато довше, ніж це можливо за один виклик, або просто прийняти погане рішення за кілька кроків до того, як хтось це помітить.

    Саме тому агентам потрібна інженерія, яку чат-боти часто можуть пропустити:

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

    Якщо простіша система надійно вирішує проблему, зазвичай це краща система.

    Бачення різниці від початку до кінця

    Два контрольні потоки, розміщені поруч, узагальнюють усе вищесказане.

    Чат-бот: повідомлення користувача розуміється, генерується відповідь, і контроль повертається до користувача.

    Агент: мета користувача розуміється, формується план, обирається інструмент, виконується дія, спостерігається результат, план коригується, слідує наступна дія, і цикл закінчується при досягненні мети.

    Останній приклад показує, як обидва підходи можуть бути корисними для однакового запиту. Хтось каже, що хоче навчитися працювати з агентним ШІ. Чат-бот може запропонувати план навчання, список тем, ресурси для навчання та зрозумілі пояснення. Більш розвинений навчальний агент може оцінити те, що вже знає учень, створити план навчання, провести урок, призначити вправу, оцінити відповідь, виявити слабкі місця, адаптувати наступний урок, відстежувати прогрес з часом та продовжувати цей цикл. Перший допомагає учневі зрозуміти матеріал; другий бере участь у самому процесі навчання. Вони вирішують різні проблеми.

    Ключові висновки

    • Чат-бот організований навколо розмови (вхідне повідомлення, вихідна відповідь); агент — навколо мети (планування, дія, спостереження, корекція, завершення).
    • Інтерфейс також не є показником у будь-якому з випадків: агенти можуть працювати за чат-вікном, а можуть функціонувати без будь-якого чат-вікна.
  • Самі лише виклики інструментів не створюють агента; вирішальним фактором є те, чи залежить наступний крок від результату попереднього.
  • Пам’ять, планування та інструменти мають значення для обох типів систем, але агенти залежать від виконання та зворотного зв’язку, а не лише від створення плану.
  • Почніть з найпростішої конструкції, яка надійно вирішує завдання, і додавайте автономію лише з необхідними механізмами контролю: дозволами, перевіркою, логуванням, умовами зупинки та схваленням людини.