1. AI-агенты: что это и чем отличаются от просто LLM
До сих пор мы рассматривали LLM как систему «вопрос-ответ»: вы спросили — модель ответила. Это полезно, но ограниченно. Агент (agent) — это следующий эволюционный шаг: система, которая не просто отвечает, а планирует и выполняет многошаговые задачи.
AI-агент (AI Agent)
Автономная система на основе LLM, которая: (1) получает цель, (2) самостоятельно планирует шаги для её достижения, (3) использует инструменты для выполнения шагов, (4) анализирует результаты и корректирует план при необходимости, (5) повторяет цикл до достижения цели или исчерпания попыток.
Отличие агента от чат-бота
| Характеристика | Чат-бот (LLM) | Агент |
| Модель работы | Один запрос → один ответ | Цель → План → Действие → Наблюдение → Повтор |
| Автономность | Ждёт ввода пользователя | Работает автономно, запрашивает ввод только когда нужно |
| Инструменты | Не использует (или один вызов) | Может вызывать множество инструментов в разной последовательности |
| Память | Только контекстное окно | Рабочая память + внешняя (векторная БД, файлы) |
| Обработка ошибок | Нет (отвечает «как есть») | Обнаруживает неудачу, пробует другой подход |
| Пример | «Какая погода?» | «Найди 5 лучших ресторанов рядом, проверь их рейтинги, забронируй столик в лучшем на 19:00» |
Минимальные компоненты агента
- LLM-мозг. Принимает решения на основе контекста и доступной информации.
- Инструменты (tools). Возможность выполнять действия: поиск, запись, API-вызовы, выполнение кода.
- Память. Сохранение промежуточных результатов, истории действий, извлечённых фактов.
- Планировщик. Механизм разбиения цели на подзадачи и их последовательного выполнения.
- Цикл принятия решений. Наблюдение → Мысль → Действие → Наблюдение → ... (loop, подробнее в следующем разделе).
Простая аналогия: Чат-бот — это калькулятор (ввод → результат). Агент — это повар на кухне: получил заказ (цель), открыл холодильник (инструмент — поиск), проверил рецепт (инструмент — чтение), начал готовить, попробовал, посолил (корректировка), подал блюдо.
2. Архитектурный паттерн Loop (Agentic Loop)
Loop (или Agentic Loop) — это центральный архитектурный паттерн любого агента. Это цикл, в котором агент работает: думает, действует, наблюдает результат и решает, что делать дальше.
Agentic Loop (агентный цикл)
Повторяющийся цикл: (1) Observation — агент получает информацию из окружения (результаты инструментов, сообщения); (2) Thought — анализирует и принимает решение; (3) Action — выполняет действие через инструмент. Цикл продолжается, пока агент не решит, что цель достигнута, или не исчерпает лимит итераций.
Классический ReAct Loop
Один из самых популярных вариантов агентного цикла — ReAct (Reasoning + Acting). Агент чередует «мысли» и «действия»:
- Thought (Мысль): «Мне нужно найти рестораны. Я должен использовать поисковый инструмент.»
- Action (Действие): Вызов search_restaurants(«Москва, итальянская кухня»)
- Observation (Наблюдение): Получен список из 12 ресторанов.
- Thought: «12 — слишком много. Нужно отфильтровать по рейтингу выше 4.5.»
- Action: Вызов filter_by_rating(min=4.5)
- Observation: Осталось 3 ресторана.
- Thought: «Задача выполнена. У меня есть 3 подходящих ресторана. Отдаю результат.»
- Final Answer: Список с рекомендациями.
Ключевые параметры Loop
| Параметр | Назначение | Рекомендация |
| Max iterations | Максимальное количество шагов в цикле | 5-15 для большинства задач |
| Max tokens per step | Лимит токенов на один шаг (мысль + действие) | Зависит от контекстного окна; оставьте хотя бы 50% окна для накопления истории |
| Stop conditions | Условия завершения цикла | Достижение цели, превышение лимита итераций, явный сигнал от агента «завершаю» |
| Reflection step | Периодический самоанализ агентом своего прогресса | Каждые 3-5 шагов: «Что я уже сделал? Что осталось? Не пора ли сменить подход?» |
Проблема зацикливания: Агенты склонны застревать в циклах — повторять одни и те же действия, ожидая другого результата. Всегда ставьте жёсткий лимит итераций и добавляйте «предохранитель»: если последние 3 действия не изменили ситуацию — принудительно завершайте цикл или смените стратегию.
3. Архитектурный паттерн Map-Reduce: разбиение сложных задач
Map-Reduce (чанкинг в контексте архитектуры агентов, не путать с chunking документов из RAG) — это подход к решению сложных задач через их разбиение на управляемые фрагменты. Если задача слишком большая для одного прогона агента, chunky-подход предлагает разделить её на этапы и обрабатывать последовательно.
Паттерн Map-Reduce
Архитектурный подход, при котором большая задача декомпозируется на изолированные подзадачи (chunks), каждая из которых решается отдельным вызовом агента со своим контекстом. Результаты чанков агрегируются в финальный ответ.
Когда нужен Map-Reduce
- Задача требует обработки 500+ страниц документа
- Нужно проанализировать тысячи записей в базе данных
- Задача не помещается в контекстное окно даже с RAG
- Разные части задачи требуют разных инструментов или промптов
Как работает Map-Reduce: пример
Задача: «Проанализируй годовой отчёт компании на 400 страницах и напиши executive summary на 2 страницы.»
- Декомпозиция. Отчёт разбивается на секции: финансовые показатели, операционная деятельность, риски, планы.
- Параллельная обработка. Каждая секция отправляется отдельному агенту (или последовательно одному агенту) с запросом «выдели 3-5 ключевых выводов из этого раздела».
- Агрегация. Все выводы собираются и передаются агенту-суммаризатору с задачей «собери из этих тезисов целостное executive summary».
- Финальная полировка. Итоговый текст проверяется на связность, стиль и форматирование.
Map-Reduce vs Loop: ключевые отличия
| Критерий | Loop | Map-Reduce |
| Суть | Цикл: думай → делай → смотри | Декомпозиция: разбей на части → обработай → собери |
| Размер задачи | Средняя, влезает в контекст | Большая, не влезает в одно контекстное окно |
| Зависимости | Каждый шаг зависит от предыдущего | Чанки можно обрабатывать параллельно |
| Контекст | Накопительный (история всех шагов) | Изолированный (каждый чанк — свежий контекст) |
| Пример | Найди и забронируй ресторан | Проанализируй 1000 страниц документа |
Гибридный подход: В реальных проектах Map-Reduce и Loop часто используются вместе. Loop управляет общим процессом (что делать дальше), а Map-Reduce отвечает за обработку больших объёмов данных внутри одного шага.
4. Мультиагентные системы: разделяй и делегируй
Мультиагентная система — это архитектура, в которой несколько агентов работают вместе над общей задачей. Каждый агент специализируется на своём аспекте и взаимодействует с другими.
Мультиагентная система (Multi-Agent System)
Архитектура, в которой несколько независимых AI-агентов, каждый со своей ролью, инструментами и памятью, координируются для решения сложной задачи. Координация может быть централизованной (один агент-оркестратор) или децентрализованной (агенты общаются напрямую).
Зачем нужна мультиагентность
- Специализация. Агент-программист лучше пишет код, агент-тестировщик лучше его проверяет, агент-менеджер лучше планирует. Вместе они эффективнее, чем один универсальный агент.
- Разделение контекста. Каждый агент работает со своим контекстным окном. Не нужно запихивать всю информацию в одну модель.
- Параллелизм. Агенты могут работать одновременно над разными частями задачи.
- Контроль качества. Один агент генерирует, другой проверяет. Это резко снижает количество ошибок.
Типовые роли агентов
| Роль | Задача | Пример промпта |
| Оркестратор (Orchestrator) | Принимает задачу, декомпозирует, распределяет между агентами, собирает результаты | «Разбей задачу на подзадачи и назначь исполнителей» |
| Исследователь (Researcher) | Ищет и анализирует информацию | «Найди все релевантные источники по теме» |
| Исполнитель (Executor) | Выполняет конкретные действия: пишет код, создаёт документы | «Реализуй функцию по спецификации» |
| Ревьюер (Reviewer) | Проверяет качество работы других агентов | «Проверь этот код на ошибки и предложи улучшения» |
| Редактор (Editor) | Вносит правки по замечаниям ревьюера | «Примени следующие правки к документу: ...» |
| Суммаризатор (Summarizer) | Собирает результаты в итоговый ответ | «Объедини выводы всех агентов в единый отчёт» |
Пример: написание курса (как сейчас)
Прямо сейчас этот курс создаётся через мультиагентную систему:
- Агент-автор пишет содержимое каждого модуля.
- Агент-ревьюер проверяет на фактические ошибки, логику и понятность.
- Агент-редактор вносит правки по замечаниям ревьюера.
- Агент-оркестратор координирует процесс и следит за связностью между модулями.
Сложность растёт экспоненциально: Каждый дополнительный агент усложняет систему. Два агента — это один канал коммуникации. Десять агентов — 45 каналов. Начинайте с 2-3 агентов, добавляйте новых только когда текущая архитектура не справляется.
5. Архитектурные паттерны: какой когда использовать
Мы рассмотрели все основные строительные блоки. Теперь соберём их в систему рекомендаций.
Дерево решений: с чего начать и когда усложнять
| Ваша задача | Начните с | Усложните до | Причина усложнения |
| Простой чат-бот FAQ | LLM + промпт | — | Не нужно усложнять |
| FAQ по вашим документам | RAG (LLM + векторная БД) | RAG + гибридный поиск | Если ранжирование результатов хромает |
| Ассистент с действиями (отправить, создать) | LLM + Function Calling | MCP | Если больше 3 интеграций или несколько проектов |
| Задача в 3-10 шагов | LLM + Loop (ReAct) | Loop + память | Если агент забывает промежуточные результаты |
| Обработка большого документа | Map-Reduce (разбивка + агрегация) | Map-Reduce + RAG | Если нужен не summary, а поиск по документу |
| Сложный проект (разные типы задач) | Мультиагентная система (2-3 агента) | Полноценная мультиагентная архитектура | Если 2-3 агента не покрывают все аспекты |
Золотое правило архитектуры AI-систем
Начинайте с простейшего решения, которое может сработать. Не проектируйте мультиагентную систему для задачи, которую можно решить одним хорошо написанным промптом. Каждый уровень сложности добавляет: задержку, стоимость, вероятность ошибок, сложность отладки. Усложняйте только тогда, когда текущий уровень объективно не справляется.
Чек-лист перед выбором архитектуры
- Можно ли решить задачу одним вызовом LLM с хорошим промптом?
- Нужны ли модели внешние данные? (Если да — RAG)
- Нужно ли модели выполнять действия? (Если да — Function Calling / MCP)
- Требуется ли несколько последовательных шагов? (Если да — Loop)
- Настолько ли большой объём данных, что он не влезает в контекст? (Если да — Map-Reduce)
- Требуются ли принципиально разные компетенции? (Если да — мультиагентность)
6. Итоги курса
Вы прошли путь от «что такое AI» до архитектуры мультиагентных систем. Давайте зафиксируем ключевые выводы всего курса.
- AI — это не магия, а математические системы, которые учатся на данных
- Весь современный AI — узкий; AGI пока не существует
- LLM предсказывают следующее слово — но делают это настолько хорошо, что выглядят разумными
- Промпт-инжиниринг — первый и самый дешёвый способ улучшить качество ответов
- Эмбеддинги превращают текст в числа, сохраняя смысл — основа семантического поиска
- RAG позволяет LLM работать с вашими данными, а не только с памятью модели
- Function Calling и MCP дают LLM возможность взаимодействовать с внешним миром
- Агенты — это LLM с циклом «думай-делай-наблюдай» и доступом к инструментам
- Map-Reduce решает проблему масштаба, разбивая большие задачи на управляемые части
- Мультиагентные системы специализируют агентов и повышают качество через разделение труда
- Главное правило: начинайте с простого и усложняйте только когда это оправдано
Что дальше? Технологии AI развиваются быстрее, чем любой учебник. Вот что поможет оставаться в курсе:
- Читайте технические блоги компаний: OpenAI, Anthropic, Google DeepMind, Meta AI
- Следите за arXiv.org в секции cs.AI и cs.CL — там появляются научные статьи за месяцы до продуктов
- Практикуйтесь: лучший способ понять AI — попробовать. Начните с API OpenAI (или бесплатного аналога) и сделайте своего первого чат-бота с парой инструментов. Это займёт вечер, но даст больше понимания, чем месяц чтения теории.