Пояснення агентського харнесу: компоненти, які перетворюють LLM на агента
Що таке пристрій агента, чому агенти з великими моделями мови потребують його, вісім компонентів, з яких він складається, та як вони співпрацюють під час виконання реального завдання з програмування.
Джерела: Agent Harness — A complete guide
У 2023 році описати роботу з мовною моделлю було легко. Ви вводили запитання, наприклад «напиши функцію на Python, яка сортує масив чисел», і відповідь надходила майже миттєво. Модель не переходила у жодний видимий режим мислення. Це була проста LLM без додаткових функцій, які є у сучасних агентських системах: інструментів, пам’яті, навичок тощо. Саме ці додаткові елементи перетворюють звичайну LLM на штучного інтелектуального агента.
Як змінилася гонка
Протягом 2023 та 2024 років конкуренція полягала у моделях. У OpenAI була провідна універсальна модель, у Anthropic — провідна модель для програмування, і всі намагалися перевершити один одного у таких тестах, як MMLU та SWE-bench. Зрештою ця гонка почала стабілізуватися, і на перший план вийшли здатність до міркувань та робота з довгим контекстом. У інтерфейсах чату почав з’являтися індикатор «модель міркує...», і люди цікавилися, що відбувається за цим.
Користувачі також змінювалися. З розвитком моделей люди перестали ставити запитання та почали доручати завдання. Для виконання завдання система мусить встановлювати цілі, використовувати зовнішні інструменти, такі як браузер, згадувати попередні розмови та збережені факти, а потім надавати результат.
Порівняйте ці два періоди за допомогою одного прикладу. Спочатку хтось міг зробити скріншот головної сторінки Amazon, передати його моделі для програмування та попросити створити сайт, схожий на нього, вже у одному кроці. Результатом був би прийнятний інтерфейс користувача. Тепер уявіть, що потрібно одночасно налаштувати інтерфейс, бекенд, інфраструктуру та все інше.
До 2026 року той самий користувач може написати: «Виправте баг, який з’явився у питанні №122 на GitHub». У цьому одному реченні приховано кілька кроків. Модель 2023 року відповіла б, що не може отримати доступ до вашого репозиторію. Модель, яка працює в рамках хорошого інструментарію, входить у цикл мислення: аналізує ситуацію, планує дії, обирає інструмент чи метод, його застосовує, спостерігає за результатом, а потім повторює процес чи зупиняється.
Що таке інструментарій
Усі ці додатки, які оточують ШІ (контекст, інструменти, пам’ять тощо), потребують організованого способу взаємодії з моделлю. Ця система має назву, і її звичайне визначення є коротким. Це шар інфраструктури, який оточує ШІ-агента, відповідальний за його інтеграцію, керування, тестування, моніторинг та оцінку результатів. Простіше кажучи, це операційна система для ШІ.
Цей рівень охоплює архітектуру агента, фреймворк оркестрації, який координує підагентів, систему оцінки, що оцінює результати, інфраструктуру часу виконання, безпеку, управління та можливості моніторингу.
Чому це необхідно
Завдання, які люди призначають, стають все складнішими, і тому зростає час, який агенти витрачають на їх виконання. Дані Anthropic показують, що час виконання стрімко зростає. Рік тому, у 2025 році, агент міг працювати над певним завданням приблизно годину. Сьогодні цей показник сягає близько дванадцяти годин.
Робота на довгостроковій перспективі супроводжується власними проблемами. Агенти можуть безкінечно циклювати, вигадувати інструменти, яких не існує, пошкоджувати власний стан, спалювати бюджет токенів, втрачати контекст, повторювати неправильні дії, зазнавати невдач, не повідомляючи про це нікого, зловживати дозволами або навіть забувати мету.
Ці невдачі коштують справжніх грошей. Агент, який застряг у нескінченному циклі на дванадцять годин, спалює величезну кількість токенів та обчислювальних ресурсів. Інструмент керування може обмежити це, встановивши бюджет на кожне завдання, виміряний у часі, токенах або обчислювальних ресурсах.
Більшою проблемою є безпека. Якщо модель обере руйнівний інструмент, наприклад такий, що стирає файлову систему, саме інструмент керування дозволяє визначити, що він може торкатися. Коротко кажучи, інструмент керування надає вам контроль над агентом та, разом з цим, впевненість у тому, що агент робить саме те, що ви планували.
Компоненти
Як би конкретна команда не називала свій інструмент керування, його елементи поділяються на вісім груп. Кожна з них представляє питання, на яке агент повинен вміти дати відповідь.
- Стан агента: де зараз знаходиться виконання завдання? Він відстежує поточне завдання, кроки, спостереження та рішення. Якщо план складається з чотирьох кроків, стан фіксує, які з них вже виконані, який триває та які ще не розпочаті. Без цього агент, якого перервали, не може продовжити з того місця, де зупинився.
- Інструменти: які дії є доступними? Це найбільш помітна частина. Тут знаходяться виконання коду, браузер, API, бази даних та оболонка. Для агента-програміста функція
read_fileє однією з основних. - Планування: що буде далі? Він вирішує, що буде робитися далі, та складає або коригує план. Для завдання з програмування це може бути послідовність з чотирьох або п’яти кроків.
Практика проектування, створення та запуску цих елементів для досягнення найкращої продуктивності агента називається інженерією керування. Це нова галузь, і більшість команд все ще визначають, де саме лежить кожна зі своїх обов’язків.
Агент для програмування від початку до кінця
Візьміть агента для програмування з кріпленням та дайте йому запит «виправте баг у питанні №122 на GitHub». Це не прохання «поясніть мені це». Це справжнє завдання, яке вимагає планування, використання інструментів та зберігання інформації в пам’яті. Один з логічних підходів виглядає так:
- Інформація від користувача потрапляє до контексту. Модель аналізує її та формулює мету, яка залишається в контексті до її досягнення.
- Модель планує роботу: переглядає пов’язані баги, виправляє потрібний файл, компілює код, запускає тести та оновлює пам’ять.
- Для першого кроку кріплення отримує інформацію з векторної бази даних — а саме деталі минулих багів, пов’язаних із цим. Інформація, пов’язана з автентифікацією, отримується як найбільш відповідний результат та додається до контексту.
auth.py та виправити помилку автентифікації. Для цього потрібні інструменти read_file та write_file, які вона використовує для редагування та збереження файлу.Оцінка ще не розглядалась, і вона заслуговує на окреме розглядання. Вона виходить за межі точності та може охоплювати кілька показників, пов’язаних із фактичною поведінкою агента.
Куди рухаємося
Надійність у довгостроковій перспективі є однією з найбільших нерозв’язаних проблем. Оскільки агенти працюють годинами, а іноді навіть днями, їхня робота має бути надійною. Агент, який застряг у циклі чи знаходиться у пошкодженому стані, марнує ресурси та може поставити під загрозу безпеку.
Оцінка також ускладнюється з ростом складності інструментів. Кожне завдання залишає слід даних, таких як використання пам’яті, і командам доводиться вирішувати, чи замінити модель, чи переробити інструменти, додати нові засоби чи виправити існуючі. Спільнота активно працює над вирішенням цих проблем.