Когда простой скрипт лучше LLM-агента: недооценённый выбор
Компании гонятся за автономными агентами на GPT-4o и Claude, но для половины задач хватило бы cron и пятидесяти строк кода. Разбираем, где агент оправдан, а где он дороже, медленнее и ненадёжнее обычного скрипта.

За 2024–2025 годы «агент» стал словом года в корпоративных презентациях: OpenAI, Anthropic и Google наперегонки показывают модели, которые сами планируют шаги, ходят по инструментам и выполняют многоступенчатые задачи. За этим шумом легко пропустить неудобную мысль: значительная часть задач, которые сейчас закрывают LLM-агентом, раньше решалась скриптом на пятьдесят строк — и решалась дешевле, быстрее и предсказуемее. Агент нужен там, где заранее неизвестен путь к цели. Если путь известен, лишний слой «рассуждающей» модели только добавляет задержку, стоимость токенов и точки отказа.
Что такое агент и чем он отличается от скрипта
Скрипт — это фиксированная последовательность шагов, которую вы написали заранее. Он делает ровно то, что в нём указано, и падает, если реальность не совпала с планом. Агент1 строит план сам: получает цель, на каждом шаге спрашивает модель «что делать дальше», вызывает инструменты (поиск, API, код) и решает, когда остановиться.
Разница не в качестве, а в природе задачи. Скрипт хорош, когда шаги детерминированы. Агент оправдан, когда шаги зависят от промежуточных результатов и вы не можете описать их заранее в коде.
Агент — не апгрейд скрипта, а другой инструмент под другой класс задач. Заменять один другим «по умолчанию» — то же, что копать грядку экскаватором.
Где скрипт выигрывает
Есть три признака, по которым задача почти наверняка решается кодом, а не агентом.
- Путь известен заранее. «Скачай выгрузку, отфильтруй строки без email, отправь в CRM» — это не рассуждение, это ETL. Тут нечего планировать.
- Нужна воспроизводимость. Скрипт при одинаковом входе даёт одинаковый выход. Модель — нет: даже при temperature 0 поведение может дрейфовать между версиями. Для отчётности и биллинга это дисквалифицирует агента.
- Объём большой, а маржа на ошибку — низкая. Прогнать через LLM миллион строк дорого и медленно. Регулярное выражение или SQL сделают то же за секунды и бесплатно.
Скрытая цена агента
Автономный агент на каждом шаге отправляет в модель растущий контекст: цель, историю действий, результаты вызовов инструментов. Десять шагов — это десять запросов, и каждый следующий тяжелее предыдущего, потому что контекстное окно2 заполняется историей. Одна и та же задача, решённая скриптом за один HTTP-запрос, у агента превращается в цепочку платных вызовов с суммарной задержкой в десятки секунд.
Скрипт, агент и промежуточный вариант
На практике выбор не бинарный. Между «жёстким кодом» и «полностью автономным агентом» есть workflow с одним вызовом модели — когда LLM делает ровно одну умную вещь (классифицирует, извлекает данные, переписывает текст), а всё остальное — обычный код.
| Критерий | Скрипт | LLM в одном шаге (workflow) | Автономный агент |
|---|---|---|---|
| Путь к цели | Задан в коде | Задан, LLM внутри одного шага | Строит модель на лету |
| Воспроизводимость | Полная | Частичная | Низкая |
| Стоимость запуска | Почти нулевая | 1 вызов модели | Много вызовов, растёт с шагами |
| Задержка | Миллисекунды | Секунды | Десятки секунд и выше |
| Отладка сбоя | Стек-трейс | Понятный вход/выход | Сложно: путь каждый раз новый |
| Когда брать | Шаги детерминированы | Один шаг требует «понимания» текста | Путь заранее неизвестен |
Anthropic в своём инженерном материале «Building effective agents» (декабрь 2024) прямо советует начинать с самого простого решения и добавлять агентность только тогда, когда более простые паттерны — цепочки промптов и маршрутизация — перестают справляться. То есть автономность — крайняя мера, а не стартовая точка.
Кому это пригодится, а кому нет
Разберём по сценариям, а не по лозунгам.
Скрипта достаточно
- Ежедневная выгрузка и рассылка отчёта. Данные берутся из известного источника, формат фиксирован. Cron плюс скрипт — и никаких токенов.
- Массовая обработка однотипных файлов. Переименовать, сконвертировать, проверить по схеме. Правила заранее понятны.
- Интеграция двух API с известными полями. Тут нужен маппинг, а не «размышление».
Хватит одного вызова модели
- Разбор входящих обращений. Скрипт принимает письмо, один запрос к модели определяет категорию и тональность, дальше снова код раскладывает по очередям.
- Извлечение полей из неструктурированного текста. Из накладной в свободной форме вытащить сумму и контрагента — задача для одного вызова, а не для автономного цикла.
Агент оправдан
- Исследовательская задача без готового плана. «Найди причину падения выручки в этом регионе» — путь зависит от того, что обнаружится на каждом шаге.
- Работа в кодовой базе. Прочитать файлы, понять зависимости, внести правку, прогнать тесты, поправить по результату — здесь цикл «действие — наблюдение — следующее действие» и есть суть задачи.
- Взаимодействие с непредсказуемым интерфейсом. Навигация по сайту, где структура меняется, а жёсткий селектор постоянно ломается.
Как выбрать на практике
- Опишите задачу шагами. Если получилось записать все шаги без слова «зависит от результата» — это скрипт.
- Найдите шаги, требующие понимания текста или контекста. Их — и только их — отдайте модели одним вызовом.
- Проверьте, остаётся ли неопределённость в порядке шагов. Если да и она принципиальна — вот тогда агент.
- Посчитайте цену вопроса. Оцените число вызовов модели на один запуск и умножьте на частоту. Регулярная задача с высокой частотой почти всегда должна быть скриптом.
Логика простая: сложность решения должна соответствовать сложности задачи, а не моде на автономных агентов. Агент, который каждое утро делает то, что справился бы cron, — это не инновация, а счёт за токены.
1 Агент — программа, где LLM в цикле сама выбирает следующее действие и вызывает внешние инструменты, пока не решит, что цель достигнута. Ключевое отличие от скрипта — план не зашит в код, а строится на ходу. ↩
2 Контекстное окно — максимальный объём текста (в токенах), который модель обрабатывает за один запрос: и ваш ввод, и её ответ. У агента история шагов накапливается внутри этого окна, поэтому поздние шаги дороже ранних. ↩
Prompt-инженер: Идеальные запросы для Midjourney, ChatGPT и других моделей.
Спросить за 15 ₽Источники: Anthropic — Building effective agents
Частые вопросы
Значит, агенты — это хайп и их не стоит использовать?
Как быстро понять, нужен ли мне агент?
Почему агент дороже скрипта, если задача одна и та же?
Можно ли совместить скрипт и модель, не строя полноценного агента?
Насколько предсказуемо поведение агента для регулярных задач?
С чего начинать, если задача новая и я не уверен в её сложности?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.