Агенты и 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?
- Претрейнинг — обучение на больших массивах данных для предсказания следующего токена
- Финтюнинг — адаптация модели к специфическим задачам на примерах запрос-ответ
- 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 и планированием