Autogen + Llama 3: Создание локальной команды AI-агентов для код-ревью
Пошаговое руководство по созданию многоагентной системы для автоматического код-ревью, рефакторинга и тестирования с использованием Autogen и локальной Llama 3.
🎯 О чём этот конспект: Разбор создания автономной системы из нескольких AI-агентов на базе фреймворка Autogen от Microsoft. Система имитирует работу Senior-команды: один агент проверяет код, второй делает рефакторинг, третий пишет тесты — и всё это работает 100% локально через Ollama и Llama 3.
👤 Кому будет полезно: Вайбкодерам, разработчикам и системным архитекторам, которые хотят внедрить автоматическое код-ревью в свой рабочий процесс без отправки данных в облако.
✨ Что получите: Готовую архитектуру многоагентной системы, которую можно интегрировать в CI/CD или использовать локально для повышения качества кода и автоматического написания тестов.
1. Концепция Autogen: Больше чем просто промпт
Контекст: Большинство AI-приложений работают по принципу «вопрос-ответ», но реальные задачи требуют обсуждения, итераций и разных ролей. Autogen — это фреймворк для оркестрации агентов, который позволяет создавать «групповые чаты» для AI. Вместо одной длинной инструкции вы создаете команду специалистов (Reviewer, Refactorer, Tester), где каждый имеет свою узкую специализацию и системную роль. Это позволяет избежать «галлюцинаций» и повышает качество результата за счет взаимной критики агентов.
Выгода: Гибкость в настройке ролей, локальный запуск (приватность данных) и возможность моделировать сложные человеческие рабочие процессы.
Как применить:
Шаг 1: Установка среды — Создайте виртуальное окружение и установите pyautogen.
Шаг 2: Настройка модели — Используйте Ollama для запуска Llama 3 локально.
Шаг 3: Определение агентов — Создайте AssistantAgent для каждой роли (ревьюер, разработчик, тестировщик).
2. Настройка локального LLM-бекенда через Ollama
Контекст: Для работы системы без OpenAI используется Ollama. Важно правильно настроить конфиг, чтобы Autogen понимал, куда отправлять запросы. Автор подчеркивает, что при локальном запуске критически важны параметры timeout и context size, так как локальное железо может отвечать медленнее облачных API.
Выгода: Полная независимость от платных подписок и безопасность кода (код не покидает ваш компьютер).
Как применить:
Шаг 1: Запуск Ollama — Убедитесь, что модель загружена в память:
ollama run llama3
Шаг 2: Конфигурация в коде — Создайте словарь настроек для агентов:
config_list = [ { "model": "llama3", "base_url": "http://localhost:11434/v1", "api_key": "ollama", # Ollama не требует ключа, но поле должно быть заполнено }]
3. Создание команды: Роли и системные промпты
Контекст: Эффективность агентов напрямую зависит от качества их системных сообщений. В видео создается три ключевых агента:
Code Correction Agent: Исправляет код на основе фидбека первого агента.
Test Case Agent: Генерирует Unit-тесты для финальной версии кода.
Также используется UserProxyAgent, который выступает в роли человека, подающего код на вход.
Выгода: Разделение ответственности позволяет каждому агенту фокусироваться на одной задаче, что дает более глубокую проработку, чем один запрос к ChatGPT.
Как применить:
Шаг 1: Создание Reviewer-агента — Используйте детальный промпт для задания личности:
reviewer = autogen.AssistantAgent( name="Reviewer", system_message="Ты - строгий Senior Engineer. Твоя задача: найти баги, ошибки типизации и проблемы с производительностью. Будь критичен.", llm_config={"config_list": config_list})
Шаг 2: Создание Refactor-агента — Настройте его на принятие правок:
refactorer = autogen.AssistantAgent( name="Refactorer", system_message="Ты - эксперт по Python. Исправляй код, основываясь ТОЛЬКО на замечаниях Reviewer. Сохраняй логику, улучшай структуру.", llm_config={"config_list": config_list})
4. Групповой чат и управление процессом
Контекст: Чтобы агенты не говорили одновременно и соблюдали порядок, используется GroupChat и GroupChatManager. Менеджер решает, кто говорит следующим (например: сначала Reviewer, потом Refactorer, потом Tester). Это превращает линейный скрипт в динамическое обсуждение.
Выгода: Автоматизация всей цепочки от сырого кода до протестированного результата за один запуск.
Как применить:
Шаг 1: Инициализация чата — Соберите всех агентов в один объект:
Шаг 2: Запуск процесса — Передайте исходный код через user_proxy:
user_proxy.initiate_chat( manager, message="Проведи ревью и исправь этот код: [ВАШ КОД ЗДЕСЬ]")
FAQ
В: Почему Autogen, а не CrewAI или LangChain? О: Autogen лучше всего подходит для задач, где важен диалог и взаимодействие между агентами. Он более гибкий в управлении очередностью ходов и лучше имитирует человеческое общение в команде.
В: Можно ли использовать другие модели вместо Llama 3? О: Да, Autogen — model-agnostic. Вы можете подключить любую модель через Ollama (Mistral, Phi-3, Qwen) или использовать OpenAI/Anthropic API, просто изменив config_list.
В: Что делать, если локальная модель выдает ошибку Timeout? О: При работе с локальными LLM нужно увеличить параметр timeout в конфиге (например, до 600 секунд) и убедиться, что модели хватает оперативной или видеопамяти (минимум 8-16 ГБ для Llama 3 8B).
В: Как передать агенту правила моей компании по оформлению кода? О: Добавьте эти правила в system_message агента Reviewer. Например: "Функции не должны превышать 50 строк" или "Обязательно наличие Docstrings в стиле Google".
В: Можно ли автоматизировать запуск тестов, которые создал агент? О: Да, в Autogen есть возможность выполнения кода. Для этого нужно настроить code_execution_config у UserProxyAgent, чтобы он мог запускать сгенерированные тесты в локальной песочнице (Docker или локальная папка).
Конспект создан на основе видео «Multi-Agent AI System with Autogen and Llama 3» канала Code Rash with Gaurav. Все права на оригинальный материал принадлежат авторам.Источник: https://www.youtube.com/watch?v=UTQOf8mDHFo