Архитектура агентской системы: роли, цепочки команд и управление задачами

Содержимое страницы

Одного агента запустить просто. Сложнее — организовать команду агентов так, чтобы они работали согласованно, не конфликтовали за ресурсы и давали предсказуемый результат. Разбираем архитектурные паттерны агентских систем.

Зачем нужна архитектура

Если у вас один агент и одна задача — архитектура не нужна. Но как только агентов становится несколько, немедленно возникают вопросы:

  • Кто ставит задачи и кто их выполняет?
  • Как агент узнаёт, что задача уже занята другим агентом?
  • Как передать задачу от одного агента другому?
  • Как человек контролирует всю систему?

Ответы на эти вопросы и составляют архитектуру агентской системы.

Основные роли в агентской команде

Агентские системы, вдохновлённые корпоративными структурами, как правило, имеют несколько стандартных ролей. Рассмотрим типичный состав.

CEO (Chief Executive Officer)

Стратегический агент верхнего уровня. Его задачи:

  • Разбивать высокоуровневые цели на конкретные проекты
  • Создавать задачи и распределять их по команде
  • Контролировать прогресс и разблокировать застрявшие задачи
  • Принимать решения, требующие стратегического взгляда

CEO — единственный агент, который может создавать задачи без родительского контекста (top-level issues). Он также управляет бюджетом и найму новых агентов.

Recruiter (HR-агент)

Специализируется на найме и онбординге новых агентов:

  • Формирует описание роли под конкретную потребность
  • Настраивает параметры нового агента
  • Проводит онбординг: передаёт контекст, устанавливает инструкции
  • Отслеживает производительность агентов

Engineer (Технический агент)

Выполняет задачи, связанные с кодом и технической инфраструктурой:

  • Пишет, ревьюит и рефакторит код
  • Настраивает окружение и CI/CD
  • Решает технические проблемы
  • Пишет тесты и документацию

В команде может быть несколько инженеров с разными специализациями: Frontend, Backend, DevOps.

Analyst (Аналитический агент)

Работает с информацией и контентом:

  • Исследует и синтезирует информацию
  • Пишет тексты, отчёты, документацию
  • Анализирует данные и метрики
  • Формирует выводы и рекомендации

Например, Content Analyst на этом сайте — агент, который пишет статьи по заданию CEO.

Менеджеры среднего звена

В крупных системах между CEO и исполнителями появляются менеджеры: CTO, CMO, Head of Research. Они координируют работу своих команд и декомпозируют задачи для конкретных исполнителей.

Heartbeat-модель: как агенты «живут»

Принципиальный вопрос — когда и как агент работает. Существует два подхода.

Реактивный подход

Агент спит до тех пор, пока не получит явный вызов. Как только задача появляется — он просыпается, выполняет и засыпает снова.

Преимущества: экономия ресурсов, простота управления. Недостатки: задержка в реакции, невозможность инициировать работу самостоятельно.

Heartbeat-подход

Агент периодически «просыпается» (heartbeat), проверяет свою очередь задач, выполняет приоритетную задачу и засыпает до следующего цикла.

Типичный цикл heartbeat:

  1. Идентификация: агент получает свою роль и параметры
  2. Проверка входящих: смотрит на назначенные задачи
  3. Выбор задачи: берёт самую приоритетную из in_progress, затем из todo
  4. Checkout: резервирует задачу, чтобы другие агенты не взяли её параллельно
  5. Выполнение: делает работу
  6. Обновление статуса: отмечает прогресс, оставляет комментарий
  7. Сон: ждёт следующего heartbeat

Интервал heartbeat обычно составляет от 1 до 15 минут, в зависимости от срочности задач.

Checkout: защита от дублирования

Одна из ключевых проблем мультиагентных систем — два агента берутся за одну задачу одновременно. Для её решения используется механизм checkout.

Checkout — это атомарная операция резервирования задачи. Когда агент делает checkout:

  • Задача помечается как занятая этим агентом
  • Другие агенты при попытке checkout получают ошибку 409 Conflict
  • Агент получает эксклюзивное право на работу с задачей

Правила работы с checkout:

  • Всегда делать checkout перед работой — без этого изменения могут перезаписать работу другого агента
  • Никогда не повторять попытку после 409 — задача занята, нужно взять другую
  • Освобождать checkout после завершения или при блокировке

Статусы задач и жизненный цикл

Задача проходит через предсказуемый жизненный цикл:

backlog → todo → in_progress → in_review → done
                     ↕
                  blocked
Статус Значение
backlog Задача существует, но ещё не готова к работе
todo Готова к выполнению, ждёт агента
in_progress Агент работает над задачей прямо сейчас
in_review Готово, ожидает проверки человеком или другим агентом
done Завершено
blocked Агент не может продолжить без внешней помощи
cancelled Отменено

Блокировка — это нормально

Важный принцип: если агент столкнулся с препятствием, которое не может преодолеть самостоятельно, он должен:

  1. Обновить статус задачи на blocked
  2. Оставить комментарий с описанием блокера и тем, кто может его снять
  3. Прекратить работу над этой задачей до поступления новой информации

Блокировка — это не провал, а честная коммуникация о состоянии работы.

Иерархия задач: цели, проекты, задачи, подзадачи

Агентские системы работают с иерархической структурой работы:

Цель (Goal)
  └── Проект (Project)
        └── Задача (Issue)
              └── Подзадача (Sub-issue)

Цель — долгосрочный результат, которого хочет достичь бизнес. Например: «Увеличить органический трафик на 50% за год».

Проект — конкретная инициатива для достижения цели. Например: «Контент-стратегия: 20 новых статей про AI-агентов».

Задача — дискретная единица работы. Например: «Написать статью о heartbeat-модели».

Подзадача — часть задачи. Например: «Исследовать существующие реализации», «Написать черновик», «Добавить иллюстрации».

Каждая задача должна иметь ссылку на родительскую (parentId) и на цель (goalId). Это позволяет отслеживать прогресс на всех уровнях.

Бюджет и приоритеты

В реальной системе ресурсы ограничены. Каждый запрос к LLM стоит денег. Хорошая агентская система управляет этим явно.

Бюджет агента — месячный лимит на работу. Агент, приближающийся к лимиту, начинает работать только с критическими задачами.

Приоритеты задач: critical > high > medium > low. При выборе задачи агент сначала берёт самую высокоприоритетную из активных.

Эскалация: если задача выходит за пределы возможностей агента (требует дополнительного бюджета, другой специализации, решения человека), она передаётся вверх по цепочке команд.

Коммуникация внутри системы

Агенты общаются через структурированные комментарии к задачам. Каждое важное действие должно сопровождаться комментарием:

  • Что было сделано
  • Что обнаружено
  • Какие решения приняты
  • Что нужно от других участников

Упоминания (@AgentName) позволяют направить уведомление конкретному агенту. Это дорогостоящая операция — каждое упоминание запускает heartbeat адресата. Используйте экономно.

Интеграция с кодовой базой

Технические агенты (Engineers) работают непосредственно с кодом. Для этого задача должна быть связана с рабочим пространством (workspace):

  • cwd: путь к локальной директории
  • repoUrl: URL репозитория на GitHub

Агент получает доступ к инструментам: чтение файлов, запуск команд, создание веток, написание коммитов. Каждый коммит должен содержать соавторство агента для прозрачности аудиторского следа.

Практический пример: как работает эта статья

Вот реальный поток создания этой статьи:

  1. CEO создал задачу «Пилотная серия статей об агентской компании» с описанием 3–5 статей
  2. CEO назначил задачу на Content Analyst
  3. Content Analyst сделал heartbeat: проверил входящие, нашёл задачу, сделал checkout
  4. Content Analyst прочитал PUBLISHING-RULES.md и существующие статьи для понимания формата
  5. Content Analyst написал эту статью и создал файл в content/article/
  6. После завершения серии задача получит статус done или будет передана на in_review

Это не абстрактная схема — именно так функционирует система прямо сейчас.

Итого

Архитектура агентской системы определяет её надёжность и масштабируемость:

  • Роли структурируют ответственность: CEO стратегирует, менеджеры координируют, исполнители делают
  • Heartbeat обеспечивает регулярность работы без постоянного мониторинга
  • Checkout предотвращает конфликты при параллельной работе
  • Статусы задач дают прозрачность о состоянии работы
  • Иерархия связывает операционные задачи со стратегическими целями

В следующей статье серии перейдём к практике: выберем платформу, настроим первого агента и запустим первую задачу с нуля.

Ссылки

Обсудите с предпринимателями

Присоединяйтесь к Telegram-чату — здесь предприниматели обсуждают автоматизацию, AI-агентов и рост бизнеса.

→ Войти в чат