MetaGPT Implementation for Multi-Agent Software Development

We design and deploy artificial intelligence systems: from prototype to production-ready solutions. Our team combines expertise in machine learning, data engineering and MLOps to make AI work not in the lab, but in real business.
Showing 1 of 1 servicesAll 1566 services
MetaGPT Implementation for Multi-Agent Software Development
Medium
from 1 business day to 3 business days
FAQ
AI Development Areas
AI Solution Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1218
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    853
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1047
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    825

MetaGPT for Multi-Agent Software Development Integration

MetaGPT — multi-agent framework that simulates software development structure с ролями: Product Manager, Architect, Engineer, QA. Каждый агент выполняет свою роль: PM создаёт PRD, Architect — системный дизайн, Engineer пишет код, QA составляет тест-кейсы. MetaGPT использует SOP (Standard Operating Procedures) как основу координации.

Basic Development Workflow

# pip install metagpt
import asyncio
from metagpt.software_company import generate_repo, ProjectRepo

async def develop_feature(requirement: str) -> ProjectRepo:
    """Полный цикл разработки фичи через мульти-агентную систему"""

    repo = await generate_repo(
        idea=requirement,
        investment=3.0,          # Бюджет в $ (влияет на количество итераций)
        n_round=5,                # Количество раундов взаимодействия
        code_review=True,         # Включить code review
        run_tests=True,           # Запускать тесты
    )

    return repo

# Пример использования
result = asyncio.run(develop_feature(
    "Разработай REST API для управления задачами: CRUD операции, приоритеты, назначение на исполнителей. Python + FastAPI + PostgreSQL."
))

print(result.get_code())     # Сгенерированный код
print(result.get_tests())    # Тесты
print(result.get_docs())     # Документация

Custom Roles and Actions

from metagpt.roles import Role
from metagpt.actions import Action
from metagpt.schema import Message

class SecurityAuditAction(Action):
    """Аудит безопасности кода"""

    name: str = "SecurityAudit"
    i_context: str = ""

    async def run(self, code: str) -> str:
        prompt = f"""Проведи аудит безопасности следующего кода.
Проверь: SQL injection, XSS, hardcoded secrets, небезопасные зависимости,
отсутствие валидации входных данных.

Код:
{code}

Формат: список уязвимостей с severity (Critical/High/Medium/Low) и рекомендациями."""

        return await self._aask(prompt)


class SecurityEngineer(Role):
    """Специалист по безопасности в команде разработки"""

    name: str = "Security Engineer"
    profile: str = "Security Engineer"
    goal: str = "Обеспечить безопасность кода перед деплоем"
    constraints: str = "Проверяй только код, написанный командой"

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self._init_actions([SecurityAuditAction])
        self._watch([WriteCode])  # Реагирует на написание кода

    async def _act(self) -> Message:
        todo = self.rc.todo
        code = self.get_memories(k=1)[0].content

        audit_result = await todo.run(code)

        return Message(
            content=audit_result,
            role=self.profile,
            cause_by=type(todo),
        )

Usage in Specific Scenarios

from metagpt.team import Team
from metagpt.roles import ProjectManager, Architect, Engineer, QaEngineer

async def custom_team_development(requirement: str):
    """Команда с кастомным составом"""

    team = Team()
    team.hire([
        ProjectManager(),
        Architect(),
        Engineer(n_borg=2),      # 2 инженера для параллельного написания
        QaEngineer(),
        SecurityEngineer(),      # Кастомная роль
    ])

    team.invest(investment=5.0)
    team.run_project(requirement)

    await team.run(n_round=8)

Incremental Development

from metagpt.context import Context
from metagpt.roles import Engineer

async def add_feature_to_existing_codebase(
    existing_code_path: str,
    new_requirement: str,
):
    """Добавляет фичу в существующий код"""

    ctx = Context()

    # Загружаем существующий код как контекст
    ctx.repo = ProjectRepo(existing_code_path)

    engineer = Engineer(context=ctx)
    result = await engineer.run(
        Message(content=new_requirement, role="User")
    )

    return result

Practical Case: CRUD Module Generation

Задача: разработчики тратили 4–6 часов на стандартный CRUD-модуль (модель, репозиторий, сервис, контроллер, тесты). 20+ таких модулей в квартал.

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

Шаблон спецификации:

spec_template = """
Создай CRUD-модуль для сущности {entity_name}:
- Поля: {fields}
- Отношения: {relations}
- Бизнес-правила: {rules}
- Стек: FastAPI + SQLAlchemy 2.0 + Alembic + pytest
- Включи: pydantic схемы, репозиторий, сервис, роутер, тесты CRUD
"""

Результаты:

  • Время создания стандартного CRUD: 5ч → 40 мин (генерация 15 мин + ревью 25 мин)
  • Покрытие тестами: 73% → 89% (MetaGPT последователен в тестировании)
  • Единообразие кода: структура идентична по всем модулям
  • Разработчики: оценили снижение рутины, но отметили необходимость ревью бизнес-логики

Ограничения: сложная бизнес-логика (>3 уровней вложенности, нетривиальные алгоритмы) требует значительной доработки. MetaGPT хорош для структурного кода, слабее для алгоритмически нетривиальных задач.

Integration with CI/CD

# GitHub Action для автогенерации по issue
import yaml

github_action = """
name: MetaGPT Feature Generation
on:
  issues:
    types: [labeled]

jobs:
  generate:
    if: contains(github.event.issue.labels.*.name, 'metagpt-generate')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Generate code
        run: |
          pip install metagpt
          python scripts/generate_feature.py "${{ github.event.issue.body }}"
      - name: Create PR
        uses: peter-evans/create-pull-request@v6
        with:
          title: "[MetaGPT] ${{ github.event.issue.title }}"
          branch: metagpt/${{ github.event.issue.number }}
"""

Timeline

  • Базовый generate_repo для прототипов: 1–2 дня настройки
  • Кастомные роли под процессы команды: 1–2 недели
  • Интеграция в существующий CI/CD: 1 неделя
  • Настройка quality gates и review процессов: 1–2 недели