От чат-бота к агенту

Этот урок объясняет ключевое различие: чат-бот отвечает текстом, а агент действует — рассуждает, вызывает инструменты и идёт к цели сам.

AI-агент — это система, в которой LLM не просто генерирует ответ, а в цикле сама решает, какие действия выполнить (вызвать инструмент, посмотреть результат, продолжить), чтобы достичь поставленной цели.

Чат-бот: один вход — один выход

Обычное применение LLM выглядит так: вы шлёте промпт — модель возвращает текст. Один запрос, один ответ. Если ответ неполный, вы сами шлёте уточнение. Модель здесь — пассивный «отвечатель»: она не может посмотреть в интернет, посчитать на калькуляторе или запустить код. Всё, что она умеет, — продолжить текст на основе того, что видела на обучении.

Этого хватает для огромного числа задач: переписать письмо, объяснить концепцию, набросать функцию. Но как только нужно достоверное действие во внешнем мире — узнать сегодняшний курс валюты, выполнить SQL-запрос, отправить письмо — голая LLM бессильна. Она может только выдумать правдоподобный ответ.

Агент: цикл, инструменты, цель

Агент превращает LLM из «отвечателя» в «деятеля». Добавляются четыре вещи:

  • Цель — задача, которую нужно решить («найди и посчитай», а не «продолжи текст»).
  • Инструменты — функции, которые агент может вызвать: калькулятор, поиск, доступ к API, выполнение кода.
  • Цикл управления — повторяющийся процесс: наблюдение → мысль → действие → наблюдение… пока цель не достигнута.
  • Память — то, что агент помнит между шагами (что уже сделал, что узнал).

Ключевое слово — автономность. Агенту не диктуют последовательность шагов; он сам решает, что делать дальше, исходя из того, что уже узнал. Именно поэтому агента трудно предсказать — и именно поэтому он мощнее.

Один шаг цикла на простом примере

Чтобы увидеть механику без настоящей LLM, заменим модель детерминированной функцией-заглушкой. Она по наблюдению решает, что делать. «Среда» выполняет действие и возвращает результат. Получается мини-цикл агента.

def fake_llm(observation):
    # Заглушка вместо настоящей LLM: по наблюдению решает следующий шаг.
    if "task:" in observation:
        return "THOUGHT: нужно посчитать. ACTION: calc(2+2)"
    if "result: 4" in observation:
        return "FINISH: ответ равен 4"
    return "FINISH: не знаю"

def environment(action):
    if action == "calc(2+2)":
        return "result: 4"
    return "result: unknown"

observation = "task: сколько будет 2+2?"
for step in range(1, 4):
    response = fake_llm(observation)
    print(f"Шаг {step} | наблюдение: {observation}")
    print(f"         | модель: {response}")
    if "FINISH:" in response:
        print("Агент завершил работу.")
        break
    action = response.split("ACTION: ")[1]
    observation = environment(action)

Вывод:

Шаг 1 | наблюдение: task: сколько будет 2+2?
         | модель: THOUGHT: нужно посчитать. ACTION: calc(2+2)
Шаг 2 | наблюдение: result: 4
         | модель: FINISH: ответ равен 4
Агент завершил работу.

Обратите внимание: здесь нет жёстко прописанного «сначала посчитай, потом ответь». Модель сама на каждом шаге решает — действовать или закончить. В настоящем агенте вместо fake_llm стоит вызов реальной LLM, а в environment — настоящие инструменты. Логика цикла — та же.

Чат-бот против агента: сравнение

СвойствоЧат-ботАгент
Число шаговодинмного (цикл)
Действия во внешнем миренетда, через инструменты
Кто решает следующий шагпользовательсама модель
Предсказуемостьвысокаянизкая
Типичная задача«перепиши текст»«найди, посчитай и сделай»

Итог

  • Чат-бот — это «один промпт, один ответ»; агент — это LLM в цикле с инструментами и целью.
  • Главное свойство агента — автономность: он сам выбирает действия, а не следует фиксированному сценарию.
  • Механику агента видно даже без настоящей LLM — достаточно заменить модель детерминированной заглушкой.
Проверьте себя
1. Что отличает AI-агента от обычного чат-бота?
AАгент использует более крупную модель
BАгент работает в цикле, сам выбирает действия и вызывает инструменты для достижения цели
CАгент всегда отвечает быстрее
DАгент не использует LLM
2. Почему голая LLM не может достоверно сообщить сегодняшний курс валюты?
AОна не понимает слово «курс»
BУ неё нет доступа к внешнему миру — она лишь продолжает текст по данным обучения
CКурсы валют запрещено спрашивать у LLM
DЕй не хватает контекстного окна
3. Какое свойство агента делает его мощным, но непредсказуемым?
AБольшой словарь
BАвтономность — он сам решает, какие шаги выполнять
CНизкая стоимость
DОтсутствие памяти
Поддержать проект