🧠 Агенты и LLM: основы и практика

🎯 Ключевые тезисы

  • Агенты — системы, объединяющие LLM, промты, инструменты, память, механизмы защиты и планирования
  • LLM — нейросетевые модели, обученные на больших текстовых данных для предсказания следующего токена
  • Эволюция взаимодействия с LLM: от простого промтинга → роутинга → tool calling → многошаговых агентов → мультиагентных систем
  • Применение агентов: персональные ассистенты, исполнители задач, бизнес-процессы, интерактивные среды (NPC в играх)

📚 Основное содержание

🔄 Эволюция агентских систем

  • Промтинг: LLM генерирует текст без влияния на дальнейшее выполнение программы
  • Роутинг: LLM участвует в принятии решений, выбирает заранее заданные ветви
  • Tool calling: LLM выбирает конкретные функции и аргументы для их вызова, связывается с внешними API
  • Многошаговые агенты: планирование действий, выполнение цепочек, рефлексия
  • Мультиагентные системы: координация нескольких агентных процессов

🤖 Что такое агент?

Система, внутри которой есть модель, промты, инструменты, память, механизмы защиты и планирования

Компоненты агента:

  • Модель (LLM) — «мозг» агента
  • Промты:
    • Системный промт — глобальные инструкции (роль, цели, ограничения, стиль)
    • Пользовательское сообщение — текущая задача
    • Сообщения ассистента — предыдущие ответы, результаты вызовов инструментов
  • Инструменты — внешние функции и API для взаимодействия с внешней средой
  • Память:
    • Краткосрочная (диалог, промежуточные результаты)
    • Долгосрочная (информация между сессиями, знания о пользователе)
    • Контекстная (информация, необходимая в данный момент)
  • Guardrails — инструменты защиты от prompt injection и других угроз
  • Инструменты планирования — построение последовательности действий

🧠 LLM: мозг агента

LLM — нейросетевые модели, обученные на больших корпусах текстовых данных для предсказания следующего токена в контексте предыдущих

Физически LLM состоит из:

  • Файла параметров (веса нейросети) — десятки/сотни гигабайт
  • Кода выполнения — описывает архитектуру сети и принцип инференса

🔡 Токенизация

  • Токен — минимальная единица текста, с которой работает языковая модель (может быть фрагментом слова или состоять из нескольких слов)
  • Специальные токены:
    • EOS — окончание генерации
    • Токены ролей (user, assistant, system)
    • Управляющие токены (translate, summarize, rewrite)

⚙️ Как обучаются LLM?

  1. Претрейнинг — обучение на больших массивах данных для предсказания следующего токена
  2. Финтюнинг — адаптация модели к специфическим задачам на примерах запрос-ответ
  3. Reinforcement Learning — обучение на feedback от людей или reward-моделей

✅ Сильные стороны LLM

  • Задачи с высокой статистической структурой (перефразирование, суммирование, генерация текста/кода)
  • Обработка стандартных структур (reasoning, tool calling, файлы, таблицы)

❌ Ограничения LLM

  • Точные алгоритмические/символьные задачи (подсчёт букв, цифр)
  • Актуальные знания (модель не знает новости за последний день без дополнительных инструментов)
  • Долгосрочное планирование и память (планирование последовательности на 30 шагов без сохранения состояния)

⚡️ Галлюцинации

Уверенная генерация правдоподобной, но неверной информации
Возникают потому что LLM — статистические модели, они не проверяют факты, просто предсказывают наиболее вероятный следующий токен


💻 Практика: использование LLM

🖥️ Локальный инференс

  • Преимущества: полная приватность данных
  • Недостатки: дорого по железу и техподдержке

☁️ Инференс через внешние API

  • Преимущества: доступ к огромным моделям на больших кластерах
  • Недостатки: оплата за каждый токен, потеря приватности данных

🛠️ Разработка простого агента

Инструменты:

  • LangChain — фреймворк для разработки агентов (обёртки над промтами, цепочками, инструментами)
  • LangGraph — расширение для реализации агентов с изменяющимся состоянием
  • LFlow — инструмент для визуального сборки агентов без кода
  • LMIL — инструмент для дебаггинга и отладки агентов

Пример задачи: агент бронирования авиаперелётов (из T2Bench benchmark)

Реализация:

  • Агент как граф, где состояние перетекает между узлами
  • Узлы получают текущее состояние, выполняют операции и возвращают изменённое состояние
  • LLM-узлы берут состояние с сообщением пользователя, обращаются к LLM и дописывают ответ в состояние агента

📝 Выводы

  • Модели работают с токенами → важно правильно рассчитывать биллинг и контекстные окна
  • Ключевое правило: автоматизировать всё, что автоматизируется, и изировать только то, что не автоматизируется
  • Структура промтов критична — модель ожидает данные в определённом формате (например, system промт после токена system)
  • Агенты начинаются с простого (LLM + промты) и постепенно дополняются инструментами, памятью, guardrails и планированием