Генеративный 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 поднимает качество контента.

Предварительные знания

  • AI Agents: архитектура и провалы
  • Function Calling и Tool Use

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
Multi-Agent Systems

0

1

Войти