Генеративный AI
Multi-Agent Systems
Anthropic попросили Claude написать полный анализ конкурентного рынка: найти данные, проанализировать, написать отчёт, проверить факты, оформить. Один агент с одним промптом сделал бы это посредственно. Команда из четырёх специализированных агентов - исследователь, аналитик, писатель, редактор - выдала профессиональный результат. Принцип тот же что в хорошей команде людей: специализация побеждает универсальность.
- **Devin (Cognition AI)**: AI-разработчик как мультиагентная система. Планировщик разбивает задачу на подзадачи, coder-агент пишет код, tester запускает тесты, debugger анализирует ошибки. Весь цикл разработки автоматизирован.
- **AutoGPT и BabyAGI**: ранние эксперименты с агентными системами (2023). Показали что LLM может автономно ставить подзадачи и выполнять их. Проблема: галлюцинации накапливаются, агент 'заходит в петлю'. Научили индустрию важности human-in-the-loop.
- **CrewAI в production**: сотни компаний используют CrewAI для автоматизации: генерация контента (researching + writing + reviewing), анализ данных, customer support с эскалацией. Цикл writer+critic поднимает качество контента.
Предварительные знания
Generative Agents и фреймворки мульти-агентов
В 2023 году Joon Sung Park и коллеги из Стэнфорда опубликовали «Generative Agents» - симуляцию городка Smallville, где 25 LLM-агентов жили своей жизнью: помнили события, строили планы, общались, и даже самоорганизовали вечеринку без сценария от исследователей. Работа доказала, что из взаимодействия агентов рождается правдоподобное социальное поведение. В том же году Microsoft выпустила фреймворк AutoGen для построения разговоров между несколькими агентами, а проект CAMEL исследовал role-playing двух агентов, кооперирующихся над задачей. Так оформилось направление multi-agent systems: декомпозиция сложной задачи на специализированные роли вместо одного перегруженного агента.
CrewAI: роли, задачи, результаты
Одиночный агент хорошо решает узкие задачи. Но написание исследовательского отчёта требует: найти источники, проанализировать данные, написать текст, проверить факты, отформатировать - и каждый шаг оптимален при другом наборе инструментов и промптов. **CrewAI** моделирует это как команду специалистов (crew) с ролями, задачами и общим результатом.
**Process types в CrewAI**: `sequential` - задачи выполняются по очереди, результат предыдущей - контекст следующей. `hierarchical` - менеджер-агент распределяет задачи между исполнителями. `parallel` - задачи без зависимостей выполняются одновременно. Выбор зависит от структуры задачи.
В CrewAI параметр `context=[research_task]` у write_task означает:
AutoGen: агенты как участники диалога
Microsoft **AutoGen** использует другую модель: агенты общаются через сообщения в групповом чате. Нет явных ролей и задач - агенты реагируют на сообщения других, сами решают когда говорить и что делать. Это ближе к emergent поведению, чем к жёсткой оркестрации.
**GroupChat в AutoGen**: несколько агентов в одном чате, `GroupChatManager` выбирает кто говорит следующим. Полезно для задач типа code review: один пишет, второй критикует, третий тестирует. Кол-во раундов ограничивается `max_round`.
Чем AutoGen принципиально отличается от CrewAI по модели взаимодействия агентов?
Паттерны мультиагентной коллаборации
Мультиагентные системы используют несколько проверенных паттернов. **Debate**: несколько агентов занимают разные позиции по вопросу, аргументируют их, итоговый ответ - синтез. Улучшает качество на задачах с несколькими правильными подходами. **Reflection**: один агент генерирует, второй критикует, первый улучшает.
**Исследование Google DeepMind (2024)**: дебаты между агентами уменьшают sycophancy (тенденцию соглашаться). Один агент-критик, активно ищущий ошибки в ответе другого агента, улучшает точность на 15-30% на фактических вопросах.
Для какой задачи паттерн Debate наиболее подходит?
Оркестрация: LangGraph и stateful агенты
Реальные агентные системы требуют состояния: агент должен помнить что делал, обрабатывать ошибки, возобновляться после сбоев, поддерживать параллельные потоки. **LangGraph** от LangChain моделирует агента как граф: узлы - это функции (LLM вызовы, инструменты), рёбра - условные переходы.
**Checkpointing**: LangGraph с `MemorySaver` или `PostgresSaver` сохраняет состояние после каждого шага. Агент можно остановить и возобновить. Human-in-the-loop: граф может останавливаться в определённых узлах и ждать подтверждения человека через `interrupt_before` или `interrupt_after`.
**Мониторинг**: LangSmith (LangChain) и Langfuse - платформы для трассировки агентных систем. Каждый вызов LLM, каждый инструмент, весь граф выполнения - с latency, токенами, стоимостью. Без трассировки дебаггинг мультиагентной системы превращается в кошмар.
Больше агентов = лучший результат. Мультиагентная система всегда умнее одного агента
Мультиагентность добавляет сложность, latency и стоимость. Для большинства задач один хорошо спромпченный агент с нужными инструментами эффективнее
Каждый агент - это LLM вызов. 5 агентов = минимум 5x стоимость и latency. Мультиагентность оправдана когда задача явно разбивается на специализированные подзадачи или когда важна проверка через debate/reflection.
Зачем LangGraph использует checkpointing с `MemorySaver`?
Ключевые идеи
- **CrewAI**: агенты с ролями выполняют задачи с зависимостями. Sequential/hierarchical/parallel процессы. Подходит для пайплайнов с чёткой структурой.
- **AutoGen**: агенты общаются через сообщения без жёсткой структуры. GroupChat с manager-ом. Подходит для collaborative задач с emergent поведением.
- **Паттерны**: Pipeline, Debate, Reflection, Parallel Specialization, Hierarchical. Debate снижает sycophancy и улучшает качество на неоднозначных задачах.
- **LangGraph**: stateful агенты через граф с условными переходами. Checkpointing, human-in-the-loop, возобновление после сбоев.
- **Осторожность**: больше агентов = больше latency, стоимость и сложность. Мультиагентность оправдана для задач со специализацией или debate, не для простых задач.
Связанные темы
Мультиагентные системы строятся поверх базовых механизмов:
- Function Calling и Tool Use — Каждый агент использует tool calling для взаимодействия с внешним миром. Один агент может быть инструментом для другого
- GenAI System Design — Архитектурные решения мультиагентных систем: когда нужна мультиагентность, как избежать излишней сложности
- AI Safety и Alignment — Мультиагентные системы умножают риски: prompt injection в один агент может скомпрометировать всю систему
Вопросы для размышления
- Агент-писатель использует результат агента-исследователя. Если исследователь галлюцинировал - ошибка распространится дальше. Как обнаруживать и изолировать ошибки в мультиагентном пайплайне?
- CrewAI и AutoGen используют разные модели взаимодействия. Для какого класса задач каждый подход предпочтительнее?
- Human-in-the-loop в LangGraph останавливает агента для подтверждения. Как найти баланс между автономностью агента и необходимым контролем человека?
Связанные уроки
- gai-17 — Мультиагентные системы строятся на вызове инструментов
- gai-19 — Много агентов умножают стоимость и задержку инференса
- aie-19-multi-agent — Продакшен-паттерны оркестрации мультиагентов
- rl-14 — Сотрудничество агентов похоже на multi-agent RL
- aie-21-orchestration-patterns — Оркестрация координирует агентов как движок процессов
- dist-03-fallacies