Многоагентные рабочие процессы часто терпят неудачу. Вот как спроектировать тех, кто этого не делает.

Многоагентные рабочие процессы часто терпят неудачу. Вот как спроектировать тех, кто этого не делает.


Если вы создали многоагентный рабочий процесс, вы, вероятно, видели его сбой, который трудно объяснить.

Система завершена, и агенты начинают действовать. Но где-то по пути что-то идет не так. Вы можете увидеть, как агент закрывает проблему, которую только что открыл другой агент, или отправляет изменение, которое не прошло последующие проверки, о которых он или она не знали.

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

Благодаря нашей работе над агентным взаимодействием, внутренней автоматизацией и новыми шаблонами многоагентной оркестровки в GitHub Copilot на GitHub мы увидели, что многоагентные системы ведут себя не столько как интерфейсы чата, сколько как распределенные системы.

Этот пост предназначен для инженеров, создающих мультиагентные системы. Мы узнаем о наиболее распространенных причинах их выхода из строя и инженерных закономерностях, которые делают их более надежными.

1. Естественный язык беспорядочен. Типизированная схема делает ее надежной.

Многоагентные рабочие процессы часто быстро терпят неудачу, потому что агенты обмениваются нецензурной лексикой или противоречивым JSON. Имена полей меняются, типы данных не совпадают, форматирование меняется, и ничто не обеспечивает согласованность.

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

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

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

Это изменило отладку с «проверить журналы и предположить» на «эта полезная нагрузка нарушила схему X». Относитесь к нарушениям схемы как к сбоям контракта: повторите попытку, исправьте или продолжайте, прежде чем плохая ситуация распространится.

Итог: Таблицы типизированной схемы играют важную роль в многоагентных рабочих процессах. Без них никакая другая работа невозможна. Посмотрите, как модели GitHub позволяют структурировать и повторять рабочие процессы ИИ в реальных проектах. 👉

2. Неясные намерения диверсантов. Планы действий ясно дают это понять.

Даже с типизированными данными мультиагентные рабочие процессы по-прежнему терпят неудачу, поскольку LLM следуют не неявному намерению, а только явным инструкциям.

«Проанализируйте проблему и помогите команде принять меры» звучит очевидно. Но разные агенты могут закрывать, назначать, повышать уровень или ничего не делать — каждый из них разумен, ни один не автоматизирован.

Схемы действий исправляют это, определяя точный набор разрешенных действий и их структуру. Каждый шаг не требует структуры, но результат всегда должен соответствовать небольшому и четкому набору задач.

Вот как может выглядеть схема действий:

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

При реализации агенты должны возвращать ровно одно допустимое действие. Все остальное не проходит проверку и повторяется или передается дальше.

Итог: Большинство сбоев агентов — это сбои действий. Это руководство полезно для написания эффективных пользовательских инструкций – на уровне инструкций – чтобы уменьшить двусмысленность еще на ранних этапах рабочего процесса. 👉

3. Незакрепленные интерфейсы создают ошибки. MCP добавляет агентам необходимую структуру.

Типизированная схема, ограниченные действия и структурированная логика работают только тогда, когда они применяются последовательно. Без принуждения они являются конвенциями, а не гарантиями.

Протокол контекста модели (MCP) — это уровень обеспечения соблюдения, который превращает эти шаблоны в контракты.

MCP определяет явную схему ввода и вывода для каждого устройства и ресурса, проверяя вызовы перед выполнением.

{
  "name": "create_issue",
  "input_schema": { ... },
  "output_schema": { ... }
}

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

Итог: Схемы определяют структуру, а схемы действий определяют намерение. MCP реализует оба варианта. Узнайте больше о том, как работает MCP и почему это важно. 👉

двигаться вперед вместе

Мультиагентные системы работают, когда структура ясна. Когда вы добавляете типизированную схему, ограниченные действия и структурированные интерфейсы, реализуемые MCP, агенты начинают вести себя как доверенные компоненты системы.

Изменение простое, но мощное: относитесь к агентам как к коду, а не как к интерфейсу чата.

Узнайте, как MCP обеспечивает структурированное, детерминированное взаимодействие агента и инструмента. 👉

написал

Многоагентные рабочие процессы часто терпят неудачу. Вот как спроектировать тех, кто этого не делает.

Гвен Дэвис — старший специалист по контент-стратегии в GitHub, где она пишет об опыте разработчиков, рабочих процессах на основе искусственного интеллекта и развитии карьеры в сфере технологий.

Leave a Reply

Your email address will not be published. Required fields are marked *