🤖🦙

AutoGen + Llama 3: Интеграция

Как запустить multi-agent систему на AutoGen с локальной Llama 3 через Ollama. Пошаговая инструкция: установка, настройка агентов, код, решение проблем.

intermediate ⏱ 18 мин

# 1. ПОЧЕМУ AUTOGEN + LLAMA 3

AutoGen (Microsoft) — фреймворк для создания multi-agent систем, где несколько AI-агентов общаются друг с другом для решения задач. Llama 3 (Meta) — открытая модель, которую можно запустить локально через Ollama. Связка AutoGen + Llama 3 даёт полностью приватную multi-agent систему без внешних API-запросов.

Преимущества

  • 100% приватность — всё локально
  • Нет лимитов API и rate-limit'ов
  • Бесплатно после установки
  • Кастомизация модели (LoRA)

Ограничения

  • Нужна GPU (минимум 8GB VRAM)
  • Llama 3 уступает GPT-4 в сложных задачах
  • Настройка сложнее чем облачные API
  • Нет function-calling из коробки

# 2. УСТАНОВКА КОМПОНЕНТОВ

Потребуется Python 3.10+, Ollama и пакет autogen. Установка занимает ~10 минут.

Шаг 1: Ollama + Llama 3

# Установка 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!"

Шаг 2: AutoGen

# Установка autogen с поддержкой Ollama
pip install pyautogen ollama openai

# Проверить версию:
python -c "import autogen; print(autogen.__version__)"
→ 0.7.5

# 3. КОНФИГУРАЦИЯ: ПОДКЛЮЧАЕМ LLAMA 3 К AUTOGEN

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,
}

# 4. ПЕРВАЯ MULTI-AGENT СИСТЕМА

Создаём систему из трёх агентов: Писатель (пишет код), Ревьюер (проверяет), Критик (даёт фидбек). Работают по кругу пока не придут к консенсусу.

# Создаём агентов
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.",
)

# 5. РЕШЕНИЕ ТИПОВЫХ ПРОБЛЕМ

Проблема: «No module named 'openai'»

pip install openai==1.55.0
# AutoGen 0.7.x требует openai>=1.12

Проблема: Llama 3 «забывает» контекст

# Решение: увеличить 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