“`html
Введение:
Крупные языковые модели (CodeLLMs) продемонстрировали выдающиеся результаты в генерации кода. Однако они испытывают трудности с выполнением сложных задач по разработке программного обеспечения, таких как создание целой программной системы на основе сложных спецификаций. Недавние работы, включая ChatDev и MetaGPT, представили мультиагентные фреймворки для разработки программного обеспечения, где агенты сотрудничают для достижения сложных целей. Однако они склонны упрощать сложную природу разработки программного обеспечения в реальном мире, где программное обеспечение постоянно развивается и улучшается.
Внедрение AgileCoder:
В данной работе команда исследователей из FPT Software AI Center предлагает AgileCoder, новый фреймворк, который имитирует сложный процесс разработки программного обеспечения в реальном мире, черпая вдохновение из Agile-методологии, широко используемого подхода в профессиональных командах разработки программного обеспечения. Примерно 70% профессиональных команд используют Agile-методологию, которая лучше подходит для разработки программного обеспечения в реальном мире. AgileCoder основан на ключевом концепте Agile: программное обеспечение постоянно развивается со временем, и поэтому разработка должна быть структурирована в виде спринтов (фаз).
Роли агентов и сотрудничество:
AgileCoder состоит из нескольких агентов, играющих различные роли: менеджер проекта, скрам-мастер, разработчик, старший разработчик и тестировщик. Эти агенты сотрудничают на протяжении спринтов для выполнения пользовательских задач в соответствии с методологией Agile. Адаптируя рабочие процессы Agile к мультиагентному фреймворку, AgileCoder подчеркивает динамическую адаптивность и итеративную разработку. Результаты и проблемы предыдущих спринтов наследуются и улучшаются в последующих спринтах, увеличивая вероятность успеха конечных продуктов.
Генератор динамического графа кода:
Ключевым новшеством в AgileCoder является генератор динамического графа кода, который создает граф зависимостей кода (CDG), моделирующий отношения между файлами кода и обновляющийся при изменениях исходного кода. CDG играет ключевую роль в написании обоснованных планов тестирования и обеспечивает эффективное извлечение кода. Он служит надежным источником для агентов, чтобы получить соответствующую и достаточную информацию, помогая избежать включения несущественной информации в подсказки.
Оценка и результаты:
Комплексные оценки на бенчмарках, таких как HumanEval, MBPP и ProjectDev, демонстрируют превосходную производительность AgileCoder. На HumanEval и MBPP, которые включают простые задачи по программированию на уровне соревнований, AgileCoder значительно превосходит CodeLLMs и передовые мультиагентные фреймворки, такие как ChatDev и MetaGPT. Для оценки производительности при более сложных требованиях команда создала набор данных под названием ProjectDev, содержащий требования из реальных проектов программного обеспечения. Результаты оценки показывают, что AgileCoder эффективнее других базовых вариантов в генерации программного обеспечения из таких сложных требований.
Заключение:
AgileCoder – новый мультиагентный фреймворк разработки программного обеспечения, вдохновленный методологией Agile. Его ключевым новшеством является генератор динамического графа кода, создающий граф зависимостей кода, который отражает развивающиеся отношения между кодом для разработки планов тестирования и обеспечения эффективного извлечения кода. Следуя методологии Agile, AgileCoder лучше отражает рабочие процессы реальной разработки программного обеспечения и поддерживает динамическую адаптивность и итеративную разработку. Обширные оценки показывают превосходство AgileCoder над существующими методами, такими как ChatDev и MetaGPT, что делает его многообещающим подходом для выполнения сложных задач разработки программного обеспечения с использованием CodeLLMs.
“`