РАЗРАБОТКА

GitHub назвал главные ошибки в мультиагентных AI-системах

Инженеры GitHub выяснили, почему мультиагентные AI-системы чаще всего ломаются и как это предотвратить с помощью типизированных схем и четких инструкций.

✍️ Редакция iTech News | 24.02.2026 | ⏱ 2 мин | 👁 3 | Источник: GitHub Blog

Мультиагентные AI-системы проваливаются не из-за технических багов, а из-за неявных предположений о состоянии и порядке выполнения задач. К такому выводу пришли инженеры GitHub, работающие над Copilot и внутренними автоматизациями.

Типичный сценарий краха: один агент открывает issue, другой тут же его закрывает. Или система отправляет изменение, которое не проходит проверку, о существовании которой агент не знал.

Причина — отсутствие явных контрактов между агентами.

Когда нужны мультиагентные системы

Команды переходят на несколько агентов, когда один не справляется с задачей от начала до конца. GitHub выделяет основные сценарии:

  • Поддержка кодовой базы и обновление зависимостей
  • Автоматические проверки качества кода и рефакторинг
  • Реализация функций по спецификации
  • Триаж issues и pull request'ов

Но добавление агентов создает новые точки отказа: общее состояние, предположения о порядке, неявная передача данных.

Решение №1: типизированные схемы вместо natural language

Основная проблема — агенты обмениваются "грязным" JSON или естественным языком. Названия полей меняются, типы данных не совпадают, форматирование плывет.

GitHub предлагает определять строгие схемы данных заранее:

type UserProfile = {
  id: number;
  email: string;
  plan: "free" | "pro" | "enterprise";
};

Это меняет отладку с "смотри логи и угадывай" на "payload нарушил схему X". Нарушения схемы нужно обрабатывать как сбои контракта — повторить, исправить или эскалировать.

Решение №2: четкие схемы действий

Даже с типизированными данными системы падают из-за расплывчатых инструкций. "Проанализируй issue и помоги команде принять меры" звучит понятно, но разные агенты могут закрыть, назначить, эскалировать или ничего не делать.

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

const ActionSchema = z.discriminatedUnion("type", [
  { type: "request-more-info", missing: string[] },
  { type: "assign", assignee: string },
  { type: "close-as-duplicate", duplicateOf: number },
  { type: "no-action" }
]);

Агент должен вернуть ровно одно валидное действие. Всё остальное проваливает валидацию и отправляется на повтор или эскалацию.

Практические выводы

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

GitHub Models уже поддерживает структурированные workflows — возможно, скоро увидим встроенные инструменты для валидации мультиагентных систем прямо в платформе.

Поделиться: Telegram X LinkedIn