Как запустить multi-agent систему на AutoGen с локальной Llama 3 через Ollama. Пошаговая инструкция: установка, настройка агентов, код, решение проблем.
AutoGen (Microsoft) — фреймворк для создания multi-agent систем, где несколько AI-агентов общаются друг с другом для решения задач. Llama 3 (Meta) — открытая модель, которую можно запустить локально через Ollama. Связка AutoGen + Llama 3 даёт полностью приватную multi-agent систему без внешних API-запросов.
Потребуется Python 3.10+, Ollama и пакет autogen. Установка занимает ~10 минут.
# Установка Ollama curl -fsSL https://ollama.com/install.sh | sh # Скачать Llama 3 (8B — минимальная, 70B — мощная) ollama pull llama3:8b # Проверить что работает: ollama run llama3:8b "Hello from Llama 3!"
# Установка autogen с поддержкой Ollama pip install pyautogen ollama openai # Проверить версию: python -c "import autogen; print(autogen.__version__)" → 0.7.5
AutoGen использует OpenAI-совместимый API. Ollama предоставляет такой API на порту 11434. Настраиваем конфиг.
import autogen import os # Конфигурация LLM через Ollama config_list = [ { "model": "llama3:8b", "base_url": "http://localhost:11434/v1", "api_key": "ollama", # не требуется, но autogen ждёт "price": [0, 0], # локально = бесплатно } ] # Настройка агентов llm_config = { "config_list": config_list, "temperature": 0.7, "max_tokens": 2048, "timeout": 120, }
Создаём систему из трёх агентов: Писатель (пишет код), Ревьюер (проверяет), Критик (даёт фидбек). Работают по кругу пока не придут к консенсусу.
# Создаём агентов writer = autogen.AssistantAgent( name="Writer", system_message="Ты пишешь Python-код. Пиши чистый, документированный код с type hints. Отвечай ТОЛЬКО кодом в ```python``` блоке.", llm_config=llm_config, ) reviewer = autogen.AssistantAgent( name="Reviewer", system_message="Ты ревьюишь код: ищешь баги, проблемы безопасности, нарушения best practices. Если код идеален — скажи 'LGTM' и заверши.", llm_config=llm_config, ) critic = autogen.AssistantAgent( name="Critic", system_message="Ты даёшь конструктивную критику: что улучшить в архитектуре, производительности, читаемости.", llm_config=llm_config, ) # User Proxy — представляет человека, выполняет код user_proxy = autogen.UserProxyAgent( name="User", human_input_mode="NEVER", max_consecutive_auto_reply=5, code_execution_config={ "work_dir": "coding", "use_docker": False }, ) # Групповой чат — агенты общаются по кругу groupchat = autogen.GroupChat( agents=[user_proxy, writer, reviewer, critic], messages=[], max_round=8, ) manager = autogen.GroupChatManager( groupchat=groupchat, llm_config=llm_config, ) # Запуск! user_proxy.initiate_chat( manager, message="Напиши REST API endpoint для поиска пользователей по фильтрам: имя, email, роль, дата регистрации. Используй FastAPI + SQLAlchemy + Pydantic.", )
pip install openai==1.55.0 # AutoGen 0.7.x требует openai>=1.12
# Решение: увеличить max_tokens в llm_config llm_config = { "max_tokens": 4096, # было 2048 } # Или использовать llama3:70b для сложных задач
# Решение: уменьшить max_round или добавить termination_msg user_proxy = autogen.UserProxyAgent( ... is_termination_msg=lambda x: "LGTM" in x.get("content", ""), )
AutoGen + Llama 3 — мощная связка для полностью локальных multi-agent систем. На Llama 3 8B система справляется с генерацией CRUD-кода, простым рефакторингом и написанием тестов. Для сложных архитектурных задач лучше переключиться на llama3:70b (требует 40+ GB VRAM) или использовать облачный API как fallback. Главный плюс — нулевая стоимость API-запросов и полный контроль над данными.
Нужна помощь с оплатой AI-инструментов?
Оплата AutoGen