MetaGPT — мультиагентный фреймворк в роли программной компании

· 2 мин чтения
multi-agent framework python llm workflow
📂 Исходный код на GitHub

Мультиагентный Python-фреймворк MetaGPT: команда LLM-ролей работает как программная компания, превращая однострочное требование в документы и код.

MetaGPT — мультиагентный фреймворк в роли программной компании

MetaGPT — мультиагентный фреймворк «программная компания»

Большинство агентных фреймворков помогают одному агенту вызывать инструменты и держать контекст диалога. MetaGPT устроен иначе: он собирает из LLM целую команду, которая работает как программная компания. На вход подаётся однострочное требование — например, «сделай игру 2048». На выходе появляются user stories, конкурентный анализ, требования, структуры данных, API и репозиторий с кодом.

Проект написан на Python, распространяется под лицензией MIT и набрал около 70 тысяч звёзд на GitHub. За фреймворком стоит серьёзная исследовательская база: статья MetaGPT вышла на ICLR 2024, а построенная на идеях проекта система AFlow получила oral-презентацию на ICLR 2025 — это топ-1,8% всех работ конференции. С февраля 2025 года команда развивает и облачный продукт MGX (MetaGPT X) — «AI-команду разработчиков» с доступом через браузер.

Code = SOP(Team)

Главную идею MetaGPT авторы сжали в одну формулу: Code = SOP(Team). SOP — это standard operating procedures, стандартные операционные процедуры. В настоящих компаниях они описывают, кто, что и в каком порядке делает. MetaGPT переносит этот подход на команду из LLM: у каждой роли своя процедура, а результат одной роли становится входом для следующей.

Такой дизайн бьёт по известной проблеме LLM-генерации — каскаду ошибок. Когда один агент сам пишет требования, сам проектирует и сам кодирует, он додумывает контекст и накапливает ошибки. В MetaGPT цепочка разбита на этапы. Каждый этап фиксирует результат в виде документа. Следующий агент получает структурированную спецификацию, а не расплывчатое пожелание.

В базовый состав входят четыре роли:

Роль Что делает
Product manager user stories, конкурентный анализ, требования
Architect структуры данных и API
Project manager разбивка работы на задачи
Engineer код по спецификации

Роли и команды не обязаны совпадать с базовым набором. Как собирать своих агентов и связывать их в команды, показано в туториалах Agent 101 и MultiAgent 101.

Установка и настройка

Фреймворку нужен Python от 3.9 до 3.12. Установка через pip:

conda create -n metagpt python=3.9 && conda activate metagpt
pip install --upgrade metagpt

Перед использованием также нужно поставить Node.js и pnpm. Кто не хочет возиться с окружением, может взять Docker.

Конфиг создаётся одной командой:

metagpt --init-config

Она положит файл ~/.metagpt/config2.yaml, который останется заполнить. Минимальный пример:

llm:
  api_type: "openai"  # or azure / ollama / groq etc. Check LLMType for more options
  model: "gpt-4-turbo"  # or gpt-3.5-turbo
  base_url: "https://api.openai.com/v1"
  api_key: "YOUR_API_KEY"

Помимо OpenAI поддерживаются Azure, Ollama, Groq и другие провайдеры. Полный список опций — в примере конфига и в документации по настройке.

Запуск из командной строки и как библиотека

Самый короткий сценарий — одна команда:

metagpt "Create a 2048 game"  # creates a repo in ./workspace

Фреймворк прогонит требование через все роли и сложит готовый проект в ./workspace.

Тот же конвейер доступен из кода:

from metagpt.software_company import generate_repo
from metagpt.utils.project_repo import ProjectRepo

repo: ProjectRepo = generate_repo("Create a 2048 game")  # or ProjectRepo(S1)
print(repo)  # prints the repo structure with files

Попробовать без установки можно в демо на HuggingFace Space: там собрана та же «компания» в веб-интерфейсе.

Data Interpreter

Отдельная роль — Data Interpreter, агент для задач анализа данных. Он сам пишет код, исполняет его и дообучается на результатах шага. Классический пример — анализ датасета Iris с построением графика:

import asyncio
from metagpt.roles.di.data_interpreter import DataInterpreter

async def main():
    di = DataInterpreter()
    await di.run("Run data analysis on sklearn Iris dataset, include a plot")

asyncio.run(main())  # or await main() in a jupyter notebook

Подробности — в разделе документации.

Готовые сценарии

Кроме основной «компании», в проекте есть готовые конфигурации на один-два агента:

  • Debate — два агента с противоположными ролями спорят на заданную тему.
  • Researcher — агент, который собирает информацию по вопросу и сводит её в отчёт.

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

Исследовательская база

MetaGPT вырос из научной работы, и команда продолжает публиковать результаты:

Ссылки на остальные научные статьи собраны в ACADEMIC_WORK.md, планы развития — в ROADMAP.

Когда MetaGPT уместен

Фреймворк хорош, когда задача похожа на мини-проект: нужно пройти путь от идеи до работающего кода, и по дороге появляются артефакты — требования, схемы, документы. Типовые случаи: прототип по текстовому описанию, генерация полноценного репозитория, разбор данных через Data Interpreter.

Если же нужен тонкий контроль над каждым шагом агента, «компания» может оказаться лишним слоем. Тогда проще взять библиотеку напрямую и собрать свою схему из ролей и действий — туториалы выше показывают именно это.

Что почитать

Источник: https://github.com/FoundationAgents/MetaGPT