MetaGPT Полное руководство по лучшему доступному в данный момент искусственному интеллектуальному агенту

MetaGPT - Full guide to the best currently available artificial intelligence agent

С использованием крупных языковых моделей (LLM), таких как ChatGPT, OpenAI столкнулась с ростом принятия их предприятиями и пользователями, в настоящее время получая около 80 миллионов долларов ежемесячного дохода. Согласно недавнему докладу The Information, компания, базирующаяся в Сан-Франциско, предположительно нацелена на достижение ежегодного дохода в размере 1 миллиарда долларов.

В последний раз мы погрузились в AutoGPT и GPT-Engineering, ранние основные открытые LLM-основанные AI-агенты, разработанные для автоматизации сложных задач. Несмотря на перспективность, у этих систем было свое множество проблем: несогласованные результаты, узкие места производительности и ограничения в обработке многоаспектных требований. Они проявляют компетентность в генерации кода, но их возможности часто ограничиваются этим. Они не имеют критически важных функций управления проектом, таких как генерация PRD, генерация технического дизайна и прототипирование интерфейса API.

Вступает MetaGPT – мультиагентная система, которая использует крупные языковые модели Сируи Хонга, объединяет стандартизированные процедуры работы (SOP) с мультиагентными системами на основе LLM. Эта новая парадигма нарушает существующие ограничения LLM в обеспечении эффективного сотрудничества и декомпозиции задач в сложных приложениях реального мира.

Красота MetaGPT заключается в его структурировании. Он использует техники метапрограммирования для манипулирования, анализа и преобразования кода в реальном времени. Цель? Реализовать гибкую, гибкую архитектуру программного обеспечения, которая может адаптироваться к динамическим программным задачам.

Гибкая разработка

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

Понимание фреймворка MetaGPT

Фреймворк MetaGPT (https://arxiv.org/pdf/2308.00352.pdf)

Основные и сотруднические слои

Архитектура MetaGPT разделена на два слоя: слой основных компонентов и слой сотрудничества.

  1. Слой основных компонентов: Этот слой фокусируется на отдельных операциях агентов и облегчает обмен информацией в системе. Он вводит основные строительные блоки, такие как среда, память, роли, действия и инструменты. Среда создает условия для общих рабочих пространств и коммуникационных каналов, а память служит архивом исторических данных. Роли воплощают предметную область, действия выполняют модульные задачи, а инструменты предлагают общие услуги. Этот слой фактически служит операционной системой для агентов. Более подробную информацию о том, как они взаимодействуют, можно найти в статье “Beyond ChatGPT; AI Agent: A New World of Workers”.
  2. Слой сотрудничества: Построенный поверх основных компонентов, этот слой управляет и оптимизирует совместные усилия отдельных агентов. Он вводит два механизма: обмен знаниями и инкапсуляцию рабочих процессов.
    • Обмен знаниями: Это действует как средство сотрудничества, связывающее агентов друг с другом. Агенты могут сохранять, извлекать и обмениваться информацией на разных уровнях, тем самым уменьшая избыточность и повышая операционную эффективность.
    • Инкапсуляция рабочих процессов: Здесь вступают в игру стандартизированные процедуры работы (SOP). SOP действуют как чертежи, разбивающие задачи на управляемые компоненты. Агентам назначаются эти подзадачи, и их работа соответствует стандартизированным результатам.

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

https://arxiv.org/pdf/2308.00352.pdf

Кроме того, “якорные агенты” предоставляют ролевое руководство этим агентам. Например, роль менеджера продукта может быть инициализирована с ограничением “эффективное создание успешного продукта”. Якорные агенты гарантируют, что поведение агентов соответствует общим целям, тем самым оптимизируя производительность.

Познавательные процессы в агентах MetaGPT

MetaGPT может наблюдать, мыслить, размышлять и действовать. Они функционируют через определенные поведенческие функции, такие как _think(), _observe(), _publish_message() и т.д. Эта когнитивная модель оснащает агентов активными учениками, способными адаптироваться и развиваться.

  1. Наблюдение: Агенты сканируют свою окружающую среду и интегрируют ключевые данные в свою память.
  2. Мыслить и размышлять: С помощью функции _think(), роли обдумывают прежде чем приступить к действиям.
  3. Рассылка сообщений: Агенты используют функцию _publish_message() для обмена текущими статусами задач и связанными записями действий.
  4. Усвоение знаний и действие: Агенты оценивают входящие сообщения и обновляют свои внутренние хранилища перед принятием следующего шага.
  5. Управление состоянием: С функциями, такими как блокировка задачи и обновление статуса, роли могут последовательно обрабатывать несколько действий без прерываний, отражая сотрудничество людей в реальном мире.

Механизмы проверки кода для MetaGPT

Проверка кода является важной частью жизненного цикла разработки программного обеспечения, но отсутствует в нескольких популярных фреймворках. Как MetaGPT, так и AgentVerse поддерживают возможности проверки кода, но MetaGPT идет дальше. Он также включает предварительное выполнение компиляции, которое помогает обнаруживать ошибки на ранних этапах и, таким образом, повышает качество кода. Учитывая итеративную природу программирования, эта функция не просто дополнение, а требование для любого зрелого средства разработки.

Квантитативные эксперименты, проведенные на нескольких задачах, показали, что MetaGPT превосходит своих конкурентов практически во всех сценариях. Показатель Pass@1 является мерой способности фреймворка генерировать точный код за одну итерацию. Этот показатель предлагает более реалистичное отражение полезности фреймворка в практической среде. Более высокий показатель Pass@1 означает меньше отладки и большую эффективность, прямо влияющую на циклы разработки и затраты. По сравнению с другими продвинутыми средствами генерации кода, такими как CodeX, CodeT и даже GPT-4, MetaGPT превосходит их всех. Способность фреймворка достигать показателя Pass@1 от 81.7% до 82.3% на бенчмарках HumanEval и MBPP.

Сравнение метрик MBPP и HumanEval между MetaGPT и другими ведущими моделями (https://arxiv.org/pdf/2308.00352.pdf)

Фреймворк также использует меньше токенов и вычислительных ресурсов, достигая высокого уровня успеха при доле традиционных затрат на разработку программного обеспечения. Данные показывают среднюю стоимость всего $1.09 за проект с использованием MetaGPT, что является лишь долей того, что разработчик взял бы за выполнение той же задачи.

Шаги по локальной установке MetaGPT на вашу систему

Установка NPM и Python

  1. Проверьте и установите NPM: Прежде всего, убедитесь, что NPM установлен на вашей системе. Если он не установлен, вам потребуется установить node.js. Чтобы проверить наличие NPM, выполните эту команду в терминале: npm --version. Если вы видите номер версии, вы готовы продолжить.
  2. Чтобы установить mermaid-js, зависимость для MetaGPT, выполните команду: sudo npm install -g @mermaid-js/mermaid-cli или npm install -g @mermaid-js/mermaid-cli
  3. Проверьте версию Python: Убедитесь, что у вас установлена Python версии 3.9 или выше. Чтобы проверить версию Python, откройте терминал и введите: python --version. Если ваша версия не актуальна, загрузите последнюю версию с официального веб-сайта Python.
  4. Клонируйте репозиторий MetaGPT: Начните с клонирования репозитория MetaGPT на GitHub с помощью команды git clone https://github.com/geekan/metagpt. Убедитесь, что у вас установлен Git для этого. Если нет, посетите эту страницу.
  5. Перейдите в каталог: После клонирования перейдите в каталог MetaGPT с помощью команды cd metagpt.
  6. Установка: Выполните установочный скрипт Python для установки MetaGPT с помощью команды python setup.py install.
  7. Создайте приложение: Запустите python startup.py "ENTER-PROMPT" --code_review True

Примечание:

  • Ваш новый проект теперь должен находиться в каталоге workspace/.
  • --code_review True позволит модели GPT выполнять дополнительные операции, которые обеспечат точное выполнение кода, но обратите внимание, что это будет стоить больше.
  • Если при установке возникает ошибка разрешений, попробуйте выполнить python setup.py install --user в качестве альтернативы.
  • Для доступа к конкретным выпускам и дополнительным сведениям посетите официальную страницу выпусков MetaGPT на GitHub: MetaGPT Releases.

Установка Docker

Для тех, кто предпочитает контейнеризацию, Docker упрощает процесс:

  • Получите образ Docker: Загрузите официальный образ MetaGPT и подготовьте файл конфигурации:

docker pull metagpt/metagpt:v0.3.1``mkdir -p /opt/metagpt/{config,workspace}``docker run --rm metagpt/metagpt:v0.3.1 cat /app/metagpt/config/config.yaml > /opt/metagpt/config/key.yaml`` vim /opt/metagpt/config/key.yaml

  • Запустите контейнер MetaGPT: Выполните контейнер с помощью следующей команды:

docker run --rm --privileged \`` -v /opt/metagpt/config/key.yaml:/app/metagpt/config/key.yaml \`` -v /opt/metagpt/workspace:/app/metagpt/workspace \`` metagpt/metagpt:v0.3.1 \`` python startup.py "Create a simple and interactive CLI based rock, paper and scissors game" --code_review True

Настройка MetaGPT с вашим ключом API OpenAI

После начальной настройки вам потребуется интегрировать MetaGPT с вашим ключом API OpenAI. Вот шаги, которые необходимо предпринять:

  1. Найдите или сгенерируйте свой ключ OpenAI: Вы можете найти этот ключ в вашей панели управления OpenAI в разделе настроек API.
  2. Установите ключ API: У вас есть возможность поместить ключ API в файлы config/key.yaml или config/config.yaml, либо установить его как переменную среды (env). Приоритетный порядок: config/key.yaml > config/config.yaml > env.
  3. Чтобы установить ключ, перейдите в файл config/key.yaml и замените заполнитель текста на ваш ключ OpenAI: OPENAI_API_KEY: "sk-..."

Не забудьте сохранить ваш ключ API OpenAI в безопасности. Никогда не размещайте его в публичном репозитории или не делитесь им с неавторизованными лицами.

Иллюстрация использования

Я дал задание разработать игру “камень, ножницы, бумага” на основе интерактивной командной строки, и MetaGPT успешно выполнил это задание.

Ниже представлено видео, демонстрирующее фактическое выполнение сгенерированного кода игры.

Запуск демонстрационной работы MetaGPT

MetaGPT предоставил документ системного проектирования в формате Markdown – легковесного языка разметки, который широко используется. Этот файл Markdown был насыщен диаграммами UML, что позволяет получить подробное представление об архитектурном проекте. Более того, в нем были подробно описаны спецификации API с HTTP-методами, конечными точками, объектами запроса/ответа и кодами состояния

Выходные данные MetaGPT – системное проектирование в формате Markdown

Диаграмма классов подробно описывает атрибуты и методы нашего класса Game, предоставляя абстракцию, которую легко понять. Она также визуализирует последовательность вызовов программы, эффективно превращая абстрактные идеи в конкретные шаги.

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

Заключение: MetaGPT — Революция в разработке программного обеспечения

MetaGPT переопределяет область генеративного искусственного интеллекта и разработки программного обеспечения, предлагая безупречное сочетание интеллектуальной автоматизации и гибкого управления проектами. Превосходя возможности ChatGPT, AutoGPT и традиционных моделей LangChain, он превосходит в разложении задач, эффективной генерации кода и планировании проектов. Узнайте больше на

Вот основные выводы из этой статьи:

  1. Сила мета-программирования: Используя мета-программирование, MetaGPT предоставляет гибкую и адаптивную программную среду. Он выходит за рамки узкой функциональности устаревших инструментов и предлагает трансформационный подход, который обрабатывает не только кодирование, но и управление проектами и принятие решений.
  2. Двухуровневая архитектура: С помощью своих основных и сотруднических уровней MetaGPT эффективно создает синергетическую экосистему, где агенты могут работать слаженно, подобно профессионально управляемой команде разработчиков.
  3. Оптимизированный код-ревью: Помимо генерации кода, MetaGPT предлагает функции предварительной компиляции, которые являются системой предупреждения об ошибках. Это не только экономит время отладки, но и гарантирует качество кода.
  4. Когнитивные агенты: Интеллектуальные агенты MetaGPT, обладающие когнитивными функциями, такими как _observe(), _think() и _publish_message(), развиваются и адаптируются, обеспечивая то, что ваше программное решение не просто кодируется, но и “интеллектуально”.
  5. Установка и развертывание: Мы показали, что MetaGPT может быть легко настроен, будь то локальная установка через npm и Python или контейнеризация через Docker.