Когда нужен агент, а когда хватит промпта
Агент — не всегда правильный выбор. Учимся отличать задачи, где нужен автономный цикл, от тех, где хватит одного промпта.
Правило по умолчанию — начинай с самого простого решения (один промпт); усложняй до агента только тогда, когда задача этого реально требует.
Цена автономности
Агент мощнее простого промпта, но платит за это:
- Стоимость — один запрос пользователя превращается в несколько вызовов LLM (мысль, действие, ещё мысль…). Платите за каждый.
- Латентность — несколько вызовов подряд = секунды и десятки секунд ожидания.
- Непредсказуемость — агент может пойти не туда, зациклиться, вызвать не тот инструмент.
- Сложность — больше кода, больше точек отказа, труднее отлаживать.
Поэтому вопрос не «крутой агент или скучный промпт», а «оправдывает ли задача эту цену».
Когда хватит одного промпта
Если задачу можно решить за один проход на основе того, что модель уже знает, — агент не нужен. Признаки:
- Не нужны свежие или внешние данные (всё есть в промпте или в знаниях модели).
- Шаги известны заранее и их немного.
- Нет действий во внешнем мире.
Примеры: переписать абзац, перевести текст, классифицировать отзыв, извлечь сущности, объяснить код. Здесь агент только добавит стоимость и риск.
Когда нужен агент
Агент оправдан, когда выполняется хотя бы несколько условий:
- Нужны инструменты — точный счёт, свежие данные, запрос к API/базе, выполнение кода.
- Число и порядок шагов заранее неизвестны — зависит от промежуточных результатов.
- Задача многоэтапная — «найди X, на основе X сделай Y, проверь Z».
- Нужна адаптация — реагировать на ошибки и переделывать.
Примеры: «исследуй тему и собери отчёт со ссылками», «отладь и почини этот код», «спланируй поездку с учётом цен и дат».
Промежуточные варианты
Между «один промпт» и «полный автономный агент» есть ступени — часто их и достаточно:
| Подход | Суть | Когда |
| Один промпт | один вызов LLM | задача в один проход |
| Цепочка (chain) | фиксированная последовательность вызовов | шаги известны заранее |
| Промпт + инструменты (1 раунд) | модель вызывает инструмент один раз | нужен 1 факт извне |
| Агент (цикл) | модель сама ведёт многошаговый процесс | шаги неизвестны, нужна адаптация |
Простая эвристика выбора
Формализуем правило выбора как функцию-подсказку.
def choose_approach(needs_tools, steps_known, num_steps):
if not needs_tools and num_steps <= 1:
return "Один промпт"
if steps_known:
return "Фиксированная цепочка (chain)"
return "Агент (автономный цикл)"
cases = [
("перевести текст", False, True, 1),
("саммари + перевод", False, True, 2),
("исследовать тему", True, False, 5),
("посчитать по свежим данным", True, False, 3),
]
for name, tools, known, n in cases:
print(f"{name:30} -> {choose_approach(tools, known, n)}")
Вывод:
перевести текст -> Один промпт саммари + перевод -> Фиксированная цепочка (chain) исследовать тему -> Агент (автономный цикл) посчитать по свежим данным -> Агент (автономный цикл)
Итог
- Агент платит стоимостью, латентностью, непредсказуемостью и сложностью — это нужно окупить.
- Один промпт — для задач в один проход без внешних данных; цепочка — когда шаги известны заранее.
- Агент — когда нужны инструменты, а число и порядок шагов заранее неизвестны.