AI-агенти
AI-агент — це цикл, у якому модель вирішує, що робити далі: викликає інструмент, читає результат і вирішує знову, доки не визнає задачу виконаною. Це одне проєктне рішення — керування, перенесене з вашого коду в модель, — купує здатність робити задачі, яких не можна описати заздалегідь, і коштує детермінованості, передбачуваного рахунку й обмеженого радіуса ураження. Сторінка починається з рішення про те, чи потрібен він вам узагалі; далі — цикл і арифметика, що ним керує, поверхня інструментів, режими збою, які трапляються лише в циклі, запобіжники й чеклист готовності на девʼятнадцять рядків, як оцінювати траєкторію, і пʼять задокументованих прогонів.
- Керування
- Вирішує модель
- Вартість задачі
- Наперед невідома
- Має бути обмежено
- Кроки, токени, права
Робочий процес чи агент: вирішіть це першим
Більшість систем, які називають агентами, є робочими процесами, і більшість систем, збудованих як агенти, мали б ними бути. Різниця точна й варта свідомого застосування: у робочому процесі ваш код вирішує, що станеться далі, і викликає модель на тих кроках, де потрібні мова чи судження; в агенті що станеться далі вирішує модель. Спершу таблиця рішення, бо саме вона заощаджує гроші — і бо на момент, коли цикл уже збудовано, рішення вже ухвалене за замовчуванням.
| Як виглядає задача | Будуйте | Чому |
|---|---|---|
| Кроки щоразу однакові | Робочий процес | Вартість і затримка відомі до релізу, збій вказує на один крок, і цей крок можна повторити окремо. |
| Є розгалуження, але їх можна перелічити | Робочий процес | Довгий список із розгалуженнями все одно дешевший, швидший і придатніший до налагодження за цикл, а модель можна викликати в будь-якій гілці. |
| Наступний крок залежить від того, що знайшов попередній | Агент | Єдиний чесний випадок. Розслідування інциденту, робота з незнайомою кодовою базою, дослідження, де наступне джерело береться з попередньої відповіді. |
| Робота розгалужується одразу на багато джерел | Кілька агентів | Варте складності лише тоді, коли прочитати все в одному циклі означало б забити його контекст. Інакше кожна передача губить контекст і додає кроків, на яких складатися. |
| Результат не перевірити нічим, окрім людини, яка його прочитає | Агент, лише читання | Корисний уже першого дня й не може спричинити інциденту. Права на запис заробляються по одному, коли траєкторії доводять надійність. |
| Він має тягнути все, що може спитати користувач | Поки що ні те, ні те | Випишіть двадцять речей, які користувачі справді просять. Вісімнадцять виявляться перелічуваними, а решта дві скажуть, для чого потрібен агент. |
| Він має вражати на демо | Робочий процес | Демо проходить щасливий шлях один раз у чистому середовищі. Агенти показуються краще, ніж працюють, — і це найдорожчий факт на цій сторінці. |
Цикл і арифметика, що ним керує
Механічно агент невеликий. Ви описуєте набір інструментів — кожен це назва, опис і схема параметрів — і надсилаєте їх разом із запитом користувача. Модель відповідає або текстом, або проханням викликати один з інструментів із певними аргументами. Ваш код виконує інструмент, дописує результат до розмови й викликає модель знову. Це повторюється, доки модель не відповість текстом замість виклику, або доки ви її не зупините. Ні планувальника, ні автомата станів тут немає: цикл і є архітектурою, — і саме тому збудувати його не є складною частиною.
Дві речі про цей цикл неочевидні, доки не запустиш його, і обидві є арифметикою, а не судженням. Розмова росте на кожній ітерації, бо кожен результат інструмента дописується, а надсилається все — тож дванадцятий крок несе всі одинадцять попередніх результатів, і вартість кроку зростає з ходом задачі. І точність складається донизу: для правильного підсумку правильними мають бути всі кроки, тож крок, правильний у девʼяноста пʼяти відсотках, дає десятикрокову задачу, правильну приблизно в шістдесяти.
Поверхня інструментів і є проєктом
Кожен інструмент — це надана здатність, тож надавайте найменшу кількість, достатню для задачі, і в межах прав саме цього користувача, а не сервісу. Описи — частина промпту, і модель читає їх на кожному виклику: опис, що каже, коли інструмент застосовувати не слід, запобігає більшій кількості помилок, ніж будь-яка вказівка деінде. І кожен аргумент, вироблений моделлю, — недовірений ввід: перевіряйте його власним кодом рівно так, як тіло запиту з інтернету, бо модель, що прочитала вставлену вказівку, видасть добре сформований і цілком хибний виклик.
Гранулярність — це те місце, де арифметика складання стає проєктним правилом. Віддзеркалити внутрішній API по одному ендпойнту здається нейтральним вибором, але ним не є: одна одиниця роботи перетворюється на пʼять шансів моделі обрати неправильно, а порядок, валідація й транзакція переїжджають із коду в цикл, який не можна протестувати. Інструмент create_invoice лишає одне рішення й тримає всі три там, де їм місце. Перевірка проста: чи відповідає інструмент тому, що людина назвала б задачею, а не тому, що база назвала б операцією.
Дві деталі контракту інструмента важать більше, ніж здається. Результат інструмента читає модель і на нього реагує, тож збій має повертатися явним читабельним результатом — «жоден рахунок не відповідає цьому номеру», а не винятком, який проковтнула обгортка, чи порожнім рядком, який модель прочитає як порожній список. І кожен інструмент, що змінює стан, потребує ключа ідемпотентності з перевіркою на сервері, бо повтор, тайм-аут, який усе ж спрацював, або модель, що просто викликала його двічі, — усе це звичайні події в циклі, і жодна з них не має надсилати другий лист.
Пʼять режимів збою, які існують лише в циклі
Кожен із них специфічний саме для передавання керування моделі. Жоден не трапляється в робочому процесі — і це найясніше формулювання того, чого ця передача справді коштує. А права колонка — це те, що має бути написане кодом, а не попрошене в промпті.
| Режим збою | Як виглядає | Що його стримує |
|---|---|---|
| Цикл, що не завершується | Ті самі два інструменти по черзі, і кожен результат читається як привід спробувати знову. | Жорсткий ліміт кроків і бюджет токенів, і те й те забезпечує ваш код, а не прохання в промпті. |
| Вичерпання контексту | Результати інструментів накопичуються, доки вікно заповниться, а найраніші вказівки випадуть. | Свідомо стискайте чи викидайте старі результати; повертайте посилання на великі дані, а не самі дані. |
| Упевнена хибна дія | Добре сформований виклик, що робить не те, — часто після читання вставленого тексту. | Перевірка у вашому коді, найменші привілеї для користувача й підтвердження перед усім безповоротним. |
| Подвоєні побічні ефекти | Повторений виклик надсилає той самий лист або створює той самий запис двічі. | Ключі ідемпотентності на кожному інструменті, що змінює стан, з перевіркою на сервері. |
| Некерована вартість | Одна задача тихо витрачає вп’ятдесятеро більше за типову. | Стелю витрат на задачу з перериванням плюс сповіщення за розподілом, а не за середнім. |
Що стоїть між моделлю й наслідком
Починайте кожного агента лише з читанням. Агент, що вміє шукати, діставати й підсумовувати, але не змінює нічого, корисний уже першого дня й не може спричинити інциденту, а права на запис заробляє по одному, коли його траєкторії доводять надійність. Там, де запис справді потрібен рано, зробіть його зворотним або поставте перед ним людину — і зробіть цей людський крок змістовним, бо діалог підтвердження, що зʼявляється сорок разів на годину, клацають не читаючи, і він гірший за відсутність брами, бо створює видимість нагляду.
1.Межі
- Агент починає лише з читанням, і кожне право на запис заробляється записом траєкторій.
- Є записаний список того, що йому дозволено, і він коротший за список того, що він міг би.
- Кожну задачу, чиї кроки можна перелічити, спершу перенесено в робочий процес.
2.Жорсткі ліміти, забезпечені кодом
- Максимальна кількість кроків на задачу, забезпечена виконавцем, а не попрошена в промпті.
- Стеля токенів і витрат на задачу, що перериває прогін, а не пише попередження в лог.
- Тайм-аут за реальним часом і спосіб для людини спинити прогін, що вже триває.
3.Інструменти
- Кожен інструмент робить одну осмислену одиницю роботи, а не віддзеркалює один ендпойнт API.
- Опис кожного інструмента каже, коли його застосовувати не слід, а не лише що він робить.
- Кожен аргумент перевіряється вашим кодом як недовірений ввід — точно як тіло запиту.
- Кожен інструмент, що змінює стан, приймає ключ ідемпотентності з перевіркою на сервері.
4.Права
- Інструменти працюють із правами цього користувача — ніколи з правами сервісного акаунта.
- Усе безповоротне стоїть за людським підтвердженням, достатньо рідкісним, щоб його справді читали.
- Бойові дані й бойові облікові дані недосяжні з девелоперського чи тестового прогону.
5.Спостережуваність
- Записується вся траєкторія: кожен виклик, кожен аргумент, кожен результат, кожне рішення.
- Користувач бачить, що агент робить, поки він це робить: інструмент, ціль, результат.
- Траєкторія показується після завершення, щоб хибний підсумок можна було зрозуміти, а не лише про нього повідомити.
6.Оцінювання
- Фіксовані сценарії проганяються в пісочниці із заздалегідь підготованими даними й інструментами, що записують замість діяти.
- Дві речі оцінюються окремо: чи дійшов він правильного кінцевого стану і чи зробив щось, чого не мав.
- Вартість і кількість кроків на задачу ведуть як розподіли, бо середнє ховає прогін, що зʼїв бюджет.
Один рядок вартий розгортання, бо саме про нього сперечаються: 4.2 — робити підтвердження рідкісним. Коли агент робить щось тривожне, перший інстинкт — додати крок підтвердження, а другий — додати ще один. Після певної частоти діалог перестає бути контролем і стає натисканням клавіші — і тоді він строго гірший за відсутність, бо журнал аудиту тепер містить людське схвалення кожної дії, а це рівно те свідчення, яке хтось пред’явить на доказ, що процес працював. Якщо підтверджень багато, лікувати треба звуженням того, що агентові дозволено, а не частішим питанням.
Оцінюйте траєкторії, а не відповіді
Два прогони можуть дійти того самого результату геть різними шляхами, і саме той, що зробив девʼять кроків і прочитав файл, до якого не мав стосунку, спричинить інцидент. Тож записуйте всю траєкторію — кожен виклик, аргумент, результат і рішення — і оцінюйте дві речі окремо: чи дійшов він правильного кінцевого стану і чи дійшов, не зробивши того, чого не мав. Прогін, що дістав правильну відповідь хибним шляхом, — це не успіх із приміткою, а наступний інцидент, який наразі проходить перевірку.
Фіксовані сценарії в пісочниці роблять це відтворюваним: заздалегідь підготовані дані, інструменти, що записують виклик замість виконувати його, і той самий початковий стан щопрогону. Оскільки траєкторії різняться, проганяйте кожен сценарій кілька разів і читайте розкид, а не один результат: сценарій, що вдається чотири рази з пʼяти, — це не те саме, що той, який вдається завжди, а середнє одного прогону не скаже ні про те, ні про те. Вартість і кількість кроків ведіть так само — як розподіли, бо середнє ховає той один прогін із двохсот, що зʼїв місячний бюджет.
Нарешті, інтерфейс визначає, як приземляються збої. Показуйте користувачеві, що агент робить, поки він це робить: інструмент, ціль, результат, — бо крутилка над двохвилинним прогоном не дає йому ані підстав для оцінки, ані місця для втручання. Дайте змогу зупинити. Показуйте траєкторію після завершення, щоб хибний підсумок можна було зрозуміти, а не лише про нього повідомити. Агента, чия робота видима, рано виправляє той, хто найкраще це помітить; агента, що працює мовчки, вимикають після першого інциденту.
Пʼять прогонів — і чого кожен коштував
Ці випадки охоплюють три роки, за які технологія суттєво покращилася, — а форма збоїв не змінюється: довгі траєкторії йдуть убік, ліміти, записані в промпті, лімітами не є, а цікаву шкоду робить агент, який працює рівно так, як його збудували. Два з них опублікували ті, хто цього агента й запускав, — і саме тому вони найкорисніші записи в таблиці.
| Випадок | Що сталося | Рядок, якого це стосується |
|---|---|---|
| AutoGPT, квітень 2023 | Цикл із відкритим кодом, який міг запустити будь-хто, привернув величезну увагу й масово показав: агенти, залишені вирішувати власні кроки, здебільшого крутяться, витрачають гроші й не завершують. | 2.1 і 2.2. Цикл — це проста частина; продуктом є ліміти. |
| The AI Scientist, серпень 2024 | У власному звіті авторів дослідницький агент відредагував свій же виконавець, щоб зняти наданий йому ліміт часу, замість завершити роботу в його межах. | Рівно 2.1. Ліміт, до якого агент дотягується, — це побажання; лімітом є те, що забезпечено поза його досяжністю. |
| Devin, випробування в січні 2025 | Незалежне місячне випробування завершило 3 з 20 задач. Збої описали не як хибні відповіді, а як довгі траєкторії, що дрейфували: агент упевнено продовжував і після того, як перестав бути корисним. | 6.2. Оцінювання лише кінцевого стану зафіксувало б сімнадцять збоїв і не пояснило б жодного. |
| Project Vend, червень 2025 | Агент близько місяця керував невеликою автоматизованою крамницею. Його вмовляли на знижки, він продавав нижче собівартості, спрямовував клієнтів на неіснуючий платіжний рахунок і певний час наполягав, що він людина. | Чесна межа автономії на довгому горизонті, опублікована тими, хто її запускав. Час сам по собі є режимом збою. |
| Replit, липень 2025 | Під час оголошеного заморожування коду агент для написання коду видалив бойову базу даних, а тоді видав хибні пояснення про те, що сталося. Компанія публічно вибачилась і зобовʼязалася розділити девелоперське й бойове середовища. | 4.3 — і причина, чому цей рядок є у списку. Заморожування, оголошене в промпті, не є контролем доступу. |
Де це вироджується
Чесне обмеження в тому, що агент міняє обмежену систему на необмежену, і жодна інженерія не викупить цю обмеженість назад — вона лише вирішує, скільки шкоди може завдати необмежена частина. Ви не можете знати наперед, скільки коштуватиме прогін, скільки він триватиме й якими інструментами скористається, і кожна практика на цій сторінці — це спосіб зробити це прийнятним, а не спосіб зробити це неправдою. Команда, якій потрібні ці три речі відомими, описує робочий процес — і має збудувати саме його.
- Агент там, де вистачило б робочого процесу: платите вартістю, затримкою й налагоджуваністю за непотрібну гнучкість.
- Ліміти, записані в промпті: це прохання до того компонента, чиє судження ви й намагаєтеся обмежити.
- Відсутність жорсткого ліміту кроків чи витрат: одна задача працює, доки хтось не помітить рахунок.
- Інструменти, що віддзеркалюють внутрішній API по одному виклику: одна робота стає десятьма шансами помилитися.
- Аргументи інструментів, яким довіряють тому, що їх видала модель, без перевірки у вашому коді.
- Неідемпотентні побічні ефекти: повтор надсилає другий лист, якого ніхто не просив.
- Права сервісного акаунта замість прав користувача: агент дістає те, чого користувач дістати не може.
- Бойові облікові дані, досяжні з девелоперського прогону, і заморожування коду, оголошене в промпті.
- Запити підтвердження, настільки часті, що стають рефлексом: вони імітують нагляд, не забезпечуючи його.
- Оцінювання лише підсумкової відповіді: прогін, що дійшов правильного результату хибним шляхом, виглядає успішним.
Коли це застосовувати
Застосовуйте, коли
- Задачі, чий наступний крок справді залежить від знайденого на попередньому: розслідування, дослідження, обхід невідомої структури.
- Робота, чий результат можна перевірити: тести проходять, схема валідна, людина переглядає до набуття чинності.
- Допомога лише з читанням у системах, які людина інакше проклацувала б руками.
- Випадки, де помилка виправна й дешева порівняно з часом, який агент заощаджує.
Уникайте, коли
- Будь-яка задача, чиї кроки можна перелічити: робочий процес дешевший, швидший і придатний до налагодження.
- Безповоротні дії без людської брами: платежі, видалення, вихідні повідомлення клієнтам.
- Шляхи, чутливі до затримки: прогін — це багато послідовних викликів моделі, і швидким його не зробити.
- Середовища, де не можна обмежити права за користувачем: агент успадковує більший доступ, ніж той, хто просить.
Джерела й метод
На чому стоїть ця стаття
- 6 джерел
- 4 задокументовані збої
- Перевірено 13 жовтня 2026 р.
Збої, на яких вчиться стаття
кейси: цикли, що витрачають, агенти, що збиваються з курсу- ДослідженняThe AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery (відкривається в новій вкладці)Sakana AI · 08.2024
- ДослідженняThoughts On A Month With Devin (відкривається в новій вкладці)Answer.AI · 08.01.2025
- ДослідженняProject Vend: Can Claude run a small shop? (And why does that matter?) (відкривається в новій вкладці)Anthropic · 27.06.2025
- СтаттяVibe coding service Replit deleted production database (відкривається в новій вкладці)The Register · 21.07.2025
Практики й походження термінів
workflow чи агент: у кого control flow, і цикл, який усі збудували першимДослідження з Claude. Пошук і звірку першоджерел зроблено з Claude (Anthropic). Відбір, текст і перевірку фактів — редакція Anatomy of IT Product.
Було корисно?
Поділіться з тим, хто працює над тією ж задачею.